Fix unexpected history back navigations (#1424)

This commit is contained in:
Alexander Zinchuk 2021-09-03 19:07:53 +03:00
parent b5542462ac
commit 4082143e10

View File

@ -124,18 +124,20 @@ export default function useHistoryBack(
} else { } else {
const prev = prevHashes || []; const prev = prevHashes || [];
if (prev.length < hashes.length) { if (prev.length < hashes.length) {
const index = ++historyState.currentIndex; setTimeout(() => {
historyState.currentIndexes.push(index); const index = ++historyState.currentIndex;
historyState.currentIndexes.push(index);
window.history.pushState({ window.history.pushState({
index, index,
state: currentState, state: currentState,
}, '', `#${hashes[hashes.length - 1]}`); }, '', `#${hashes[hashes.length - 1]}`);
indexHashRef.current.push({ indexHashRef.current.push({
index, index,
hash: hashes[hashes.length - 1], hash: hashes[hashes.length - 1],
}); });
}, 0);
} else { } else {
const delta = prev.length - hashes.length; const delta = prev.length - hashes.length;
if (isHashChangedFromEvent.current) { if (isHashChangedFromEvent.current) {