Sfoglia il codice sorgente

fix next themes no rerender (#5001)

Khaleel Al-Adhami 1 mese fa
parent
commit
6d49cfbda6

+ 9 - 1
reflex/.templates/web/components/reflex/radix_themes_color_mode_provider.js

@@ -1,5 +1,5 @@
 import { useTheme } from "next-themes";
 import { useTheme } from "next-themes";
-import { useEffect, useState } from "react";
+import { useRef, useEffect, useState } from "react";
 import {
 import {
   ColorModeContext,
   ColorModeContext,
   defaultColorMode,
   defaultColorMode,
@@ -13,6 +13,14 @@ export default function RadixThemesColorModeProvider({ children }) {
   const [resolvedColorMode, setResolvedColorMode] = useState(
   const [resolvedColorMode, setResolvedColorMode] = useState(
     defaultColorMode === "dark" ? "dark" : "light",
     defaultColorMode === "dark" ? "dark" : "light",
   );
   );
+  const firstUpdate = useRef(true);
+  useEffect(() => {
+    if (firstUpdate.current) {
+      firstUpdate.current = false;
+      setRawColorMode(theme);
+      setResolvedColorMode(resolvedTheme);
+    }
+  });
 
 
   useEffect(() => {
   useEffect(() => {
     if (isDevMode) {
     if (isDevMode) {