18 lines
852 B
TypeScript
18 lines
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;
|
|||
|
|
};
|