fix: safari loading issue

This commit is contained in:
jwinterm
2026-01-22 11:18:54 -05:00
parent 6f8c2ba325
commit 34eb357ee0
@@ -25,15 +25,22 @@ export function DynamicBackground({ nebulaPosition }: DynamicBackgroundProps) {
useEffect(() => { useEffect(() => {
setMounted(true); setMounted(true);
// Delay nebula render to prioritize main content (LCP) // Delay nebula render to prioritize main content (LCP)
const timer = requestIdleCallback // Use typeof check for Safari compatibility (requestIdleCallback not supported)
? requestIdleCallback(() => setShowNebula(true)) let idleHandle: number | undefined;
: setTimeout(() => setShowNebula(true), 100); let timeoutHandle: number | undefined;
if (typeof window !== 'undefined' && 'requestIdleCallback' in window) {
idleHandle = window.requestIdleCallback(() => setShowNebula(true));
} else {
timeoutHandle = window.setTimeout(() => setShowNebula(true), 100);
}
return () => { return () => {
if (typeof timer === 'number') { if (timeoutHandle !== undefined) {
clearTimeout(timer); window.clearTimeout(timeoutHandle);
} else if (cancelIdleCallback) { }
cancelIdleCallback(timer as unknown as number); if (idleHandle !== undefined && 'cancelIdleCallback' in window) {
window.cancelIdleCallback(idleHandle);
} }
}; };
}, []); }, []);