diff --git a/src/components/about/intro.tsx b/src/components/about/intro.tsx index 15e8976..c3f1d9b 100644 --- a/src/components/about/intro.tsx +++ b/src/components/about/intro.tsx @@ -13,9 +13,7 @@ export default function Intro() { const inView = rect.top < window.innerHeight && rect.bottom > 0; const isReload = performance.getEntriesByType?.("navigation")?.[0]?.type === "reload"; const isSpaNav = !!(window as any).__astroNavigation; - const mobile = window.innerWidth < 1024; - - if (inView && (mobile || isReload || isSpaNav)) { + if (inView && (isReload || isSpaNav)) { setVisible(true); return; } diff --git a/src/components/about/stats-alltime.tsx b/src/components/about/stats-alltime.tsx index 975e6d3..55447b7 100644 --- a/src/components/about/stats-alltime.tsx +++ b/src/components/about/stats-alltime.tsx @@ -29,9 +29,7 @@ const Stats = () => { const inView = rect.top < window.innerHeight && rect.bottom > 0; const isReload = performance.getEntriesByType?.("navigation")?.[0]?.type === "reload"; const isSpaNav = !!(window as any).__astroNavigation; - const mobile = window.innerWidth < 1024; - - if (inView && (mobile || isReload || isSpaNav)) { + if (inView && (isReload || isSpaNav)) { setSkipAnim(true); setIsVisible(true); return; diff --git a/src/components/about/stats-detailed.tsx b/src/components/about/stats-detailed.tsx index e11af72..99359f9 100644 --- a/src/components/about/stats-detailed.tsx +++ b/src/components/about/stats-detailed.tsx @@ -36,9 +36,7 @@ const DetailedStats = () => { const inView = rect.top < window.innerHeight && rect.bottom > 0; const isReload = performance.getEntriesByType?.("navigation")?.[0]?.type === "reload"; const isSpaNav = !!(window as any).__astroNavigation; - const mobile = window.innerWidth < 1024; - - if (inView && (mobile || isReload || isSpaNav)) { + if (inView && (isReload || isSpaNav)) { setSkipAnim(true); setVisible(true); return; diff --git a/src/components/about/timeline.tsx b/src/components/about/timeline.tsx index 501f18f..02d35b4 100644 --- a/src/components/about/timeline.tsx +++ b/src/components/about/timeline.tsx @@ -53,9 +53,7 @@ function TimelineCard({ item, index }: { item: (typeof timelineItems)[number]; i const isReload = performance.getEntriesByType?.("navigation")?.[0]?.type === "reload"; const isSpaNav = !!(window as any).__astroNavigation; - const mobile = window.innerWidth < 1024; - - if (inView && (mobile || isReload || isSpaNav)) { + if (inView && (isReload || isSpaNav)) { setSkip(true); setVisible(true); return; diff --git a/src/components/animate-in.tsx b/src/components/animate-in.tsx index 6daf462..f5fb962 100644 --- a/src/components/animate-in.tsx +++ b/src/components/animate-in.tsx @@ -1,11 +1,6 @@ import { useEffect, useRef, useState } from "react"; import { prefersReducedMotion } from "@/lib/reduced-motion"; -function isMobile(): boolean { - if (typeof window === "undefined") return false; - return window.innerWidth < 1024; -} - interface AnimateInProps { children: React.ReactNode; delay?: number; @@ -32,9 +27,7 @@ export function AnimateIn({ children, delay = 0, threshold = 0.15 }: AnimateInPr const isReload = (performance.getEntriesByType?.("navigation")?.[0] as PerformanceNavigationTiming)?.type === "reload"; const isSpaNav = !!(window as any).__astroNavigation; - // On mobile: skip animation for anything already in view (prevents flicker on navigation) - // On desktop: only skip on reload or SPA nav - if (inView && (isMobile() || isReload || isSpaNav)) { + if (inView && (isReload || isSpaNav)) { setSkip(true); setVisible(true); return;