UNPKG

react-router-config-guard

Version:

Static route config and guard for React Router, base on react-router-config

3 lines (2 loc) 4.91 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("react-router")):"function"==typeof define&&define.amd?define(["exports","react","react-router"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactRouterConfigGuard={},e.React,e.ReactRouter)}(this,function(e,v,g){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var O=t(v);function j(){return(j=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r,n=arguments[t];for(r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function E(e){return(E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function S(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var r=[],n=!0,o=!1,u=void 0;try{for(var a,c=e[Symbol.iterator]();!(n=(a=c.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){o=!0,u=e}finally{try{n||null==c.return||c.return()}finally{if(o)throw u}}return r}}(e,t)||function(e,t){if(e){if("string"==typeof e)return n(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Map"===(r="Object"===r&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var x=v.createContext(null);function r(t,e){var r,n=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)),n}function P(n){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{};e%2?r(Object(o),!0).forEach(function(e){var t,r;t=n,e=o[r=e],r in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(o,e))})}return n}var o=v.memo(function(e){var n=e.routerBeforeEach,t=e.routerAfterEach,r=e.route,o=e.history,u=v.useContext(x),a=v.useContext(g.__RouterContext),c=v.useCallback(function(){return P(P({},a),{},{meta:r.meta||{},route:r})},[a,r]),i=S(v.useState(!1),2),f=i[0],l=i[1],s=S(v.useState(""),2),p=s[0],y=s[1],h=S(v.useState(!1),2),i=h[0],b=h[1],s=S(v.useState(!1),2),h=s[0],d=s[1],m=v.useCallback(function(e,t,r){n&&n(e,t,r)},[n]);return v.useEffect(function(){n?m(c(),u,function(e){e?"string"==typeof e?(y(e),d(!1),b(!0)):"object"!==E(e)||"string"!=typeof e.path&&"string"!=typeof e.name?(console.log("Your next format is incorrect, should be : next('/') or next({ path: '/' }) or next({ path: '/', replace: true})"),b(!1)):(y(e.path||e.name),d(e.replace||!1),b(!0)):b(!1),l(!0)}):(l(!0),b(!1))},[m]),f?i&&p?(t&&t(c()),h?O.default.createElement(g.Redirect,j({to:p},e)):o?(o.push(p),null):O.default.createElement(g.Route,j({to:p},e))):(t&&t(c()),O.default.createElement(r.component,e)):null});function u(e){var t=v.useRef(e);return v.useEffect(function(){t.current=e}),t.current}var a,c,i=v.memo(function(e){var t=e.childrens,e=u(v.useContext(g.__RouterContext));return O.default.createElement(x.Provider,{value:e},t)}),f=require("react-router"),l=function(){return(l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r,n=arguments[t];for(r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)};e.matchRoutes=function r(e,n,o){return void 0===o&&(o=[]),e.some(function(e){var t=e.path?f.matchPath(n,e):o.length?o[o.length-1].match:f.Router.computeRootMatch(n);return t&&(o.push({route:e,match:t}),e.routes&&r(e.routes,n,o)),t}),o},e.renderRoutes=function(e){var r=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},t=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};return void 0===r&&(r={}),void 0===t&&(t={}),e?O.default.createElement(i,{childrens:O.default.createElement(g.Switch,{switchProps:t,extraProps:r},e.map(function(t,e){return O.default.createElement(f.Route,{key:t.key||e,path:t.path,exact:t.exact,strict:t.strict,render:function(e){e=l({},e,{},r,{route:t});return t.render?t.render(e):O.default.createElement(o,j({routerBeforeEach:a,routerAfterEach:c},e))}})}))}):null},e.setRouterEach=function(e,t){a=e,c=t},e.usePrevious=u,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=react-router-config-guard.min.js.map