metalib
Version:
Snippets pack
15 lines • 1.67 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var React=_interopRequireWildcard(require("react")),_url=_interopRequireDefault(require("url"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _getRequireWildcardCache(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(_getRequireWildcardCache=function(a){return a?c:b})(a)}function _interopRequireWildcard(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=_getRequireWildcardCache(b);if(c&&c.has(a))return c.get(a);var d={},e=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!=f&&Object.prototype.hasOwnProperty.call(a,f)){var g=e?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(d,f,g):d[f]=a[f]}return d.default=a,c&&c.set(a,d),d}/**
* Usage
*
* import {useParseUrl} from 'hooks/'
*
function Demo() {
const parseUrl = useParseUrl()
React.useEffect(() => {
if (parseUrl.active && parseUrl.query?.mode === 'dev') {
alert('Good!')
}
}, [parseUrl.active])
}
*/ // libs
function useParseUrl(){const[a,b]=React.useState(!1),c=!1!==a,d=c?a.query:null;React.useEffect(()=>{const a=_url.default.parse(document.location.href,!0,!1);b(a)},[]);new class{constructor(){}changeLocation(){if(!c)return void console.error("Url not parsed yet");const b=_url.default.format({protocol:a.protocol,hostname:a.hostname,pathname:a.pathname,port:a.port,query:{...d}});document.location.href=b}};return{active:c,query:d}}var _default=useParseUrl;exports.default=_default;