reflexy
Version:
Flexbox layout react components
17 lines (16 loc) • 1.04 kB
JavaScript
'use client';
import { jsx as _jsx } from "react/jsx-runtime";
import React from 'react';
import ThemeProvider, {} from '@mui/system/ThemeProvider';
import useTheme from '@mui/system/useTheme';
import FlexProviderBase, { FlexContext } from '../FlexProvider';
export {};
function ReflexyThemeProvider(props) {
const { defaultUnit, defaultSize, defaultSizes } = React.use(FlexContext);
const theme = React.useMemo(() => Object.freeze({ reflexy: { defaultUnit, defaultSize, defaultSizes } }), [defaultSize, defaultSizes, defaultUnit]);
return _jsx(ThemeProvider, { theme: theme, ...props });
}
export default function FlexProvider({ defaultUnit, defaultSize, defaultSizes, children, ...rest }) {
const upperTheme = useTheme();
return (_jsx(FlexProviderBase, { defaultUnit: defaultUnit ?? upperTheme?.reflexy?.defaultUnit, defaultSize: defaultSize ?? upperTheme?.reflexy?.defaultSize, defaultSizes: defaultSizes ?? upperTheme?.reflexy?.defaultSizes, ...rest, children: _jsx(ReflexyThemeProvider, { children: children }) }));
}