import React, { useState, useEffect } from 'react' import { useSearchParams } from 'react-router-dom' import { Settings } from 'lucide-react' import { useTranslation } from '../i18n' import { authApi } from '../api/client' import { useAddonStore } from '../store/addonStore' import Navbar from '../components/Layout/Navbar' import DisplaySettingsTab from '../components/Settings/DisplaySettingsTab' import MapSettingsTab from '../components/Settings/MapSettingsTab' import NotificationsTab from '../components/Settings/NotificationsTab' import IntegrationsTab from '../components/Settings/IntegrationsTab' import AccountTab from '../components/Settings/AccountTab' import AboutTab from '../components/Settings/AboutTab' export default function SettingsPage(): React.ReactElement { const { t } = useTranslation() const [searchParams] = useSearchParams() const { isEnabled: addonEnabled, loadAddons } = useAddonStore() const memoriesEnabled = addonEnabled('memories') const mcpEnabled = addonEnabled('mcp') const hasIntegrations = memoriesEnabled || mcpEnabled const [appVersion, setAppVersion] = useState(null) const [activeTab, setActiveTab] = useState('display') useEffect(() => { loadAddons() authApi.getAppConfig?.().then(c => setAppVersion(c?.version)).catch(() => {}) }, []) // Auto-switch to account tab when MFA is required useEffect(() => { if (searchParams.get('mfa') === 'required') { setActiveTab('account') } }, [searchParams]) const TABS = [ { id: 'display', label: t('settings.tabs.display') }, { id: 'map', label: t('settings.tabs.map') }, { id: 'notifications', label: t('settings.tabs.notifications') }, ...(hasIntegrations ? [{ id: 'integrations', label: t('settings.tabs.integrations') }] : []), { id: 'account', label: t('settings.tabs.account') }, ...(appVersion ? [{ id: 'about', label: t('settings.tabs.about') }] : []), ] return (
{/* Header */}

{t('settings.title')}

{t('settings.subtitle')}

{/* Tab bar */}
{TABS.map(tab => ( ))}
{/* Tab content */} {activeTab === 'display' && } {activeTab === 'map' && } {activeTab === 'notifications' && } {activeTab === 'integrations' && hasIntegrations && } {activeTab === 'account' && } {activeTab === 'about' && appVersion && }
) }