diff --git a/apps/web/playwright/change-theme.e2e.ts b/apps/web/playwright/change-theme.e2e.ts index dce90bf3da..09b06f006f 100644 --- a/apps/web/playwright/change-theme.e2e.ts +++ b/apps/web/playwright/change-theme.e2e.ts @@ -57,7 +57,7 @@ test.describe("Change App Theme Test", () => { await page.waitForTimeout(3000); const themeValue = await page.evaluate(() => localStorage.getItem("app-theme")); - expect(themeValue).toBe("system"); + expect(themeValue).toBe("light"); const systemTheme = await page.evaluate(() => { return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"; diff --git a/packages/lib/hooks/useTheme.tsx b/packages/lib/hooks/useTheme.tsx index 54ff7e234b..3c9afa622e 100644 --- a/packages/lib/hooks/useTheme.tsx +++ b/packages/lib/hooks/useTheme.tsx @@ -11,7 +11,9 @@ import { useEmbedTheme } from "@calcom/embed-core/embed-iframe"; */ // eslint-disable-next-line @typescript-eslint/ban-types export default function useTheme(themeToSet: "system" | (string & {}) | undefined | null, getOnly = false) { - themeToSet = themeToSet ? themeToSet : "system"; + if (typeof window !== "undefined") { + themeToSet = themeToSet || localStorage.getItem("app-theme") || "system"; + } const { resolvedTheme, setTheme, forcedTheme, theme: activeTheme } = useNextTheme(); const embedTheme = useEmbedTheme();