UNPKG

@doreamonjs/gate

Version:
59 lines 2.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Apps = exports.App = void 0; const tslib_1 = require("tslib"); const react_1 = tslib_1.__importStar(require("react")); const classnames_1 = tslib_1.__importDefault(require("classnames")); const dva_1 = require("dva"); const icons_1 = require("@ant-design/icons"); const antd_1 = require("antd"); const components_1 = require("@doreamonjs/components"); const application = tslib_1.__importStar(require("@doreamonjs/plugin-application")); require("./index.less"); const componentName = 'doreamonjs-design-gate-global-apps'; const App = (props) => { const onSelect = react_1.useCallback(() => { props.onSelect && props.onSelect(props); }, [props.name]); const isActive = props.homepage === window.location.origin; return (react_1.default.createElement("div", { className: `app ${isActive ? 'active' : ''}`, onClick: onSelect }, react_1.default.createElement("div", { className: 'wrap' }, react_1.default.createElement("span", { className: 'logo' }, react_1.default.createElement(components_1.Icon, { style: { fontSize: 22 }, type: props.logo || 'question-o' })), react_1.default.createElement("span", { className: 'name' }, props.name)))); }; exports.App = App; const Apps = (props) => { const containerCls = classnames_1.default(componentName, 'apps'); return (react_1.default.createElement(antd_1.Drawer, { className: containerCls, width: 300, title: props.title, headerStyle: { display: 'none' }, bodyStyle: { paddingTop: 48 }, placement: props.placement || 'left', visible: props.visible, onClose: props.onClose }, react_1.default.createElement("div", { style: { color: '#000', position: 'absolute', top: 12, right: 10, cursor: 'pointer', }, onClick: props.onClose }, react_1.default.createElement(icons_1.CloseOutlined, { className: 'close' })), props.data.map((app, index) => { if (app.hidden) return null; return react_1.default.createElement(exports.App, { key: index, ...app, onSelect: props.onSelect }); }))); }; exports.Apps = Apps; exports.Apps.defaultProps = { data: [], }; const mapState = (state) => { const { site, apps } = state[application.NAMESPACE]; return { title: site.name, ...apps, }; }; const mapActions = (dispatch) => ({ onSelect: (app) => dispatch({ type: `${application.NAMESPACE}/select/app`, payload: app }), onClose: (app) => dispatch({ type: `${application.NAMESPACE}/close/apps` }), }); exports.default = dva_1.connect(mapState, mapActions)(exports.Apps); //# sourceMappingURL=index.js.map