@i-novus/ui-core
Version:
Базовые UI компоненты
35 lines (34 loc) • 1.16 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { createContext, useContext, useMemo } from 'react';
export const DEFAULT_PREFIX = 'zireael';
export const DEFAULT_ICON_PREFIX = 'zireael-icon';
export const DEFAULT_ROOT = 'ROOT'; // Имя рутового класса для кита, куда вешаются рутовые стили
const contextConfig = {
locale: 'ru',
prefix: DEFAULT_PREFIX,
iconPrefix: DEFAULT_ICON_PREFIX,
root: DEFAULT_ROOT,
};
export const ConfigProviderContext = createContext(contextConfig);
export const useConfigProvider = () => {
const context = useContext(ConfigProviderContext);
return {
...context,
getPrefix: (prefix) => {
if (prefix) {
return prefix;
}
return context.prefix;
},
};
};
export const ConfigProvider = (config) => {
const { value, children } = config;
const contextValue = useMemo(() => {
return {
...contextConfig,
...value,
};
}, [value]);
return (_jsx(ConfigProviderContext.Provider, { value: contextValue, children: children }));
};