'use client'; import Link from 'next/link'; import { useTranslations } from 'next-intl'; import { Card, CardContent, CardDescription, CardTitle, } from '@/components/ui/card'; import { Bell, Key, Palette, UserRound } from 'lucide-react'; export default function SettingsPage() { const t = useTranslations('settings'); const settingsItems = [ { title: t('items.profile'), description: t('items.profileDesc'), icon: UserRound, href: '/settings/profile', category: t('categories.personal'), }, { title: t('items.accessToken'), description: t('items.accessTokenDesc'), icon: Key, href: '/settings/access-token', category: t('categories.personal'), }, { title: t('items.notifications'), description: t('items.notificationsDesc'), icon: Bell, href: '/settings/notifications', category: t('categories.account'), }, { title: t('items.appearance'), description: t('items.appearanceDesc'), icon: Palette, href: '/settings/appearance', category: t('categories.personal'), }, ]; const groupedSettings = settingsItems.reduce( (acc, item) => { if (!acc[item.category]) { acc[item.category] = []; } acc[item.category].push(item); return acc; }, {} as Record, ); return (
{t('title')}
{Object.entries(groupedSettings).map(([category, items]) => (
{category}
{items.map((item) => (
{item.title} {item.description}
))}
))}
); }