UNPKG

react-antd-admin-panel

Version:

Easy prototyping admin panel using React and Antd

45 lines 1.9 kB
import React from "react"; import { matchPath } from "react-router-dom"; import { useNavigate } from "react-router-dom"; import Path from "../typescript/models/Path"; import { message } from "antd"; const Mapping = (props) => { const doNavigate = useNavigate(); function buildPath(actualPath) { let url = new URL(`http://localhost${actualPath}`); let route = null; let match = null; let routes = Object.keys(props.main.$config.routes).map((key) => { var _a; let route = props.main.$config.routes[key]; return { exact: (_a = route._exact) !== null && _a !== void 0 ? _a : false, path: route._path._matchedPath, route: route }; }); routes.forEach(r => { let path = r.path; if (matchPath(Object.assign(Object.assign({}, r), { path }), url.pathname)) { route = r.route; match = matchPath(Object.assign(Object.assign({}, r), { path }), url.pathname); } }); let obj = { route: route, search: url.search, params: match === null || match === void 0 ? void 0 : match.params, actualPath: url.pathname, matchedPath: match === null || match === void 0 ? void 0 : match.pathnameBase, }; return new Path(obj); } function navigate(to) { props.main._setSiderRightClose(); doNavigate(to); } props.main.$map.$navigate = navigate; props.main.$map.$loading = props.state.toggleLoading; props.main.$map.$path = buildPath; props.main.tsxErrorMessage = (m) => message.error(m); props.main.tsxSuccessMessage = (m) => message.success(m); return (React.createElement("div", { style: { display: 'none' } }, "Mapping")); }; export default Mapping; //# sourceMappingURL=Mapping.js.map