fix: toggling right pane visibility incorrectly affects all windows

This commit is contained in:
SiriusXT 2026-01-02 10:25:34 +08:00
parent 5fb7badfb4
commit 5aa0a956dd
2 changed files with 11 additions and 14 deletions

View File

@ -5,10 +5,15 @@ import ActionButton from "../react/ActionButton";
import { useTriliumOptionBool } from "../react/hooks";
import { useState } from "preact/hooks";
import appContext from "../../components/app_context";
import { useTriliumEvent } from "../react/hooks";
import options from "../../services/options";
export default function RightPaneToggle() {
const [rightPaneVisibleOption, setRightPaneVisibleOption] = useTriliumOptionBool("rightPaneVisible");
const [rightPaneVisible, setRightPaneVisible] = useState(rightPaneVisibleOption);
const [rightPaneVisible, setRightPaneVisible] = useState(options.is("rightPaneVisible"));
useTriliumEvent("toggleRightPane", () => {
setRightPaneVisible(!rightPaneVisible);
});
return (
<ActionButton
@ -18,11 +23,7 @@ export default function RightPaneToggle() {
)}
text={t("right_pane.toggle")}
icon="bx bx-sidebar"
onClick={() => {
setRightPaneVisible(!rightPaneVisible);
setRightPaneVisibleOption(!rightPaneVisible);
appContext.triggerEvent("toggleRightPane", {});
}}
triggerCommand="toggleRightPane"
/>
);
}

View File

@ -27,12 +27,11 @@ interface RightPanelWidgetDefinition {
}
export default function RightPanelContainer({ widgetsByParent }: { widgetsByParent: WidgetsByParent }) {
const [rightPaneVisibleOption, setRightPaneVisibleOption] = useTriliumOptionBool("rightPaneVisible");
const [rightPaneVisible, setRightPaneVisible] = useState(rightPaneVisibleOption);
const [rightPaneVisible, setRightPaneVisible] = useState(options.is("rightPaneVisible"));
const items = useItems(rightPaneVisible, widgetsByParent);
useSplit(rightPaneVisible);
useTriliumEvent("toggleRightPane", () => {
setRightPaneVisibleOption(!rightPaneVisible);
options.save("rightPaneVisible",(!rightPaneVisible).toString());
setRightPaneVisible(!rightPaneVisible);
});
@ -47,10 +46,7 @@ export default function RightPanelContainer({ widgetsByParent }: { widgetsByPare
{t("right_pane.empty_message")}
<Button
text={t("right_pane.empty_button")}
onClick={() => {
setRightPaneVisibleOption(!rightPaneVisible);
setRightPaneVisible(!rightPaneVisible);
}}
triggerCommand="toggleRightPane"
/>
</div>
)