Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 332x 7907x 7907x 7907x 7907x 7907x 329x 329x 7907x | import React from "react";
import { useColorScheme } from "react-native";
import { useColorModes } from "~app/hooks/use-color-modes";
import type { ColorMode } from "~app/utils/store/color-modes";
export const ThemeProvider: React.FC<
React.PropsWithChildren<{
applyColorMode: (colorMode: ColorMode) => void;
}>
> = ({ children, applyColorMode }) => {
const colorScheme = useColorScheme();
const {
selected: [selectedColorMode],
system: [systemColorMode, setSystemColorMode],
} = useColorModes();
const colorMode = selectedColorMode || systemColorMode;
// Should be `useEffectEvent` in next React
// oxlint-disable-next-line react-hooks/exhaustive-deps
React.useEffect(() => applyColorMode(colorMode), [colorMode]);
React.useEffect(() => {
Iif (colorScheme === "unspecified") {
return;
}
setSystemColorMode(colorScheme);
}, [colorScheme, setSystemColorMode]);
return <>{children}</>;
};
|