Files
Space-Game/js/router.js
2026-05-25 13:00:20 -04:00

26 lines
616 B
JavaScript

window.GDD = window.GDD || {};
const { useState, useEffect, useCallback } = React;
/* Hash-based router */
window.GDD.useRouter = function() {
const [page, setPage] = useState(getPage());
function getPage() {
const hash = window.location.hash.slice(1) || 'overview';
return hash;
}
useEffect(() => {
const handler = () => setPage(getPage());
window.addEventListener('hashchange', handler);
return () => window.removeEventListener('hashchange', handler);
}, []);
const navigate = useCallback((path) => {
window.location.hash = path;
}, []);
return { page, navigate };
};