@wizecorp/stratusjs
Version:
Stratus React Framework
42 lines • 1.38 kB
JavaScript
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