2025-04-13 21:10:17 +02:00
|
|
|
import { AppSidebar } from "@/components/app-sidebar";
|
2025-04-12 20:01:43 +02:00
|
|
|
import {
|
|
|
|
|
Breadcrumb,
|
|
|
|
|
BreadcrumbItem,
|
|
|
|
|
BreadcrumbList,
|
|
|
|
|
BreadcrumbPage,
|
|
|
|
|
BreadcrumbSeparator,
|
2025-04-13 21:10:17 +02:00
|
|
|
} from "@/components/ui/breadcrumb";
|
|
|
|
|
import { Separator } from "@/components/ui/separator";
|
2025-04-12 20:01:43 +02:00
|
|
|
import {
|
|
|
|
|
SidebarInset,
|
|
|
|
|
SidebarProvider,
|
|
|
|
|
SidebarTrigger,
|
2025-04-13 21:10:17 +02:00
|
|
|
} from "@/components/ui/sidebar";
|
|
|
|
|
import { Card, CardHeader } from "@/components/ui/card";
|
|
|
|
|
import { useTheme } from "next-themes";
|
2025-04-12 20:01:43 +02:00
|
|
|
import {
|
|
|
|
|
Select,
|
|
|
|
|
SelectContent,
|
|
|
|
|
SelectItem,
|
|
|
|
|
SelectTrigger,
|
|
|
|
|
SelectValue,
|
2025-04-13 21:10:17 +02:00
|
|
|
} from "@/components/ui/select";
|
2025-04-14 20:02:28 +02:00
|
|
|
import {
|
|
|
|
|
Accordion,
|
|
|
|
|
AccordionContent,
|
|
|
|
|
AccordionItem,
|
|
|
|
|
AccordionTrigger,
|
|
|
|
|
} from "@/components/ui/accordion"
|
2025-04-12 20:01:43 +02:00
|
|
|
|
|
|
|
|
export default function Settings() {
|
2025-04-13 21:10:17 +02:00
|
|
|
const { theme, setTheme } = useTheme();
|
2025-04-12 20:01:43 +02:00
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<SidebarProvider>
|
|
|
|
|
<AppSidebar />
|
|
|
|
|
<SidebarInset>
|
|
|
|
|
<header className="flex h-16 shrink-0 items-center gap-2 transition-[width,height] ease-linear group-has-[[data-collapsible=icon]]/sidebar-wrapper:h-12">
|
|
|
|
|
<div className="flex items-center gap-2 px-4">
|
|
|
|
|
<SidebarTrigger className="-ml-1" />
|
|
|
|
|
<Separator orientation="vertical" className="mr-2 h-4" />
|
|
|
|
|
<Breadcrumb>
|
|
|
|
|
<BreadcrumbList>
|
|
|
|
|
<BreadcrumbItem className="hidden md:block">
|
|
|
|
|
<BreadcrumbPage>/</BreadcrumbPage>
|
|
|
|
|
</BreadcrumbItem>
|
|
|
|
|
<BreadcrumbSeparator className="hidden md:block" />
|
|
|
|
|
<BreadcrumbItem>
|
|
|
|
|
<BreadcrumbPage>Dashboard</BreadcrumbPage>
|
|
|
|
|
</BreadcrumbItem>
|
|
|
|
|
<BreadcrumbSeparator className="hidden md:block" />
|
|
|
|
|
<BreadcrumbItem>
|
|
|
|
|
<BreadcrumbPage>Settings</BreadcrumbPage>
|
|
|
|
|
</BreadcrumbItem>
|
|
|
|
|
</BreadcrumbList>
|
|
|
|
|
</Breadcrumb>
|
|
|
|
|
</div>
|
|
|
|
|
</header>
|
|
|
|
|
<div className="pl-4 pr-4">
|
|
|
|
|
<span className="text-2xl font-semibold">Settings</span>
|
|
|
|
|
<div className="pt-4">
|
|
|
|
|
<Card className="w-full mb-4 relative">
|
|
|
|
|
<CardHeader>
|
2025-04-14 20:02:28 +02:00
|
|
|
<Accordion type="single" collapsible>
|
|
|
|
|
<AccordionItem value="item-1">
|
|
|
|
|
<AccordionTrigger className="text-xl font-bold">Theme</AccordionTrigger>
|
|
|
|
|
<AccordionContent className="text-sm font-normal">
|
|
|
|
|
<div className="pb-1">Select a theme for the application. You can choose between light, dark, or system theme.</div>
|
|
|
|
|
<Select
|
|
|
|
|
value={theme}
|
|
|
|
|
onValueChange={(value: string) => setTheme(value)}
|
|
|
|
|
>
|
|
|
|
|
<SelectTrigger className="w-full [&_svg]:hidden">
|
|
|
|
|
<SelectValue>
|
|
|
|
|
{(theme ?? 'system').charAt(0).toUpperCase() + (theme ?? 'system').slice(1)}
|
|
|
|
|
</SelectValue>
|
|
|
|
|
</SelectTrigger>
|
|
|
|
|
<SelectContent>
|
|
|
|
|
<SelectItem value="light">Light</SelectItem>
|
|
|
|
|
<SelectItem value="dark">Dark</SelectItem>
|
|
|
|
|
<SelectItem value="system">System</SelectItem>
|
|
|
|
|
</SelectContent>
|
|
|
|
|
</Select>
|
|
|
|
|
</AccordionContent>
|
|
|
|
|
</AccordionItem>
|
|
|
|
|
</Accordion>
|
2025-04-12 20:01:43 +02:00
|
|
|
</CardHeader>
|
|
|
|
|
</Card>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</SidebarInset>
|
|
|
|
|
</SidebarProvider>
|
2025-04-13 21:10:17 +02:00
|
|
|
);
|
2025-04-12 20:01:43 +02:00
|
|
|
}
|