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="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-wrap items-center gap-3 text-sm"> | |
| <HFLoginButton size="md" /> | |
| <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> | |
| </> | |
| ); | |
| } | |