UNPKG

react-page-routes

Version:

Simplify coding your react-router-dom <Routes/> and <NavLinks/> by using attributes in your component.

33 lines (32 loc) 1.36 kB
import { Routes, Route, NavLink } from 'react-router-dom'; import React from 'react'; export function useDirectory() { var pages = []; for (var _i = 0; _i < arguments.length; _i++) { pages[_i] = arguments[_i]; } return { Pages: function (props) { if (pages instanceof Array) { if ('map' in props && props.map) { return React.createElement(Routes, null, pages.map(props.map)); } else { return React.createElement(Routes, null, pages.map(PageToRoute)); } } return React.createElement(React.Fragment, null); }, NavBar: function (props) { var defaultMapper = function (E) { return (React.createElement(NavLink, { key: E.path.toString(), to: E.path.toString() }, E.title)); }; if (pages instanceof Array) { return React.createElement(React.Fragment, null, props.map && 'map' in props ? pages.map(props.map) : pages.map(defaultMapper)); } return React.createElement(React.Fragment, null); } }; } function PageToRoute(E) { return React.createElement(Route, { key: String(E.name), element: React.createElement(E, null), path: 'path' in E ? String(E.path) : '' }); } export var routes = useDirectory;