react-native-chart-kit
Version:
Beautiful React Native charts for dashboards, reports, and data-rich mobile apps.
28 lines (27 loc) • 1.03 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { createContext, useContext, useMemo } from "react";
import { useColorScheme } from "react-native";
const defaultChartKitThemeContext = {
mode: "light",
preset: "default",
presets: {},
theme: undefined
};
const ChartKitThemeContext = createContext(defaultChartKitThemeContext);
export const ChartKitProvider = ({ children, mode = "light", preset = "default", presets = {}, renderer, theme }) => {
const systemColorScheme = useColorScheme();
const resolvedMode = mode === "system"
? systemColorScheme === "dark"
? "dark"
: "light"
: mode;
const value = useMemo(() => ({
mode: resolvedMode,
preset,
presets,
...(renderer ? { renderer } : {}),
theme
}), [preset, presets, renderer, resolvedMode, theme]);
return (_jsx(ChartKitThemeContext.Provider, { value: value, children: children }));
};
export const useChartKitTheme = () => useContext(ChartKitThemeContext);