UNPKG

@wizecorp/stratusjs

Version:
42 lines 1.38 kB
import { useContext } from 'react'; import { useNavigate, useParams, useSearchParams, useLocation } from 'react-router-dom'; import { RouterContext } from '../core/RouterContext'; // Main router hook export const useRouter = () => { const context = useContext(RouterContext); const navigate = useNavigate(); const location = useLocation(); const [searchParams] = useSearchParams(); const params = useParams(); if (!context) { // Fallback if context is not available const query = Object.fromEntries(searchParams.entries()); return { pathname: location.pathname, params: params, query, navigate: (path, options) => { navigate(path, { replace: options?.replace, state: options?.state }); }, back: () => window.history.back(), forward: () => window.history.forward() }; } return context; }; // Hook for route parameters export const useRouteParams = () => { const { params } = useRouter(); return params; }; // Hook for query parameters export const useQuery = () => { const { query } = useRouter(); return query; }; // Hook for navigation export const useNavigation = () => { const { navigate, back, forward } = useRouter(); return { navigate, back, forward }; }; //# sourceMappingURL=index.js.map