@react-awesome-query-builder/mui
Version:
User-friendly query builder for React. MUI 5 widgets
39 lines (38 loc) • 2.28 kB
JavaScript
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 };