import { useEffect, useState } from 'react'; import { Form, Switch, TimePicker, Button, message, theme } from 'antd'; import { BellOutlined } from '@ant-design/icons'; import client from '../../api/client'; interface PreferencesData { dnd_enabled: boolean; dnd_start?: string; dnd_end?: string; } export default function NotificationPreferences() { const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const [dndEnabled, setDndEnabled] = useState(false); const { token } = theme.useToken(); const isDark = token.colorBgContainer === '#111827' || token.colorBgContainer === 'rgb(17, 24, 39)'; useEffect(() => { form.setFieldsValue({ dnd_enabled: false }); }, [form]); const handleSave = async () => { setLoading(true); try { const values = await form.validateFields(); const req: PreferencesData = { dnd_enabled: values.dnd_enabled || false, dnd_start: values.dnd_range?.[0]?.format('HH:mm'), dnd_end: values.dnd_range?.[1]?.format('HH:mm'), }; await client.put('/message-subscriptions', { dnd_enabled: req.dnd_enabled, dnd_start: req.dnd_start, dnd_end: req.dnd_end, }); message.success('偏好设置已保存'); } catch { message.error('保存失败'); } finally { setLoading(false); } }; return (