From 1b502d146b741b4aacaa002a937efa17ce4d2c9a Mon Sep 17 00:00:00 2001 From: Arvin Xu Date: Wed, 20 Sep 2023 15:23:20 +0800 Subject: [PATCH] :bug: fix: add startTransition on callback function (#111) --- .../createThemeProvider/ThemeSwitcher.tsx | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/factories/createThemeProvider/ThemeSwitcher.tsx b/src/factories/createThemeProvider/ThemeSwitcher.tsx index 378397cc..3abde9cb 100644 --- a/src/factories/createThemeProvider/ThemeSwitcher.tsx +++ b/src/factories/createThemeProvider/ThemeSwitcher.tsx @@ -14,19 +14,23 @@ const ThemeObserver: FC<{ setBrowserPrefers: (value: BrowserPrefers) => void; }> = ({ themeMode, setAppearance, setBrowserPrefers }) => { const matchBrowserTheme = () => { - if (matchBrowserPrefers('dark').matches) { - setAppearance('dark'); - } else { - setAppearance('light'); - } + safeStartTransition(() => { + if (matchBrowserPrefers('dark').matches) { + setAppearance('dark'); + } else { + setAppearance('light'); + } + }); }; const updateBrowserTheme = () => { - if (matchBrowserPrefers('dark').matches) { - setBrowserPrefers('dark'); - } else { - setBrowserPrefers('light'); - } + safeStartTransition(() => { + if (matchBrowserPrefers('dark').matches) { + setBrowserPrefers('dark'); + } else { + setBrowserPrefers('light'); + } + }); }; // 自动监听系统主题变更