"use client"; import { useState } from 'react'; import { useRouter } from '@/i18n/navigation'; import { useTranslations } from 'next-intl'; import { ArrowLeft, Settings as SettingsIcon } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { AppearanceSettings } from '@/components/settings/appearance-settings'; import { EmailSettings } from '@/components/settings/email-settings'; import { AccountSettings } from '@/components/settings/account-settings'; import { IdentitySettings } from '@/components/settings/identity-settings'; import { VacationSettings } from '@/components/settings/vacation-settings'; import { AdvancedSettings } from '@/components/settings/advanced-settings'; import { useAuthStore } from '@/stores/auth-store'; import { cn } from '@/lib/utils'; type Tab = 'appearance' | 'email' | 'account' | 'identities' | 'vacation' | 'advanced'; export default function SettingsPage() { const router = useRouter(); const t = useTranslations('settings'); const { client } = useAuthStore(); const [activeTab, setActiveTab] = useState('appearance'); const supportsVacation = client?.supportsVacationResponse() ?? false; const tabs: { id: Tab; label: string }[] = [ { id: 'appearance', label: t('tabs.appearance') }, { id: 'email', label: t('tabs.email') }, { id: 'account', label: t('tabs.account') }, { id: 'identities', label: t('tabs.identities') }, ...(supportsVacation ? [{ id: 'vacation' as Tab, label: t('tabs.vacation') }] : []), { id: 'advanced', label: t('tabs.advanced') }, ]; return (
{/* Settings Sidebar */}
{/* Header */}
{/* Tabs */}
{tabs.map((tab) => ( ))}
{/* Settings Content */}
{/* Page Header */}

{t('title')}

{/* Active Tab Content */}
{activeTab === 'appearance' && } {activeTab === 'email' && } {activeTab === 'account' && } {activeTab === 'identities' && } {activeTab === 'vacation' && } {activeTab === 'advanced' && }
); }