18 lines
No EOL
852 B
TypeScript
18 lines
No EOL
852 B
TypeScript
import { useEffect, useState } from "react";
|
||
|
||
export const usePageReloadCounter = (): number => {
|
||
const [reloadCount, setReloadCount] = useState<number>(() => {
|
||
// Инициализируем состояние из sessionStorage или начинаем с 0
|
||
const savedCount = sessionStorage.getItem('pageReloadCount');
|
||
return savedCount ? parseInt(savedCount, 10) : 0;
|
||
});
|
||
|
||
useEffect(() => {
|
||
// Увеличиваем счётчик при каждом монтировании компонента
|
||
const newCount = reloadCount + 1;
|
||
setReloadCount(newCount);
|
||
sessionStorage.setItem('pageReloadCount', newCount.toString());
|
||
}, []); // Пустой массив зависимостей означает, что эффект сработает только при монтировании
|
||
|
||
return reloadCount;
|
||
}; |