{"version":3,"sources":["webpack:///./src/components/ImageSlider/ImageSlider.jsx","webpack:///./src/common/useMatchMedia.js","webpack:///./src/components/HomePage/HomePage.jsx","webpack:///./src/pages/index.jsx","webpack:///./src/components/ImageBlock/ImageBlock.jsx"],"names":["propTypes","imageBlocks","arrayOf","shape","imageBlockFields","isRequired","getId","R","ImageSlider","props","elementsRef","useRef","isPlaying","setPlaying","useState","active","setActiveIndex","prev","value","current","setCurrent","setPrev","usePrevious","blocksInRenderOrder","block","gotoNext","useCallback","nextIndex","i","length","useEffect","intervalId","setInterval","clearInterval","window","requestAnimationFrame","el","id","classList","toggle","isDesktop","media","matches","setMatches","mediaQueryList","matchMedia","handleMatchChange","event","addListener","removeListener","useMatchMedia","className","map","ref","fluid","fluidImage","alt","title","type","onClick","e","p","pauseSvg","playSvg","imageBlock","isActive","cx","style","animationDuration","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","x","y","points","HomePage","contentfulData","useStaticQuery","query","contentRef","data","bottomBanner","extractBanner","campaignGoalsSectionTitle","extractRichText","campaignGoalsSectionSubtitle","campaignGoalsLink","extractLink","campaignGoalsImageBlocks","extractImageBlocks","campaignPillarsImageBlocks","campaignPillarsSectionTitle","campaignPillarsLink","campaignPillarsSectionSubtitle","topHeroBanner","AOS","init","offset","duration","once","Page","Banner","hero","Search","to","d","scrollToElement","Section","aos","theme","subtitle","link","ImageBlock","isReverse","smallImages","Container100","data-aos","GatsbyHomePage","bool","string","object","node","text","tags","array","buttonModifier","otherProps","left","data-aos-delay","right"],"mappings":"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","file":"component---src-pages-index-jsx-60743c82641f45ac80c7.js","sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\r\nimport * as R from \"ramda\";\r\nimport cx from \"classnames\";\r\nimport { arrayOf, shape } from \"prop-types\";\r\nimport { imageBlockFields } from \"../../common/contentful-extract.jsx\";\r\nimport useMatchMedia from \"../../common/useMatchMedia.js\";\r\n\r\nimport \"./image-slider.scss\";\r\n\r\nimport BackgroundImage from \"gatsby-background-image\";\r\n\r\nconst propTypes = {\r\n imageBlocks: arrayOf(shape(imageBlockFields)).isRequired,\r\n};\r\n\r\nconst getId = R.prop(\"title\");\r\n\r\nconst INTERVAL = 10000; // ms\r\n\r\nconst ImageSlider = (props) => {\r\n const { imageBlocks } = props;\r\n\r\n const elementsRef = useRef({});\r\n\r\n const [isPlaying, setPlaying] = useState(true);\r\n\r\n const [active, setActiveIndex] = useState(getId(imageBlocks[0]));\r\n const prev = usePrevious(active);\r\n\r\n // put the previous image last (on top) so we can fade it out\r\n const blocksInRenderOrder = R.sort(\r\n R.ascend((block) => {\r\n return R.equals(getId(block), prev) ? 2 : 1;\r\n }),\r\n )(imageBlocks);\r\n\r\n const gotoNext = useCallback(() => {\r\n const nextIndex = R.compose(\r\n (i) => getId(imageBlocks[i]), // get id from imageblock\r\n (i) => (i + 1) % imageBlocks.length, // next with wrap\r\n R.findIndex((block) => getId(block) === active),\r\n )(imageBlocks);\r\n\r\n setActiveIndex(nextIndex);\r\n }, [active, imageBlocks]);\r\n\r\n useEffect(() => {\r\n if (isPlaying) {\r\n const intervalId = setInterval(gotoNext, INTERVAL);\r\n\r\n return () => {\r\n clearInterval(intervalId);\r\n };\r\n }\r\n }, [gotoNext, isPlaying]);\r\n\r\n // we have to update faded-out class _after_ the reorder render\r\n // (instead of just rendering the faded-out class with cx)\r\n useEffect(() => {\r\n window.requestAnimationFrame(() => {\r\n R.mapObjIndexed((el, id) => {\r\n el.classList.toggle(\r\n \"image-slider__image-holder--faded-out\",\r\n active !== id,\r\n );\r\n })(elementsRef.current);\r\n });\r\n }, [active, blocksInRenderOrder]);\r\n\r\n // stop playback on mobile\r\n const isDesktop = useMatchMedia(\"(min-width: 746px)\"); // should match $bp-medium-min\r\n useEffect(() => {\r\n setPlaying(isDesktop);\r\n }, [isDesktop]);\r\n\r\n return (\r\n
{tags}
}\r\n