diff --git a/src/components/EditorCanvas/Note.jsx b/src/components/EditorCanvas/Note.jsx index 7a7976b..f3abc28 100644 --- a/src/components/EditorCanvas/Note.jsx +++ b/src/components/EditorCanvas/Note.jsx @@ -61,22 +61,18 @@ export default function Note({ data, onMouseDown }) { }; const edit = () => { - if (layout.sidebar) { - setSelectedElement((prev) => ({ - ...prev, - currentTab: Tab.NOTES, - })); - if (selectedElement.currentTab !== Tab.NOTES) return; + setSelectedElement((prev) => ({ + ...prev, + ...(layout.sidebar && { currentTab: Tab.NOTES }), + ...(!layout.sidebar && { element: ObjectType.NOTE }), + id: data.id, + open: true, + })); + + if (layout.sidebar && selectedElement.currentTab === Tab.NOTES) { document .getElementById(`scroll_note_${data.id}`) .scrollIntoView({ behavior: "smooth" }); - } else { - setSelectedElement((prev) => ({ - ...prev, - element: ObjectType.NOTE, - id: data.id, - open: true, - })); } }; diff --git a/src/components/EditorSidePanel/NotesTab/NotesTab.jsx b/src/components/EditorSidePanel/NotesTab/NotesTab.jsx index 951fcad..5b9bf5b 100644 --- a/src/components/EditorSidePanel/NotesTab/NotesTab.jsx +++ b/src/components/EditorSidePanel/NotesTab/NotesTab.jsx @@ -1,20 +1,26 @@ -import { useState } from "react"; import { Row, Col, Button, Collapse } from "@douyinfe/semi-ui"; import { IconPlus } from "@douyinfe/semi-icons"; -import { useNotes } from "../../../hooks"; +import { useNotes, useSelect } from "../../../hooks"; import Empty from "../Empty"; import SearchBar from "./SearchBar"; import NoteInfo from "./NoteInfo"; export default function NotesTab() { const { notes, addNote } = useNotes(); - const [activeKey, setActiveKey] = useState(""); + const { selectedElement, setSelectedElement } = useSelect(); return ( <> - + + setSelectedElement((prev) => ({ + ...prev, + id: parseInt(activeKey), + })) + } + />