Fix overwritten i18n #161

Merged
ZacharyZcR merged 29 commits from main into dev-1.6.0 2025-09-05 17:41:21 +00:00
2 changed files with 10 additions and 7 deletions
Showing only changes of commit ab07b2ba97 - Show all commits
+1
View File
@@ -23,3 +23,4 @@ dist-ssr
*.sln *.sln
*.sw? *.sw?
/db/ /db/
/release/
+9 -7
View File
@@ -21,14 +21,12 @@ function useWindowWidth() {
const newWidth = window.innerWidth; const newWidth = window.innerWidth;
const newIsMobile = newWidth < 768; const newIsMobile = newWidth < 768;
const now = Date.now(); const now = Date.now();
// If we've already switched once, don't switch again for a very long time
if (hasSwitchedOnce.current && (now - lastSwitchTime.current) < 10000) { if (hasSwitchedOnce.current && (now - lastSwitchTime.current) < 10000) {
setWidth(newWidth); setWidth(newWidth);
return; return;
} }
// Only switch if we're actually crossing the threshold AND enough time has passed
if (newIsMobile !== isCurrentlyMobile.current && (now - lastSwitchTime.current) > 5000) { if (newIsMobile !== isCurrentlyMobile.current && (now - lastSwitchTime.current) > 5000) {
lastSwitchTime.current = now; lastSwitchTime.current = now;
isCurrentlyMobile.current = newIsMobile; isCurrentlyMobile.current = newIsMobile;
@@ -38,7 +36,7 @@ function useWindowWidth() {
} else { } else {
setWidth(newWidth); setWidth(newWidth);
} }
}, 2000); // Even longer debounce }, 2000);
}; };
window.addEventListener("resize", handleResize); window.addEventListener("resize", handleResize);
@@ -54,8 +52,12 @@ function useWindowWidth() {
function RootApp() { function RootApp() {
const width = useWindowWidth(); const width = useWindowWidth();
const isMobile = width < 768; const isMobile = width < 768;
const isElectron = (window as any).IS_ELECTRON === true || (window as any).electronAPI?.isElectron === true;
// Use a stable key to prevent unnecessary remounting
if (isElectron) {
return <DesktopApp />;
}
return isMobile ? <MobileApp key="mobile" /> : <DesktopApp key="desktop" />; return isMobile ? <MobileApp key="mobile" /> : <DesktopApp key="desktop" />;
} }