From 5d1deadc1eb297d31c79cdc5eb65bbad70848a8c Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Mon, 2 Jun 2025 14:25:08 +0800 Subject: [PATCH] fix: defers rendering all component until after hydration for Tauri platforms, closes #1301 (#1311) --- apps/readest-app/src/components/Providers.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/readest-app/src/components/Providers.tsx b/apps/readest-app/src/components/Providers.tsx index 11ca6b02..8d6dd907 100644 --- a/apps/readest-app/src/components/Providers.tsx +++ b/apps/readest-app/src/components/Providers.tsx @@ -1,15 +1,19 @@ 'use client'; +import { useEffect, useState } from 'react'; +import { IconContext } from 'react-icons'; import { AuthProvider } from '@/context/AuthContext'; import { EnvProvider } from '@/context/EnvContext'; import { CSPostHogProvider } from '@/context/PHContext'; import { SyncProvider } from '@/context/SyncContext'; -import { IconContext } from 'react-icons'; import { useDefaultIconSize } from '@/hooks/useResponsiveSize'; +import { isWebAppPlatform } from '@/services/environment'; const Providers = ({ children }: { children: React.ReactNode }) => { const iconSize = useDefaultIconSize(); - return ( + const [mounted, setMounted] = useState(false); + useEffect(() => setMounted(true), []); + return mounted || isWebAppPlatform() ? ( @@ -19,7 +23,7 @@ const Providers = ({ children }: { children: React.ReactNode }) => { - ); + ) : null; }; export default Providers;