- 设置 -
-- 管理您的账户设置和偏好 -
+From f81a1f0f2d24526fabb6e9af84f579c4bc71069f Mon Sep 17 00:00:00 2001 From: gaoziman <2942894660@qq.com> Date: Fri, 19 Dec 2025 13:58:22 +0800 Subject: [PATCH] =?UTF-8?q?refactor(settings):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E9=A1=B5=E9=9D=A2=E5=B8=83=E5=B1=80=E5=92=8C?= =?UTF-8?q?=E4=BA=A4=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 优化页面布局,移除侧边栏采用独立页面设计 - 集成 ModelCardSelector 替代下拉选择 - 集成 FontSizePicker 支持字体大小调整 - 顶部导航栏添加主题切换按钮 - 移除冗余的偏好设置和危险区域板块 - 优化整体视觉效果和交互体验 --- src/app/settings/page.tsx | 209 ++++++++++++++++---------------------- 1 file changed, 90 insertions(+), 119 deletions(-) diff --git a/src/app/settings/page.tsx b/src/app/settings/page.tsx index 064480c..a9d5a1d 100644 --- a/src/app/settings/page.tsx +++ b/src/app/settings/page.tsx @@ -2,11 +2,11 @@ import { useState, useEffect } from 'react'; import Link from 'next/link'; -import { ArrowLeft, Download, Check, Loader2, Eye, EyeOff, RotateCcw } from 'lucide-react'; -import { Sidebar, SidebarToggle } from '@/components/layout/Sidebar'; +import { ArrowLeft, Download, Check, Loader2, Eye, EyeOff, RotateCcw, Moon, Sun, Sparkles, Trash2 } from 'lucide-react'; import { Toggle } from '@/components/ui/Toggle'; +import { ModelCardSelector } from '@/components/ui/ModelCardSelector'; +import { FontSizePicker } from '@/components/ui/FontSizePicker'; import { cn } from '@/lib/utils'; -import { currentUser, chatHistories } from '@/data/mock'; import { useSettings, useModels, useTools } from '@/hooks/useSettings'; // 默认系统提示词 @@ -44,7 +44,6 @@ const DEFAULT_SYSTEM_PROMPT = `你是一个专业、友好的 AI 助手。请遵 - 承认不确定的地方,不要编造信息`; export default function SettingsPage() { - const [sidebarOpen, setSidebarOpen] = useState(true); const { settings, loading, saving, updateSettings } = useSettings(); const { models, loading: modelsLoading } = useModels(); const { tools, loading: toolsLoading } = useTools(); @@ -105,6 +104,17 @@ export default function SettingsPage() { } }; + // 更新字体大小 + const handleFontSizeChange = async (fontSize: number) => { + try { + await updateSettings({ fontSize }); + // 实时应用到页面 + document.documentElement.style.setProperty('--font-size-base', `${fontSize}px`); + } catch (error) { + console.error('Failed to update font size:', error); + } + }; + // 切换工具 const handleToolToggle = async (toolId: string) => { const currentTools = settings?.defaultTools || []; @@ -177,6 +187,17 @@ export default function SettingsPage() { setTemperature(value); }; + // 切换主题 + const handleToggleTheme = async () => { + const newTheme = settings?.theme === 'dark' ? 'light' : 'dark'; + try { + await updateSettings({ theme: newTheme }); + document.documentElement.setAttribute('data-theme', newTheme); + } catch (error) { + console.error('Failed to update theme:', error); + } + }; + if (loading) { return (
- 管理您的账户设置和偏好 -
+