UNPKG

@flatbiz/antd

Version:
88 lines (84 loc) 3.49 kB
/*! @flatjs/forge MIT @flatbiz/antd */ import { c as _toConsumableArray, b as _objectSpread2 } from './_rollupPluginBabelHelpers-BYm17lo8.js'; import { get } from '@dimjs/utils/get/get'; import { useEffect } from 'react'; import { theme, App } from 'antd'; import { toArray } from '@flatbiz/utils'; import { C as ConfigProviderWrapper } from './config-provider-wrapper-DDa_64Ce.js'; import { F as FbaApp } from './fba-app-DO_YME_j.js'; import { fbaHooks } from './fba-hooks/index.js'; import { jsx } from 'react/jsx-runtime'; /** * 如果当前项目入口不使用@flatbiz/pro-layout,必须使用 Bootstrap 组件包装 * ``` * Bootstrap 内部 * 1. 封装 antd App组件 * 2. 封装 @flatbiz/antd FbaApp组件 * 3. 适配 light/dark模式 * 4. 封装 antd ConfigProvider 可配置主题 * ``` */ var Bootstrap = function Bootstrap(props) { var _props$configProvider, _props$configProvider2; useEffect(function () { var bodyStyle = document.body.style.cssText; var keyValuePairs = {}; if (bodyStyle) { var regex = /(.+?):\s*(.+?);/g; var match; while (match = regex.exec(bodyStyle)) { var key = match[1].trim(); var value = match[2]; keyValuePairs[key] = value; } } if (props.dark) { keyValuePairs['--bg-color'] = get(props, 'bgColorConfig.dark.bgColor', '#1b1a1a'); keyValuePairs['--block-bg-color'] = get(props, 'bgColorConfig.dark.blockBgColor', '#000'); } else { keyValuePairs['--bg-color'] = get(props, 'bgColorConfig.light.bgColor', '#f9f9f9'); keyValuePairs['--block-bg-color'] = get(props, 'bgColorConfig.light.blockBgColor', '#FFF'); } var varStyleText = ''; Object.keys(keyValuePairs).forEach(function (key) { if (keyValuePairs[key]) { varStyleText = varStyleText + "".concat(key, ":").concat(keyValuePairs[key], ";"); } }); document.body.style.cssText = varStyleText; if (props.dark) { document.body.classList.add('dark-theme'); } else { document.body.classList.add('light-theme'); } if (props.compact) { document.body.classList.add('compact-theme'); } }, [props.bgColorConfig, props.dark]); var innerTheme = fbaHooks.useThemeToken(); var algorithm = (_props$configProvider = props.configProviderProps) === null || _props$configProvider === void 0 || (_props$configProvider = _props$configProvider.theme) === null || _props$configProvider === void 0 ? void 0 : _props$configProvider.algorithm; var algorithmArray = toArray(algorithm); algorithmArray = [].concat(_toConsumableArray(algorithmArray), [props.dark ? theme.darkAlgorithm : null, props.compact ? theme.compactAlgorithm : null]).filter(Boolean); return /*#__PURE__*/jsx(ConfigProviderWrapper, _objectSpread2(_objectSpread2({ locale: props.locale, componentSize: 'middle', space: { size: 'middle' } }, props.configProviderProps), {}, { theme: _objectSpread2(_objectSpread2({}, (_props$configProvider2 = props.configProviderProps) === null || _props$configProvider2 === void 0 ? void 0 : _props$configProvider2.theme), {}, { algorithm: algorithmArray }), children: /*#__PURE__*/jsx(App, { style: { '--color-primary': innerTheme.colorPrimary }, className: "bootstrap-app", children: /*#__PURE__*/jsx(FbaApp, { children: props.children }) }) })); }; export { Bootstrap as B }; //# sourceMappingURL=bootstrap-NbEW5Nn8.js.map