diff --git a/src/components/editor-config-panel.tsx b/src/components/editor-config-panel.tsx index 2b7a535..651f542 100644 --- a/src/components/editor-config-panel.tsx +++ b/src/components/editor-config-panel.tsx @@ -1,19 +1,21 @@ -import React from 'react'; +"use client" + +import { useState } from 'react'; import { useEditorConfigStore } from '@/lib/store'; -export const EditorConfigPanel = () => { - const { config, updateConfig } = useEditorConfigStore(); +export function EditorConfigPanel() { + const { config, setConfig } = useEditorConfigStore(); const handleFontFamilyChange = (e: React.ChangeEvent) => { - updateConfig({ fontFamily: e.target.value }); + setConfig({ fontFamily: e.target.value }); }; const handleFontSizeChange = (e: React.ChangeEvent) => { - updateConfig({ fontSize: parseInt(e.target.value) }); + setConfig({ fontSize: parseInt(e.target.value) }); }; const handleLineHeightChange = (e: React.ChangeEvent) => { - updateConfig({ lineHeight: parseInt(e.target.value) }); + setConfig({ lineHeight: parseInt(e.target.value) }); }; const handleReset = () => { diff --git a/src/lib/store.ts b/src/lib/store.ts index f090145..e5b8efe 100644 --- a/src/lib/store.ts +++ b/src/lib/store.ts @@ -34,4 +34,29 @@ export const useEditorConfigStore = create((set) => { return { config: state.defaultConfig }; }), }; -}); \ No newline at end of file +}); + +export interface EditorConfigState { + config: any; + setConfig: (config: any) => void; +} + +export const useEditorConfigStore = create((set) => { + // 从localStorage读取保存的配置 + let savedConfig = null; + if (typeof window !== 'undefined') { + savedConfig = localStorage.getItem('editorConfig'); + } + + const parsedConfig = savedConfig ? JSON.parse(savedConfig) : {}; + + return { + config: parsedConfig, + setConfig: (config) => { + if (typeof window !== 'undefined') { + localStorage.setItem('editorConfig', JSON.stringify(config)); + } + set({ config }); + } + }; +});