diff --git a/apps/readest-app/src/app/reader/components/Reader.tsx b/apps/readest-app/src/app/reader/components/Reader.tsx index c9541542..7e7ef34f 100644 --- a/apps/readest-app/src/app/reader/components/Reader.tsx +++ b/apps/readest-app/src/app/reader/components/Reader.tsx @@ -61,8 +61,10 @@ const Reader: React.FC<{ ids?: string }> = ({ ids }) => { const { showSystemUI, dismissSystemUI } = useThemeStore(); const { getScreenBrightness, setScreenBrightness } = useDeviceControlStore(); const { acquireBackKeyInterception, releaseBackKeyInterception } = useDeviceControlStore(); - const { isSideBarVisible, getIsSideBarVisible, setSideBarVisible } = useSidebarStore(); - const { isNotebookVisible, getIsNotebookVisible, setNotebookVisible } = useNotebookStore(); + const { isSideBarVisible, isSideBarPinned } = useSidebarStore(); + const { getIsSideBarVisible, setSideBarVisible } = useSidebarStore(); + const { isNotebookVisible, isNotebookPinned } = useNotebookStore(); + const { getIsNotebookVisible, setNotebookVisible } = useNotebookStore(); const { isDarkMode, systemUIAlwaysHidden, isRoundedWindow } = useThemeStore(); useTheme({ systemUIVisible: settings.alwaysShowStatusBar, appThemeColor: 'base-100' }); @@ -101,9 +103,9 @@ const Reader: React.FC<{ ids?: string }> = ({ ids }) => { const handleKeyDown = (event: CustomEvent) => { if (event.detail.keyName === 'Back') { - if (getIsSideBarVisible()) { + if (getIsSideBarVisible() && !isSideBarPinned) { setSideBarVisible(false); - } else if (getIsNotebookVisible()) { + } else if (getIsNotebookVisible() && !isNotebookPinned) { setNotebookVisible(false); } else { eventDispatcher.dispatch('close-reader'); @@ -133,7 +135,14 @@ const Reader: React.FC<{ ids?: string }> = ({ ids }) => { } }; // eslint-disable-next-line react-hooks/exhaustive-deps - }, [appService?.isAndroidApp, sideBarBookKey, isSideBarVisible, isNotebookVisible]); + }, [ + appService?.isAndroidApp, + sideBarBookKey, + isSideBarPinned, + isSideBarVisible, + isNotebookPinned, + isNotebookVisible, + ]); useEffect(() => { if (!appService?.isMobileApp) return;