alinea
Version:
Headless git-based CMS
25 lines (23 loc) • 623 B
JavaScript
import "../../chunks/chunk-NZLE2WMY.js";
// src/ui/hook/UseHash.ts
import { useCallback, useEffect, useState } from "react";
function useHash() {
const [hash, setHash] = useState(() => window.location.hash);
useEffect(() => {
function hashChange() {
setHash(window.location.hash);
}
window.addEventListener("hashchange", hashChange);
return () => window.removeEventListener("hashchange", hashChange);
}, []);
const _setHash = useCallback(
(newHash) => {
if (newHash !== hash) window.location.hash = newHash;
},
[hash]
);
return [hash, _setHash];
}
export {
useHash
};