@revenuecat/purchases-ui-js
Version:
Web components for Paywalls. Powered by RevenueCat
16 lines (15 loc) • 674 B
JavaScript
import { DEFAULT_COLOR_MODE } from "../utils/constants";
import { getContext, setContext } from "svelte";
import { MediaQuery } from "svelte/reactivity";
const key = Symbol("color-mode");
export function setColorModeContext(colorModeOverride) {
const prefersDarkMode = new MediaQuery("prefers-color-scheme: dark", (colorModeOverride?.() ?? DEFAULT_COLOR_MODE) === "dark");
const context = () => colorModeOverride?.() ??
(prefersDarkMode.current ? "dark" : DEFAULT_COLOR_MODE);
setContext(key, context);
return context;
}
export function getColorModeContext() {
const context = getContext(key);
return context ?? (() => DEFAULT_COLOR_MODE);
}