UNPKG

@wizecorp/stratusjs

Version:
33 lines 1.3 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { createContext, useEffect, useState } from 'react'; import { useLocation, useParams, useSearchParams } from 'react-router-dom'; export const RouterContext = createContext(null); export const RouterProvider = ({ children }) => { const location = useLocation(); const params = useParams(); const [searchParams] = useSearchParams(); const [contextValue, setContextValue] = useState(null); useEffect(() => { const query = Object.fromEntries(searchParams.entries()); setContextValue({ pathname: location.pathname, params: params, query, navigate: (path, options = {}) => { if (options.replace) { window.history.replaceState(options.state, '', path); } else { window.history.pushState(options.state, '', path); } }, back: () => window.history.back(), forward: () => window.history.forward() }); }, [location, params, searchParams]); if (!contextValue) { return null; } return (_jsx(RouterContext.Provider, { value: contextValue, children: children })); }; //# sourceMappingURL=RouterContext.js.map