'use client' import { useState, useEffect } from 'react' import Link from 'next/link' import { SettingsModal, type SettingsSection } from '@ciphera-net/ui' import { UserIcon, LockIcon, BellIcon, ChevronRightIcon } from '@ciphera-net/ui' import { NotificationToggleList, type NotificationOption } from '@ciphera-net/ui' import ProfileSettings from '@/components/settings/ProfileSettings' import TrustedDevicesCard from '@/components/settings/TrustedDevicesCard' import SecurityActivityCard from '@/components/settings/SecurityActivityCard' import { useSettingsModal } from '@/lib/settings-modal-context' import { useAuth } from '@/lib/auth/context' import { updateUserPreferences } from '@/lib/api/user' // --- Security Alerts --- const SECURITY_ALERT_OPTIONS: NotificationOption[] = [ { key: 'login_alerts', label: 'Login Activity', description: 'New device sign-ins and suspicious login attempts.' }, { key: 'password_alerts', label: 'Password Changes', description: 'Password changes and session revocations.' }, { key: 'two_factor_alerts', label: 'Two-Factor Authentication', description: '2FA enabled/disabled and recovery code changes.' }, ] function SecurityAlertsCard() { const { user } = useAuth() const [emailNotifications, setEmailNotifications] = useState>({}) useEffect(() => { if (user?.preferences?.email_notifications) { setEmailNotifications(user.preferences.email_notifications) } else { const defaults = SECURITY_ALERT_OPTIONS.reduce((acc, option) => ({ ...acc, [option.key]: true }), {} as Record) setEmailNotifications(defaults) } }, [user]) const handleToggle = async (key: string) => { const newState = { ...emailNotifications, [key]: !emailNotifications[key] } setEmailNotifications(newState) try { await updateUserPreferences({ email_notifications: newState as { new_file_received: boolean; file_downloaded: boolean; login_alerts: boolean; password_alerts: boolean; two_factor_alerts: boolean } }) } catch { setEmailNotifications(prev => ({ ...prev, [key]: !prev[key] })) } } return ( } options={SECURITY_ALERT_OPTIONS} values={emailNotifications} onToggle={handleToggle} /> ) } // --- Notification Center Placeholder --- function NotificationCenterPlaceholder() { return (

Notification Center

View and manage all your notifications in one place.

Open Notification Center
) } // --- Main Wrapper --- export default function SettingsModalWrapper() { const { isOpen, closeSettings } = useSettingsModal() const sections: SettingsSection[] = [ { id: 'pulse', label: 'Account', icon: UserIcon, defaultExpanded: true, items: [ { id: 'profile', label: 'Profile', content: }, { id: 'security', label: 'Security', content: }, { id: 'preferences', label: 'Preferences', content: }, { id: 'danger-zone', label: 'Danger Zone', content: }, ], }, { id: 'security-section', label: 'Security', icon: LockIcon, items: [ { id: 'devices', label: 'Trusted Devices', content: }, { id: 'activity', label: 'Security Activity', content: }, ], }, { id: 'notifications', label: 'Notifications', icon: BellIcon, items: [ { id: 'security-alerts', label: 'Security Alerts', content: }, { id: 'center', label: 'Notification Center', content: }, ], }, ] return }