Skip to main content
Glama

MCPDemo - Visual SQL Chat Platform

by Ayi456
useLocalSettings.ts2.11 kB
/** * 本地设置管理的自定义 Hook * 使用本地存储保存用户设置,不依赖后端API */ import { useState, useEffect } from 'react' import { useLocalStorage } from './useLocalStorage' import { User } from '@/types/auth' export interface LocalSettings { // 个人信息 displayName: string // 通知设置 emailNotifications: boolean quotaReminders: boolean // 其他设置 autoSave: boolean } const defaultSettings: LocalSettings = { displayName: '', emailNotifications: true, quotaReminders: true, autoSave: true } export function useLocalSettings(user: User | undefined) { // 使用本地存储保存设置 const [localSettings, setLocalSettings] = useLocalStorage<LocalSettings>( 'userSettings', defaultSettings ) const [hasChanges, setHasChanges] = useState(false) const [showSuccess, setShowSuccess] = useState(false) // 合并用户信息和本地设置 const settings: LocalSettings = { ...localSettings, displayName: localSettings.displayName || user?.display_name || user?.username || '' } // 更新设置 const updateSettings = (newSettings: Partial<LocalSettings>) => { const updatedSettings = { ...localSettings, ...newSettings } setLocalSettings(updatedSettings) setHasChanges(true) } // 保存设置(实际上已经自动保存到本地存储了) const saveSettings = () => { setHasChanges(false) setShowSuccess(true) setTimeout(() => setShowSuccess(false), 3000) } // 重置设置 const resetSettings = () => { const resetData = { ...defaultSettings, displayName: user?.display_name || user?.username || '' } setLocalSettings(resetData) setHasChanges(false) setShowSuccess(false) } // 检测是否有未保存的更改 useEffect(() => { // 这里可以添加更复杂的变更检测逻辑 // 目前简化处理 }, [localSettings]) return { settings, updateSettings, saveSettings, resetSettings, hasChanges, showSuccess, isLoading: false // 本地操作不需要加载状态 } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Ayi456/visual-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server