summaryrefslogtreecommitdiff
path: root/packages/frontend/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend/src')
-rw-r--r--packages/frontend/src/theme.ts4
1 files changed, 3 insertions, 1 deletions
diff --git a/packages/frontend/src/theme.ts b/packages/frontend/src/theme.ts
index fc3f5f55f2..e001bed8f3 100644
--- a/packages/frontend/src/theme.ts
+++ b/packages/frontend/src/theme.ts
@@ -144,7 +144,9 @@ export function applyTheme(theme: Theme, persist = true) {
if (theme.id === currentThemeId && miLocalStorage.getItem('themeCachedVersion') === version) return;
currentThemeId = theme.id;
- if (window.document.startViewTransition != null) {
+ // visibilityStateがhiddenな状態でstartViewTransitionするとブラウザによってはエラーになる
+ // 通常hiddenな時に呼ばれることはないが、iOSのPWAだとアプリ切り替え時に(何故か)hiddenな状態で(何故か)一瞬デバイスのダークモード判定が変わりapplyThemeが呼ばれる場合がある
+ if (window.document.startViewTransition != null && window.document.visibilityState === 'visible') {
window.document.documentElement.classList.add('_themeChanging_');
try {
window.document.startViewTransition(async () => {