Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
| 'use client'; | |
| import JobsTable from '@/components/JobsTable'; | |
| import { TopBar, MainContent } from '@/components/layout'; | |
| import Link from 'next/link'; | |
| import { useAuth } from '@/contexts/AuthContext'; | |
| import HFLoginButton from '@/components/HFLoginButton'; | |
| export default function Dashboard() { | |
| const { status: authStatus, namespace } = useAuth(); | |
| const isAuthenticated = authStatus === 'authenticated'; | |
| return ( | |
| <> | |
| <TopBar> | |
| <div> | |
| <h1 className="text-lg">Dashboard</h1> | |
| </div> | |
| <div className="flex-1" /> | |
| </TopBar> | |
| <MainContent> | |
| <div className="mb-6"> | |
| <img | |
| src="https://d112y698adiu2z.cloudfront.net/photos/production/challenge_photos/003/754/358/datas/full_width.png" | |
| alt="FLUX.1 Kontext Dev Hackathon banner" | |
| className="w-full rounded-lg border border-gray-800" | |
| /> | |
| </div> | |
| <div className="border border-gray-800 rounded-xl bg-gray-900 p-6 flex flex-col gap-4"> | |
| <div> | |
| <h2 className="text-xl font-semibold text-gray-100"> | |
| {isAuthenticated ? `Welcome back, ${namespace || 'creator'}!` : 'Welcome to Ostris AI Toolkit'} | |
| </h2> | |
| <p className="text-sm text-gray-400 mt-2"> | |
| {isAuthenticated | |
| ? 'You are signed in with Hugging Face and can manage jobs, datasets, and submissions.' | |
| : 'Authenticate with Hugging Face or add a personal access token to create jobs, upload datasets, and launch training.'} | |
| </p> | |
| </div> | |
| {isAuthenticated ? ( | |
| <div className="flex flex-wrap items-center gap-3 text-sm"> | |
| <Link | |
| href="/jobs/new" | |
| className="px-4 py-2 rounded-md bg-blue-600 hover:bg-blue-500 text-white transition-colors" | |
| > | |
| Create a Training Job | |
| </Link> | |
| <Link | |
| href="/datasets" | |
| className="px-4 py-2 rounded-md bg-gray-800 hover:bg-gray-700 text-gray-200 transition-colors" | |
| > | |
| Manage Datasets | |
| </Link> | |
| <Link | |
| href="/settings" | |
| className="px-4 py-2 rounded-md border border-gray-700 text-gray-300 hover:border-gray-600 transition-colors" | |
| > | |
| Settings | |
| </Link> | |
| </div> | |
| ) : ( | |
| <div className="flex flex-col gap-2 text-sm"> | |
| <div className="flex flex-wrap items-start gap-4"> | |
| <HFLoginButton size="md" /> | |
| <div className="flex flex-col gap-2 text-sm text-gray-300 max-w-sm"> | |
| <p> | |
| If you are joining for the hackathon, make sure you registered at the{' '} | |
| <a | |
| href="https://bfl-kontext-dev.devpost.com" | |
| target="_blank" | |
| rel="noopener noreferrer" | |
| className="text-blue-400 underline" | |
| > | |
| hackathon here | |
| </a>, and please join this{' '} | |
| <a | |
| href="https://huggingface.co/organizations/lora-training-frenzi/share/kEyyVNQXBPWqmARdwHFVdIiFqqONHZPOtz" | |
| target="_blank" | |
| rel="noopener noreferrer" | |
| className="text-blue-400 underline" | |
| > | |
| organization | |
| </a>{' '} | |
| and authorize the <code className="bg-gray-800 px-1 rounded">lorafrenzi</code> organization when logging in. | |
| </p> | |
| <img | |
| src="https://huggingface.co/spaces/multimodalart/ai-toolkit/resolve/main/add_org_to_oauth.png" | |
| alt="Authorize lorafrenzi organization" | |
| className="max-w-sm rounded border border-gray-800" | |
| /> | |
| </div> | |
| </div> | |
| <Link | |
| href="/settings" | |
| className="text-xs text-blue-400 hover:text-blue-300" | |
| > | |
| Or manage tokens in Settings | |
| </Link> | |
| </div> | |
| )} | |
| </div> | |
| <div className="w-full mt-6"> | |
| <div className="flex justify-between items-center mb-2"> | |
| <h1 className="text-md">Active Jobs</h1> | |
| <div className="text-xs text-gray-500"> | |
| <Link href="/jobs">View All</Link> | |
| </div> | |
| </div> | |
| {isAuthenticated ? ( | |
| <JobsTable onlyActive /> | |
| ) : ( | |
| <div className="border border-gray-800 rounded-lg p-6 bg-gray-900 text-gray-400 text-sm"> | |
| Sign in with Hugging Face or add an access token in Settings to view and manage jobs. | |
| </div> | |
| )} | |
| </div> | |
| </MainContent> | |
| </> | |
| ); | |
| } | |