UNPKG

@react-awesome-query-builder/mui

Version:
39 lines (38 loc) 2.28 kB
import _extends from "@babel/runtime/helpers/extends"; var _split$, _xdpPackage$version; import React from "react"; import { ThemeProvider, useTheme } from "@mui/material/styles"; import { ConfirmProvider } from "material-ui-confirm"; import { LocalizationProvider } from "@mui/x-date-pickers/LocalizationProvider"; import { AdapterMoment } from "@mui/x-date-pickers/AdapterMoment"; // TODO: set moment to dayjs import xdpPackage from "@mui/x-date-pickers/package.json"; // to determine version import { CssVarsProvider } from "./CssVarsProvider"; import { buildTheme } from "../../utils/theming"; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access var xdpVersion = parseInt((_split$ = (_xdpPackage$version = xdpPackage.version) === null || _xdpPackage$version === void 0 || (_xdpPackage$version = _xdpPackage$version.split(".")) === null || _xdpPackage$version === void 0 ? void 0 : _xdpPackage$version[0]) !== null && _split$ !== void 0 ? _split$ : "0"); var MuiProvider = function MuiProvider(_ref) { var _config$settings$loca, _config$settings$desi; var config = _ref.config, children = _ref.children; var momentLocale = (_config$settings$loca = config.settings.locale) === null || _config$settings$loca === void 0 ? void 0 : _config$settings$loca.moment; var existingOuterTheme = useTheme(); var existingTheme = (_config$settings$desi = config.settings.designSettings) !== null && _config$settings$desi !== void 0 && _config$settings$desi.canInheritThemeFromOuterProvider ? existingOuterTheme : undefined; var mergedTheme = React.useMemo(function () { return buildTheme(config, existingTheme); }, [config, existingTheme]); var locProviderProps = momentLocale ? xdpVersion >= 6 ? { locale: momentLocale } : { adapterLocale: momentLocale } : {}; var withProviders = /*#__PURE__*/React.createElement(LocalizationProvider, _extends({ dateAdapter: AdapterMoment }, locProviderProps), /*#__PURE__*/React.createElement(ConfirmProvider, null, /*#__PURE__*/React.createElement(CssVarsProvider, { config: config }, children))); var withTheme = mergedTheme ? /*#__PURE__*/React.createElement(ThemeProvider, { theme: mergedTheme }, withProviders) : withProviders; return withTheme; }; export { MuiProvider };