Spaces:
Running
Running
| /** | |
| * T108: Login page with HF OAuth | |
| */ | |
| import { BookOpen } from 'lucide-react'; | |
| import { Button } from '@/components/ui/button'; | |
| import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'; | |
| import { login } from '@/services/auth'; | |
| export function Login() { | |
| const handleLogin = () => { | |
| login(); | |
| }; | |
| const handleLocalDev = () => { | |
| // Set a dummy token for local development | |
| localStorage.setItem('auth_token', 'local-dev-token'); | |
| window.location.href = '/'; | |
| }; | |
| return ( | |
| <div className="min-h-screen flex items-center justify-center bg-background p-4"> | |
| <Card className="w-full max-w-md"> | |
| <CardHeader className="text-center space-y-2"> | |
| <div className="flex justify-center mb-4"> | |
| <div className="h-16 w-16 rounded-full bg-primary/10 flex items-center justify-center"> | |
| <BookOpen className="h-8 w-8 text-primary" /> | |
| </div> | |
| </div> | |
| <CardTitle className="text-3xl">Document Viewer</CardTitle> | |
| <CardDescription className="text-base"> | |
| AI-powered documentation with wikilinks, search, and backlinks | |
| </CardDescription> | |
| </CardHeader> | |
| <CardContent className="space-y-4"> | |
| <Button | |
| className="w-full" | |
| size="lg" | |
| onClick={handleLogin} | |
| > | |
| <svg className="w-5 h-5 mr-2" viewBox="0 0 24 24" fill="currentColor"> | |
| <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-1-13h2v6h-2zm0 8h2v2h-2z"/> | |
| </svg> | |
| Sign in with Hugging Face | |
| </Button> | |
| <div className="relative"> | |
| <div className="absolute inset-0 flex items-center"> | |
| <span className="w-full border-t" /> | |
| </div> | |
| <div className="relative flex justify-center text-xs uppercase"> | |
| <span className="bg-background px-2 text-muted-foreground"> | |
| or use local development mode | |
| </span> | |
| </div> | |
| </div> | |
| <Button | |
| variant="outline" | |
| className="w-full" | |
| size="lg" | |
| onClick={handleLocalDev} | |
| > | |
| Continue as Local Dev | |
| </Button> | |
| <p className="text-xs text-center text-muted-foreground mt-6"> | |
| By signing in, you agree to our Terms of Service and Privacy Policy | |
| </p> | |
| </CardContent> | |
| </Card> | |
| </div> | |
| ); | |
| } | |