Follow-on polish for the nav-design overhaul (#9bfb575).
- /veeam-analysis migrates the bespoke TicketRow + custom pagination to
the new DataTable using getRowCanExpand + renderSubRow. Drops ~85
lines of fragment/colspan markup in favor of the standard pattern.
- PageHeader on the last common stragglers — /settings,
/settings/security, /sentinelone/coverage, /sentinelone/mappings.
Settings is reachable from the new top-bar UserMenu so it had to
match the rest of the visual system.
- /dashboard and /status load with the new Skeleton helpers
(SkeletonRows, SkeletonChart, SkeletonTable) so loading shells now
approximate the post-load layout instead of a single h-NN bar.
- DESIGN.md: closed the straggler PageHeader item; deprioritized the
hard-coded palette audit with a note that ~770 references are mostly
semantic via the documented bg-{hue}-500/15 / text-{hue}-700 recipe.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
41 lines
1 KiB
TypeScript
41 lines
1 KiB
TypeScript
import { redirect } from "next/navigation";
|
|
import { getSession } from "@/lib/auth-utils";
|
|
import { ProfileForm } from "@/components/settings/profile-form";
|
|
import {
|
|
Card,
|
|
CardContent,
|
|
CardDescription,
|
|
CardHeader,
|
|
CardTitle,
|
|
} from "@/components/ui/card";
|
|
import { PageHeader } from "@/components/navigation/page-header";
|
|
|
|
export default async function SettingsPage() {
|
|
const session = await getSession();
|
|
|
|
if (!session) {
|
|
redirect("/auth/sign-in");
|
|
}
|
|
|
|
return (
|
|
<>
|
|
<PageHeader
|
|
title="Settings"
|
|
description="Manage your account settings"
|
|
breadcrumbs={[{ label: "Settings" }]}
|
|
accent
|
|
/>
|
|
<div className="container mx-auto px-6 py-6 max-w-2xl">
|
|
<Card>
|
|
<CardHeader>
|
|
<CardTitle>Profile</CardTitle>
|
|
<CardDescription>Update your personal information</CardDescription>
|
|
</CardHeader>
|
|
<CardContent>
|
|
<ProfileForm user={session.user} />
|
|
</CardContent>
|
|
</Card>
|
|
</div>
|
|
</>
|
|
);
|
|
}
|