Skip to content

Commit 378a8ec

Browse files
committed
Enable to get the current value of isDark
1 parent e35780c commit 378a8ec

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

src/useIsDark/client.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ export type UseIsDark = () => {
3131

3232
const $isAfterFirstEffect = createStatefulObservable(() => false);
3333

34+
export function getIsDarkClientSide() {
35+
return $isAfterFirstEffect.current ? $clientSideIsDark.current : ssrWasPerformedWithIsDark;
36+
}
37+
3438
export const useIsDarkClientSide: UseIsDark = () => {
3539
useRerenderOnChange($clientSideIsDark);
3640
useRerenderOnChange($isAfterFirstEffect);

src/useIsDark/index.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1+
import { assert } from "tsafe/assert";
12
import { isBrowser } from "../tools/isBrowser";
23
import { useIsDarkServerSide } from "./server";
3-
import { useIsDarkClientSide } from "./client";
4+
import { useIsDarkClientSide, getIsDarkClientSide } from "./client";
45
export type { ColorScheme } from "./client";
56

67
export const useIsDark = isBrowser ? useIsDarkClientSide : useIsDarkServerSide;
8+
9+
export const getIsDark = () => {
10+
assert(isBrowser, "getIsDark can only be used on the client side");
11+
12+
return getIsDarkClientSide();
13+
};

0 commit comments

Comments
 (0)