update
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
import { ToastContainer, toast } from 'react-toastify';
|
||||
import { AuthProvider } from '../login/AuthProvider';
|
||||
import { Panel, PanelGroup, PanelResizeHandle } from 'react-resizable-panels';
|
||||
import { useState, useRef } from 'react';
|
||||
import { useRef } from 'react';
|
||||
|
||||
import { App as Voice } from './voice/index.tsx';
|
||||
import { ChatInterface } from './prompts/index.tsx';
|
||||
import { BaseApp } from './base/index.tsx';
|
||||
import { exampleUsage, markService } from './modules/mark-service.ts';
|
||||
import { useMuseSetting } from './store/museSetting.ts';
|
||||
|
||||
const LeftPanel = () => {
|
||||
return (
|
||||
@@ -44,9 +45,14 @@ const RightPanel = ({ isVisible }: { isVisible: boolean }) => {
|
||||
};
|
||||
|
||||
export const MuseApp = () => {
|
||||
const [showRightPanel, setShowRightPanel] = useState(true);
|
||||
const [showLeftPanel, setShowLeftPanel] = useState(true);
|
||||
const [showCenterPanel, setShowCenterPanel] = useState(true);
|
||||
const {
|
||||
showRightPanel,
|
||||
showLeftPanel,
|
||||
showCenterPanel,
|
||||
toggleRightPanel,
|
||||
toggleLeftPanel,
|
||||
toggleCenterPanel,
|
||||
} = useMuseSetting();
|
||||
const fileInputRef = useRef<HTMLInputElement>(null);
|
||||
|
||||
// 导出数据库
|
||||
@@ -112,7 +118,7 @@ export const MuseApp = () => {
|
||||
<div className="bg-white border-b border-gray-200 p-2 z-10">
|
||||
<div className="flex gap-2">
|
||||
<button
|
||||
onClick={() => setShowLeftPanel(!showLeftPanel)}
|
||||
onClick={toggleLeftPanel}
|
||||
className={`px-3 py-1 rounded text-sm ${showLeftPanel
|
||||
? 'bg-blue-500 text-white'
|
||||
: 'bg-gray-200 text-gray-700 hover:bg-gray-300'
|
||||
@@ -121,7 +127,7 @@ export const MuseApp = () => {
|
||||
资料库
|
||||
</button>
|
||||
<button
|
||||
onClick={() => setShowCenterPanel(!showCenterPanel)}
|
||||
onClick={toggleCenterPanel}
|
||||
className={`px-3 py-1 rounded text-sm ${showCenterPanel
|
||||
? 'bg-blue-500 text-white'
|
||||
: 'bg-gray-200 text-gray-700 hover:bg-gray-300'
|
||||
@@ -130,7 +136,7 @@ export const MuseApp = () => {
|
||||
智能工作台
|
||||
</button>
|
||||
<button
|
||||
onClick={() => setShowRightPanel(!showRightPanel)}
|
||||
onClick={toggleRightPanel}
|
||||
className={`px-3 py-1 rounded text-sm ${showRightPanel
|
||||
? 'bg-blue-500 text-white'
|
||||
: 'bg-gray-200 text-gray-700 hover:bg-gray-300'
|
||||
|
||||
55
web/src/apps/muse/store/museSetting.ts
Normal file
55
web/src/apps/muse/store/museSetting.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
import { create } from 'zustand';
|
||||
import { persist } from 'zustand/middleware';
|
||||
|
||||
interface MuseSettingState {
|
||||
// 面板显示状态
|
||||
showRightPanel: boolean;
|
||||
showLeftPanel: boolean;
|
||||
showCenterPanel: boolean;
|
||||
|
||||
// 切换面板显示状态的方法
|
||||
toggleRightPanel: () => void;
|
||||
toggleLeftPanel: () => void;
|
||||
toggleCenterPanel: () => void;
|
||||
|
||||
// 设置面板状态的方法
|
||||
setShowRightPanel: (show: boolean) => void;
|
||||
setShowLeftPanel: (show: boolean) => void;
|
||||
setShowCenterPanel: (show: boolean) => void;
|
||||
}
|
||||
|
||||
export const useMuseSetting = create<MuseSettingState>()(
|
||||
persist(
|
||||
(set) => ({
|
||||
// 默认状态 - 所有面板都显示
|
||||
showRightPanel: true,
|
||||
showLeftPanel: true,
|
||||
showCenterPanel: true,
|
||||
|
||||
// 切换方法
|
||||
toggleRightPanel: () =>
|
||||
set((state) => ({ showRightPanel: !state.showRightPanel })),
|
||||
toggleLeftPanel: () =>
|
||||
set((state) => ({ showLeftPanel: !state.showLeftPanel })),
|
||||
toggleCenterPanel: () =>
|
||||
set((state) => ({ showCenterPanel: !state.showCenterPanel })),
|
||||
|
||||
// 设置方法
|
||||
setShowRightPanel: (show: boolean) =>
|
||||
set({ showRightPanel: show }),
|
||||
setShowLeftPanel: (show: boolean) =>
|
||||
set({ showLeftPanel: show }),
|
||||
setShowCenterPanel: (show: boolean) =>
|
||||
set({ showCenterPanel: show }),
|
||||
}),
|
||||
{
|
||||
name: 'muse-settings', // localStorage 中的 key
|
||||
// 可选:指定要持久化的字段
|
||||
partialize: (state) => ({
|
||||
showRightPanel: state.showRightPanel,
|
||||
showLeftPanel: state.showLeftPanel,
|
||||
showCenterPanel: state.showCenterPanel,
|
||||
}),
|
||||
}
|
||||
)
|
||||
);
|
||||
Reference in New Issue
Block a user