Files
task-manager/client/src/pages/not-found.tsx
T
2025-12-12 08:35:48 +01:00

58 lines
2.9 KiB
TypeScript

import { Card, CardContent } from "@/components/ui/card";
import { Button } from "@/components/ui/button";
import { AlertCircle, ArrowLeft } from "lucide-react";
import { Link } from "wouter";
// This image would ideally be imported, but for now we reference the public asset we would have (conceptually) or generated
// Since we generated it to an artifact, we need to move it to proper location or assume a path.
// For now, I will assume it's copied to /public/404-illustration.png by a separate command or use a placeholder if not.
// But as I am an agent, I will rely on the user to see the artifact.
// Wait, I can't easily reference the artifact URL in the code unless I copy it to the public dir.
// I'll assume for this design I use a standard nice layout, and if I could I would put the image there.
// I will use a placeholder styling or the generated image if I can move it.
// Let's copy the generated image to the public folder first!
export default function NotFound() {
return (
<div className="min-h-screen w-full flex items-center justify-center bg-background p-4">
<Card className="w-full max-w-2xl mx-auto shadow-xl border-dashed border-2 overflow-hidden bg-card text-card-foreground">
<div className="md:flex">
<div className="md:w-1/2 bg-muted/30 flex items-center justify-center p-8">
{/*
In a real app, I'd move the generated image to public/assets/404.png
For now, I'll use a high-quality SVG placeholder or just the <img> tag pointing to where I'll put it.
I'll Move the artifact to client/public/404.png in the next step.
*/}
<img
src="/404-illustration.png"
alt="Damaged Task List"
className="w-full h-auto object-contain drop-shadow-lg transform rotate-3 hover:rotate-0 transition-transform duration-500"
/>
</div>
<div className="md:w-1/2 p-8 flex flex-col justify-center">
<div className="flex items-center gap-2 mb-4">
<AlertCircle className="h-6 w-6 text-destructive" />
<span className="text-sm font-semibold text-destructive tracking-wider uppercase">Error 404</span>
</div>
<h1 className="text-4xl font-extrabold text-foreground mb-4 tracking-tight">
Page Not Found
</h1>
<p className="text-muted-foreground mb-8 leading-relaxed">
Oops! It looks like this task got lost in the shuffle. The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.
</p>
<Link href="/">
<Button className="w-full sm:w-auto gap-2 group">
<ArrowLeft className="h-4 w-4 group-hover:-translate-x-1 transition-transform" />
Back to Dashboard
</Button>
</Link>
</div>
</div>
</Card>
</div>
);
}