UNPKG

umi-plugin-abp-feature

Version:

feature

71 lines (53 loc) 1.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = _default; function _react() { const data = _interopRequireDefault(require("react")); _react = function _react() { return data; }; return data; } function _path() { const data = require("path"); _path = function _path() { return data; }; return data; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _default(util) { return `\ import React, { useMemo } from 'react'; import { IRoute } from 'umi'; import { useModel } from '../core/umiExports'; import featureFactory from '../../feature'; import FeatureContext, { FeatureInstance } from './context'; import { traverseModifyRoutes } from '${util.winPath((0, _path().join)(__dirname, '..', 'utils', 'runtimeUtil'))}'; type Routes = IRoute[]; interface Props { routes: Routes; children: React.ReactNode; } const FeatureProvider: React.FC<Props> = props => { if (typeof useModel !== 'function') { throw new Error('[plugin-feature]: useModel is not a function, @umijs/plugin-initial-state is needed.') } const { children } = props; const { initialState } = useModel('@@initialState'); const feature: FeatureInstance = useMemo(() => featureFactory(initialState as any), [initialState]); if (process.env.NODE_ENV === 'development' && (feature === undefined || feature === null)) { console.warn('[plugin-feature]: the feature instance created by feature.ts(js) is nullish, maybe you need check it.'); } props.routes.splice(0, props.routes.length, ...traverseModifyRoutes(props.routes, feature)); return React.createElement( FeatureContext.Provider, { value: feature }, children, ); }; export default FeatureProvider; `; }