wulf-pulse/app/settings/page.tsx
lorentz ab78e7bd4f refactor(design): adopt TanStack DataTable on /veeam-analysis, fill gaps
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>
2026-05-03 09:42:04 -04:00

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>
</>
);
}