UNPKG

antd

Version:

An enterprise-class UI design language and React components implementation

66 lines (65 loc) 3.76 kB
"use strict"; "use client"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _configProvider = require("../config-provider"); var _useMessage = _interopRequireDefault(require("../message/useMessage")); var _useModal = _interopRequireDefault(require("../modal/useModal")); var _useNotification = _interopRequireDefault(require("../notification/useNotification")); var _context = _interopRequireWildcard(require("./context")); var _style = _interopRequireDefault(require("./style")); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } const useApp = () => _react.default.useContext(_context.default); const App = props => { const { prefixCls: customizePrefixCls, children, className, rootClassName, message, notification, style, component = 'div' } = props; const { getPrefixCls } = (0, _react.useContext)(_configProvider.ConfigContext); const prefixCls = getPrefixCls('app', customizePrefixCls); const [wrapCSSVar, hashId, cssVarCls] = (0, _style.default)(prefixCls); const customClassName = (0, _classnames.default)(hashId, prefixCls, className, rootClassName, cssVarCls); const appConfig = (0, _react.useContext)(_context.AppConfigContext); const mergedAppConfig = _react.default.useMemo(() => ({ message: Object.assign(Object.assign({}, appConfig.message), message), notification: Object.assign(Object.assign({}, appConfig.notification), notification) }), [message, notification, appConfig.message, appConfig.notification]); const [messageApi, messageContextHolder] = (0, _useMessage.default)(mergedAppConfig.message); const [notificationApi, notificationContextHolder] = (0, _useNotification.default)(mergedAppConfig.notification); const [ModalApi, ModalContextHolder] = (0, _useModal.default)(); const memoizedContextValue = _react.default.useMemo(() => ({ message: messageApi, notification: notificationApi, modal: ModalApi }), [messageApi, notificationApi, ModalApi]); // ============================ Render ============================ const Component = component === false ? _react.default.Fragment : component; const rootProps = { className: customClassName, style }; return wrapCSSVar( /*#__PURE__*/_react.default.createElement(_context.default.Provider, { value: memoizedContextValue }, /*#__PURE__*/_react.default.createElement(_context.AppConfigContext.Provider, { value: mergedAppConfig }, /*#__PURE__*/_react.default.createElement(Component, Object.assign({}, component === false ? undefined : rootProps), ModalContextHolder, messageContextHolder, notificationContextHolder, children)))); }; if (process.env.NODE_ENV !== 'production') { App.displayName = 'App'; } App.useApp = useApp; var _default = exports.default = App;