"use client" import Link from "next/link" import {Card, CardContent, CardDescription, CardTitle} from "@/components/ui/card" import {Bell, Loader2, Palette, Shield, UserRound} from "lucide-react" import {useAuth} from "@/components/providers/auth-provider" /* 设置项 */ const settingsItems = [ { title: "个人资料", description: "查看您的账户信息", icon: UserRound, href: "/settings/profile", category: "个人设置", }, { title: "通知设置", description: "设置您的通知偏好", icon: Bell, href: "/settings/notifications", category: "账户设置", }, { title: "安全设置", description: "管理您的账户安全", icon: Shield, href: "/settings/security", category: "账户设置", }, { title: "外观设置", description: "自定义界面主题 and 显示", icon: Palette, href: "/settings/appearance", category: "个人设置", }, ] export default function SettingsPage() { const { user, loading } = useAuth() if (loading) { return (
) } // 非管理员过滤掉安全设置 const filteredItems = settingsItems.filter((item) => { if (item.href === "/settings/security") { return !!user?.is_admin } return true }) const groupedSettings = filteredItems.reduce((acc, item) => { if (!acc[item.category]) { acc[item.category] = [] } acc[item.category].push(item) return acc }, {} as Record) return (
设置
{Object.entries(groupedSettings).map(([category, items]) => (
{category}
{items.map((item) => (
{item.title} {item.description}
))}
))}
) }