UNPKG

658 BPlain TextView Raw
1"use client";
2
3import { createContext, useContext } from "react";
4import type { UseIsDark } from "./client";
5import { useConstCallback } from "../tools/powerhooks/useConstCallback";
6import { assert } from "tsafe/assert";
7
8const ssrIsDarkContext = createContext<boolean | undefined>(undefined);
9
10export const { Provider: SsrIsDarkProvider } = ssrIsDarkContext;
11
12export const useIsDarkServerSide: UseIsDark = () => {
13 const setIsDark = useConstCallback(() => {
14 /* nothing */
15 });
16
17 const isDark = useContext(ssrIsDarkContext);
18
19 assert(isDark !== undefined, "Not within provider");
20
21 return {
22 isDark,
23 setIsDark
24 };
25};