fix(library): fixed occasional freeze when navigating back to the library (#2485)

Closes #2482.
This commit is contained in:
Huang Xin
2025-11-20 10:45:49 +05:30
committed by GitHub
parent f8e21dbd4c
commit 3c1a7eac86
3 changed files with 9 additions and 16 deletions
@@ -143,6 +143,10 @@ const LibraryPageContent = ({ searchParams }: { searchParams: ReadonlyURLSearchP
},
});
useEffect(() => {
sessionStorage.setItem('lastLibraryParams', searchParams?.toString() || '');
}, [searchParams]);
useEffect(() => {
const doCheckAppUpdates = async () => {
if (appService?.hasUpdater && settings.autoCheckUpdates) {
+1 -12
View File
@@ -2,9 +2,8 @@
import '@/utils/polyfill';
import i18n from '@/i18n/i18n';
import { useEffect, useRef } from 'react';
import { useEffect } from 'react';
import { IconContext } from 'react-icons';
import { usePathname } from 'next/navigation';
import { AuthProvider } from '@/context/AuthContext';
import { useEnv } from '@/context/EnvContext';
import { CSPostHogProvider } from '@/context/PHContext';
@@ -28,16 +27,6 @@ const Providers = ({ children }: { children: React.ReactNode }) => {
const iconSize = useDefaultIconSize();
useSafeAreaInsets(); // Initialize safe area insets
const pathname = usePathname();
const prevPathnameRef = useRef<string | null>(null);
useEffect(() => {
if (prevPathnameRef.current !== null) {
sessionStorage.setItem('lastPath', prevPathnameRef.current);
}
prevPathnameRef.current = pathname;
}, [pathname]);
useEffect(() => {
const handlerLanguageChanged = (lng: string) => {
document.documentElement.lang = lng;
+4 -4
View File
@@ -82,10 +82,10 @@ export const navigateToLibrary = (
navOptions?: { scroll?: boolean },
navBack?: boolean,
) => {
const lastPath = typeof window !== 'undefined' ? sessionStorage.getItem('lastPath') : null;
if (navBack && lastPath === '/library') {
router.back();
return;
const lastLibraryParams =
typeof window !== 'undefined' ? sessionStorage.getItem('lastLibraryParams') : null;
if (navBack && lastLibraryParams) {
queryParams = lastLibraryParams;
}
router.replace(`/library${queryParams ? `?${queryParams}` : ''}`, navOptions);