@react-awesome-query-builder/antd
Version:
User-friendly query builder for React. AntDesign widgets
47 lines (45 loc) • 2.57 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Provider = void 0;
var _react = _interopRequireDefault(require("react"));
var _antd = require("antd");
var _CssVarsProvider = require("./CssVarsProvider");
var _theming = require("../../utils/theming");
var Provider = exports.Provider = function Provider(_ref) {
var _config$settings$them, _config$settings$loca, _config$settings$desi;
var config = _ref.config,
children = _ref.children;
var themeMode = config.settings.themeMode;
var darkMode = themeMode === "dark";
var compactMode = !!config.settings.compactMode;
var themeConfig = (_config$settings$them = config.settings.theme) === null || _config$settings$them === void 0 ? void 0 : _config$settings$them.antd;
var localeConfig = (_config$settings$loca = config.settings.locale) === null || _config$settings$loca === void 0 ? void 0 : _config$settings$loca.antd;
var canCreateAlgorithms = darkMode || compactMode;
var canCreateTheme = !!themeConfig || localeConfig || canCreateAlgorithms;
var _antdTheme$useToken = _antd.theme.useToken(),
existingOuterToken = _antdTheme$useToken.token,
existingTheme = _antdTheme$useToken.theme;
var existingToken = (_config$settings$desi = config.settings.designSettings) !== null && _config$settings$desi !== void 0 && _config$settings$desi.canInheritThemeFromOuterProvider ? existingOuterToken : undefined;
var _React$useMemo = _react["default"].useMemo(function () {
return (0, _theming.buildAlgorithms)(darkMode, compactMode);
}, [darkMode, compactMode]),
algorithms = _React$useMemo.algorithms;
var customThemeConfig = _react["default"].useMemo(function () {
return canCreateTheme ? (0, _theming.mergeThemes)(themeMode, existingToken, themeConfig, algorithms) : undefined;
}, [algorithms, themeConfig, existingTheme.id, themeMode, canCreateTheme]);
var withCssVarsProvider = /*#__PURE__*/_react["default"].createElement(_CssVarsProvider.CssVarsProvider, {
config: config
}, children);
// https://ant.design/components/config-provider
var withTheme = canCreateTheme ?
/*#__PURE__*/
// @ts-ignore error TS2786: 'ConfigProvider' cannot be used as a JSX component. Its return type 'ReactNode | Promise<ReactNode>' is not a valid JSX element.
_react["default"].createElement(_antd.ConfigProvider, {
locale: localeConfig,
theme: customThemeConfig
}, withCssVarsProvider) : withCssVarsProvider;
return withTheme;
};