react-router-dom
Version:
Declarative routing for React web applications
11 lines (10 loc) • 3.83 kB
JavaScript
import{Router,useHref,useNavigate,useLocation,useResolvedLocation,useMatch,useBlocker}from'react-router';import{createBrowserHistory,createHashHistory}from'history';import PropTypes from'prop-types';import React from'react';export{MemoryRouter,Navigate,Outlet,Redirect,Route,Router,Routes,createRoutesFromChildren,generatePath,matchRoutes,resolveLocation,useBlocker,useHref,useLocation,useMatch,useNavigate,useOutlet,useParams,useResolvedLocation,useRoutes}from'react-router';function h(){h=Object.assign||function(a){for(var e=1;e<arguments.length;e++){var c=arguments[e],b;for(b in c)Object.prototype.hasOwnProperty.call(c,b)&&(a[b]=c[b])}return a};return h.apply(this,arguments)}function l(a,e){if(null==a)return{};var c={},b=Object.keys(a),d;for(d=0;d<b.length;d++){var f=b[d];0<=e.indexOf(f)||(c[f]=a[f])}return c}
function m(a){var e=a.children,c=a.timeout;a=a.window;var b=React.useRef(null);null==b.current&&(b.current=createBrowserHistory({window:a}));return React.createElement(Router,{children:e,history:b.current,timeout:c})}"production"!==process.env.NODE_ENV&&(m.displayName="BrowserRouter",m.propTypes={children:PropTypes.node,timeout:PropTypes.number,window:PropTypes.object});
function n(a){var e=a.children,c=a.timeout;a=a.window;var b=React.useRef(null);null==b.current&&(b.current=createHashHistory({window:a}));return React.createElement(Router,{children:e,history:b.current,timeout:c})}"production"!==process.env.NODE_ENV&&(n.displayName="HashRouter",n.propTypes={children:PropTypes.node,timeout:PropTypes.number,window:PropTypes.object});
var t=React.forwardRef(function(a,e){var c=a.as;c=void 0===c?"a":c;var b=a.onClick,d=a.replace,f=void 0===d?!1:d,p=a.state,k=a.target,g=a.to;a=l(a,"as onClick replace state target to".split(" "));d=useHref(g);var x=useNavigate(),q=useLocation(),r=useResolvedLocation(g);return React.createElement(c,h({},a,{href:d,onClick:function(a){b&&b(a);a.defaultPrevented||0!==a.button||k&&"_self"!==k||a.metaKey||a.altKey||a.ctrlKey||a.shiftKey||(a.preventDefault(),a=r.pathname===q.pathname&&r.search===q.search&&
r.hash===q.hash,x(g,{replace:!!f||a,state:p}))},ref:e,target:k}))});"production"!==process.env.NODE_ENV&&(t.displayName="Link",t.propTypes={as:PropTypes.elementType,onClick:PropTypes.func,replace:PropTypes.bool,state:PropTypes.object,target:PropTypes.string,to:PropTypes.oneOfType([PropTypes.string,PropTypes.shape({pathname:PropTypes.string,search:PropTypes.string,hash:PropTypes.string})]).isRequired});
var u=React.forwardRef(function(a,e){var c=a["aria-current"];c=void 0===c?"page":c;var b=a.activeClassName;b=void 0===b?"active":b;var d=a.activeStyle;d=void 0===d?null:d;var f=a.className,p=void 0===f?"":f;f=a.style;var k=void 0===f?null:f;f=a.to;a=l(a,"aria-current activeClassName activeStyle className style to".split(" "));var g=useMatch(f);c=g?c:void 0;b=[p,g?b:null].filter(Boolean).join(" ");d=h({},k,{},g?d:null);return React.createElement(t,h({},a,{"aria-current":c,className:b,ref:e,style:d,
to:f}))});"production"!==process.env.NODE_ENV&&(u.displayName="NavLink",u.propTypes=h({},t.propTypes,{"aria-current":PropTypes.oneOf("page step location date time true".split(" ")),activeClassName:PropTypes.string,activeStyle:PropTypes.object,className:PropTypes.string,style:PropTypes.object,to:PropTypes.oneOfType([PropTypes.string,PropTypes.shape({pathname:PropTypes.string,search:PropTypes.string,hash:PropTypes.string})]).isRequired}));function v(a){w(a.message,a.when);return null}
"production"!==process.env.NODE_ENV&&(v.displayName="Prompt",v.propTypes={message:PropTypes.string,when:PropTypes.bool});function w(a,e){var c=React.useCallback(function(b){window.confirm(a)&&b.retry()},[a]);useBlocker(c,e)}
export{m as BrowserRouter,n as HashRouter,t as Link,u as NavLink,v as Prompt,w as usePrompt}
//# sourceMappingURL=react-router-dom.js.map