Wothmag07's picture
Updated UI changes with the backend functionality
b9a4f82
raw
history blame
2.57 kB
/**
* 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>
);
}