UNPKG

@revenuecat/purchases-ui-js

Version:

Web components for Paywalls. Powered by RevenueCat

18 lines (17 loc) 748 B
import { readable } from "svelte/store"; // Create a readable store that updates when the system theme changes export const prefersDarkMode = readable(false, (set) => { // Check if window is defined (client-side) if (typeof window !== "undefined") { // Set initial value const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)"); set(mediaQuery.matches); // Update value when system preference changes const handler = (e) => set(e.matches); mediaQuery.addEventListener("change", handler); // Cleanup when store is destroyed return () => mediaQuery.removeEventListener("change", handler); } // Return empty cleanup function for SSR return () => { }; });