@tra-tech/react-native-kitra
Version:
UI kit for React Native
72 lines • 1.74 kB
JavaScript
import { createContext, useMemo, useState } from 'react';
const ThemeContext = /*#__PURE__*/createContext({});
const ThemeProvider = _ref => {
let {
children
} = _ref;
const [colorScheme, setColorScheme] = useState('dark');
const [theme, setTheme] = useState(defaultTheme);
function updateTheme(newTheme) {
setTheme(prev => ({
...prev,
dark: {
...prev.dark,
...(newTheme === null || newTheme === void 0 ? void 0 : newTheme.dark)
},
light: {
...prev.light,
...(newTheme === null || newTheme === void 0 ? void 0 : newTheme.light)
}
}));
}
const GetColors = () => theme[colorScheme];
const contextValue = useMemo(() => ({
theme: GetColors(),
updateTheme,
setColorScheme,
colorScheme
}), [theme, colorScheme]);
return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
value: contextValue
}, children);
};
export { ThemeProvider, ThemeContext };
const text = {
black: '#000000',
lightBlack: '#404040',
grey: '#9A9A9A',
white: '#FFFFFF',
darkWhite: '#FDFCFF',
lightGrey: '#F5F4F6'
};
const status = {
focused: '#654FA6',
error: '#FF3434',
succes: '#09CE63',
disabledLight: '#D7D1E9',
disabledDark: '#BDBCBF',
disabledLightDark: '#F6F6F6'
};
export const defaultTheme = {
dark: {
primary: '#8973CD',
primary5: '#F9F8FD',
primary15: '#EDEAF8',
primary30: '#DCD5F0',
secondary: '#82B98E',
tertiary: '#67A7C1',
...text,
...status
},
light: {
primary: '#8973CD',
primary5: '#F9F8FD',
primary15: '#F3F1FA',
primary30: '#DCD5F0',
secondary: '#82B98E',
tertiary: '#67A7C1',
...text,
...status
}
};
//# sourceMappingURL=theme.js.map