Files
open-gsio/packages/client/src/hooks/usePageLoaded.ts
2025-06-24 17:32:59 -04:00

27 lines
613 B
TypeScript

import { useEffect, useState } from 'react';
const usePageLoaded = (callback: () => void) => {
const [isLoaded, setIsLoaded] = useState(false);
useEffect(() => {
const handlePageLoad = () => {
setIsLoaded(true);
callback();
};
if (document.readyState === 'complete') {
// Page is already fully loaded
handlePageLoad();
} else {
// Wait for the page to load
window.addEventListener('load', handlePageLoad);
}
return () => window.removeEventListener('load', handlePageLoad);
}, [callback]);
return isLoaded;
};
export default usePageLoaded;