14a32bdc0d
- Unified monorepo with backend (Express), frontend (Next.js), and devops - Backend: ESLint, Prettier, Jest tests (3 passing), health endpoint, .env.example - Frontend: Fixed build errors, fixed all lint errors (0 remaining), tests passing - DevOps: Docker Compose with PostgreSQL, backend, frontend + healthchecks - CI/CD: 3 GitHub Actions workflows (backend, frontend, docker integration) - DX: Husky pre-commit hooks with smart change detection - Docs: Root README with architecture, CONTRIBUTING.md, PR template Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
29 lines
785 B
TypeScript
29 lines
785 B
TypeScript
"use client";
|
|
|
|
import { DashboardLayout } from "@/components/layouts/DashboardLayout";
|
|
import { Button } from "@/components/ui/forms/Button";
|
|
import { AlertCircle } from "lucide-react";
|
|
|
|
export default function DashboardError({
|
|
error,
|
|
reset,
|
|
}: {
|
|
error: Error;
|
|
reset: () => void;
|
|
}) {
|
|
return (
|
|
<DashboardLayout>
|
|
<div className="flex flex-col items-center justify-center min-h-[60vh]">
|
|
<div className="text-red-500 mb-4">
|
|
<AlertCircle className="h-12 w-12" />
|
|
</div>
|
|
<h2 className="text-2xl font-bold text-gray-900 mb-2">
|
|
Something went wrong!
|
|
</h2>
|
|
<p className="text-gray-600 mb-4">{error.message}</p>
|
|
<Button onClick={() => reset()}>Try again</Button>
|
|
</div>
|
|
</DashboardLayout>
|
|
);
|
|
}
|