{"version":3,"file":"AramcoWorld_HomePageHeader-TpOPewZT.js","sources":["../../../../../src/project/AramcoWorld/Header/HomePageHeader/useScrollTriggers.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\r\n\r\n// PX values used for homepage header and expanded homepage nav animations\r\nexport const firstTrigger = 1;\r\nexport const secondTrigger = 300;\r\nexport const thirdTrigger = 500; // This triggers default scroll -> hide animation on the header\r\n\r\nconst useScrollTriggers = (firstThreshold: number, secondThreshold: number, thirdThreshold: number | undefined, alwaysShow: boolean) => {\r\n\tconst [scrollingUp, setScrollingUp] = useState(true); // Assume initial scrolling direction is up\r\n\tconst [hasVisitedHome, setHasVisitedHome] = useState(true);\r\n\tconst [triggerFirstAnim, setTriggerFirstAnim] = useState(false);\r\n\tconst [triggerSecondAnim, setTriggerSecondAnim] = useState(false);\r\n\tconst [triggerThirdAnim, setTriggerThirdAnim] = useState(false);\r\n\r\n\tconst getSessionItem = (key: string) => {\r\n\t\treturn sessionStorage.getItem(key);\r\n\t};\r\n\tconst setSessionItem = (key: string, value: string) => {\r\n\t\tsessionStorage.setItem(key, value);\r\n\t};\r\n\tuseEffect(() => {\r\n\t\tlet visited;\r\n\t\tif (alwaysShow) {\r\n\t\t\tvisited = false;\r\n\t\t} else {\r\n\t\t\tvisited = getSessionItem('hasVisitedHome');\r\n\t\t}\r\n\t\tconst hasVisited = !!visited;\r\n\r\n\t\tsetHasVisitedHome(hasVisited);\r\n\t\tif (hasVisited) {\r\n\t\t\tsetTriggerFirstAnim(hasVisited);\r\n\t\t\tsetTriggerSecondAnim(hasVisited);\r\n\t\t\tsetTriggerThirdAnim(hasVisited);\r\n\t\t}\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tlet lastScrollY = window.scrollY;\r\n\t\tlet ticking = false;\r\n\t\tconst updateScrollDir = () => {\r\n\t\t\tconst scrollY = window.scrollY;\r\n\r\n\t\t\tif (Math.abs(scrollY - lastScrollY) < firstThreshold) {\r\n\t\t\t\tticking = false;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tsetScrollingUp(scrollY <= lastScrollY);\r\n\t\t\tlastScrollY = scrollY > 0 ? scrollY : 0;\r\n\t\t\tticking = false;\r\n\t\t\tif (scrollY > firstThreshold && !triggerFirstAnim) {\r\n\t\t\t\tsetTriggerFirstAnim(true);\r\n\t\t\t\tsetSessionItem('hasVisitedHome', 'true');\r\n\t\t\t}\r\n\r\n\t\t\tif (scrollY > secondThreshold && !triggerSecondAnim) {\r\n\t\t\t\tsetTriggerSecondAnim(true);\r\n\t\t\t}\r\n\r\n\t\t\tif (thirdThreshold && scrollY > thirdThreshold && !triggerThirdAnim) {\r\n\t\t\t\tsetTriggerThirdAnim(true);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tconst onScroll = () => {\r\n\t\t\tif (!ticking) {\r\n\t\t\t\twindow.requestAnimationFrame(updateScrollDir);\r\n\t\t\t\tticking = true;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\twindow.addEventListener(\"scroll\", onScroll);\r\n\r\n\t\treturn () => window.removeEventListener(\"scroll\", onScroll);\r\n\t}, [firstThreshold, secondThreshold, thirdThreshold, triggerFirstAnim, triggerSecondAnim, triggerThirdAnim]);\r\n\r\n\treturn { scrollingUp, triggerFirstAnim, triggerSecondAnim, triggerThirdAnim, hasVisitedHome };\r\n};\r\n\r\nexport default useScrollTriggers;\r\n"],"names":["firstTrigger","secondTrigger","thirdTrigger","useScrollTriggers","firstThreshold","secondThreshold","thirdThreshold","alwaysShow","scrollingUp","setScrollingUp","useState","hasVisitedHome","setHasVisitedHome","triggerFirstAnim","setTriggerFirstAnim","triggerSecondAnim","setTriggerSecondAnim","triggerThirdAnim","setTriggerThirdAnim","getSessionItem","key","setSessionItem","value","useEffect","visited","hasVisited","lastScrollY","ticking","updateScrollDir","scrollY","onScroll"],"mappings":"wCAGO,MAAMA,EAAe,EACfC,EAAgB,IAChBC,EAAe,IAEtBC,EAAoB,CAACC,EAAwBC,EAAyBC,EAAoCC,IAAwB,CACvI,KAAM,CAACC,EAAaC,CAAc,EAAIC,WAAS,EAAI,EAC7C,CAACC,EAAgBC,CAAiB,EAAIF,WAAS,EAAI,EACnD,CAACG,EAAkBC,CAAmB,EAAIJ,WAAS,EAAK,EACxD,CAACK,EAAmBC,CAAoB,EAAIN,WAAS,EAAK,EAC1D,CAACO,EAAkBC,CAAmB,EAAIR,WAAS,EAAK,EAExDS,EAAkBC,GAChB,eAAe,QAAQA,CAAG,EAE5BC,EAAiB,CAACD,EAAaE,IAAkB,CACvC,eAAA,QAAQF,EAAKE,CAAK,CAAA,EAElCC,OAAAA,EAAAA,UAAU,IAAM,CACX,IAAAC,EACAjB,EACOiB,EAAA,GAEVA,EAAUL,EAAe,gBAAgB,EAEpC,MAAAM,EAAa,CAAC,CAACD,EAErBZ,EAAkBa,CAAU,EACxBA,IACHX,EAAoBW,CAAU,EAC9BT,EAAqBS,CAAU,EAC/BP,EAAoBO,CAAU,EAEhC,EAAG,CAAE,CAAA,EAELF,EAAAA,UAAU,IAAM,CACf,IAAIG,EAAc,OAAO,QACrBC,EAAU,GACd,MAAMC,EAAkB,IAAM,CAC7B,MAAMC,EAAU,OAAO,QAEvB,GAAI,KAAK,IAAIA,EAAUH,CAAW,EAAItB,EAAgB,CAC3CuB,EAAA,GACV,MACD,CAEAlB,EAAeoB,GAAWH,CAAW,EACvBA,EAAAG,EAAU,EAAIA,EAAU,EAC5BF,EAAA,GACNE,EAAUzB,GAAkB,CAACS,IAChCC,EAAoB,EAAI,EACxBO,EAAe,iBAAkB,MAAM,GAGpCQ,EAAUxB,GAAmB,CAACU,GACjCC,EAAqB,EAAI,EAGJa,EAAUvB,GAAkB,CAACW,GAClDC,EAAoB,EAAI,CACzB,EAGKY,EAAW,IAAM,CACjBH,IACJ,OAAO,sBAAsBC,CAAe,EAClCD,EAAA,GACX,EAGM,cAAA,iBAAiB,SAAUG,CAAQ,EAEnC,IAAM,OAAO,oBAAoB,SAAUA,CAAQ,CAAA,EACxD,CAAC1B,EAAgBC,EAAiBC,EAAgBO,EAAkBE,EAAmBE,CAAgB,CAAC,EAEpG,CAAE,YAAAT,EAAa,iBAAAK,EAAkB,kBAAAE,EAAmB,iBAAAE,EAAkB,eAAAN,CAAe,CAC7F"}