Преглед на файлове

fix: add media query to theme-color, fix auto theme not updating theme-color

Yorun преди 1 година
родител
ревизия
30ff915e9d
променени са 2 файла, в които са добавени 23 реда и са изтрити 6 реда
  1. 17 5
      app/components/home.tsx
  2. 6 1
      app/layout.tsx

+ 17 - 5
app/components/home.tsx

@@ -52,11 +52,23 @@ function useSwitchTheme() {
       document.body.classList.add("light");
     }
 
-    const themeColor = getComputedStyle(document.body)
-      .getPropertyValue("--theme-color")
-      .trim();
-    const metaDescription = document.querySelector('meta[name="theme-color"]');
-    metaDescription?.setAttribute("content", themeColor);
+    const metaDescriptionDark = document.querySelector(
+      'meta[name="theme-color"][media]',
+    );
+    const metaDescriptionLight = document.querySelector(
+      'meta[name="theme-color"]:not([media])',
+    );
+
+    if (config.theme === "auto") {
+      metaDescriptionDark?.setAttribute("content", "#151515");
+      metaDescriptionLight?.setAttribute("content", "#fafafa");
+    } else {
+      const themeColor = getComputedStyle(document.body)
+        .getPropertyValue("--theme-color")
+        .trim();
+      metaDescriptionDark?.setAttribute("content", themeColor);
+      metaDescriptionLight?.setAttribute("content", themeColor);
+    }
   }, [config.theme]);
 }
 

+ 6 - 1
app/layout.tsx

@@ -21,7 +21,7 @@ export const metadata = {
   description: "Your personal ChatGPT Chat Bot.",
   appleWebApp: {
     title: "ChatGPT Next Web",
-    statusBarStyle: "black-translucent",
+    statusBarStyle: "default",
   },
   themeColor: "#fafafa",
 };
@@ -53,6 +53,11 @@ export default function RootLayout({
           name="viewport"
           content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
         />
+        <meta
+          name="theme-color"
+          content="#151515"
+          media="(prefers-color-scheme: dark)"
+        />
         <Meta />
         <link rel="manifest" href="/site.webmanifest"></link>
         <link rel="preconnect" href="https://fonts.googleapis.com"></link>