From 5fb7badfb4fe39f925090e03f66760a6b03b577a Mon Sep 17 00:00:00 2001 From: SiriusXT <1160925501@qq.com> Date: Wed, 31 Dec 2025 19:54:31 +0800 Subject: [PATCH 1/5] fix(rightPane): toggling right pane visibility incorrectly affects all windows --- apps/client/src/widgets/buttons/right_pane_toggle.tsx | 11 +++++++++-- .../src/widgets/sidebar/RightPanelContainer.tsx | 11 ++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/apps/client/src/widgets/buttons/right_pane_toggle.tsx b/apps/client/src/widgets/buttons/right_pane_toggle.tsx index 53bf67ae2..e9253dc37 100644 --- a/apps/client/src/widgets/buttons/right_pane_toggle.tsx +++ b/apps/client/src/widgets/buttons/right_pane_toggle.tsx @@ -3,9 +3,12 @@ import clsx from "clsx"; import { t } from "../../services/i18n"; import ActionButton from "../react/ActionButton"; import { useTriliumOptionBool } from "../react/hooks"; +import { useState } from "preact/hooks"; +import appContext from "../../components/app_context"; export default function RightPaneToggle() { - const [ rightPaneVisible, setRightPaneVisible ] = useTriliumOptionBool("rightPaneVisible"); + const [rightPaneVisibleOption, setRightPaneVisibleOption] = useTriliumOptionBool("rightPaneVisible"); + const [rightPaneVisible, setRightPaneVisible] = useState(rightPaneVisibleOption); return ( setRightPaneVisible(!rightPaneVisible)} + onClick={() => { + setRightPaneVisible(!rightPaneVisible); + setRightPaneVisibleOption(!rightPaneVisible); + appContext.triggerEvent("toggleRightPane", {}); + }} /> ); } diff --git a/apps/client/src/widgets/sidebar/RightPanelContainer.tsx b/apps/client/src/widgets/sidebar/RightPanelContainer.tsx index a512d1362..27c13fb12 100644 --- a/apps/client/src/widgets/sidebar/RightPanelContainer.tsx +++ b/apps/client/src/widgets/sidebar/RightPanelContainer.tsx @@ -3,7 +3,7 @@ import "./RightPanelContainer.css"; import Split from "@triliumnext/split.js"; import { VNode } from "preact"; -import { useEffect, useRef } from "preact/hooks"; +import { useState, useEffect, useRef } from "preact/hooks"; import appContext from "../../components/app_context"; import { WidgetsByParent } from "../../services/bundle"; @@ -27,10 +27,12 @@ interface RightPanelWidgetDefinition { } export default function RightPanelContainer({ widgetsByParent }: { widgetsByParent: WidgetsByParent }) { - const [ rightPaneVisible, setRightPaneVisible ] = useTriliumOptionBool("rightPaneVisible"); + const [rightPaneVisibleOption, setRightPaneVisibleOption] = useTriliumOptionBool("rightPaneVisible"); + const [rightPaneVisible, setRightPaneVisible] = useState(rightPaneVisibleOption); const items = useItems(rightPaneVisible, widgetsByParent); useSplit(rightPaneVisible); useTriliumEvent("toggleRightPane", () => { + setRightPaneVisibleOption(!rightPaneVisible); setRightPaneVisible(!rightPaneVisible); }); @@ -45,7 +47,10 @@ export default function RightPanelContainer({ widgetsByParent }: { widgetsByPare {t("right_pane.empty_message")}