{"version":3,"file":"AudienceSortModal-CzT35lvV-chunk.js","sources":["../../../src/components/public-site/audience-sort/AudienceSortModal.tsx"],"sourcesContent":["import {\n\tReactNode,\n\tuseCallback,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState\n} from \"react\";\nimport { audienceSortStepNames } from \"./utility/audienceSortStepNames\";\nimport { DDXModal } from \"components/ddx-modal/DDXModal\";\nimport { createPortal } from \"react-dom\";\nimport { SCREEN_WIDTHS } from \"components/utility/constants/screen_widths\";\n\ninterface AudienceSortModalProps {\n\ttheme: string;\n\tcurrentPage: string;\n\tcurrentStep: string;\n\tchildren: ReactNode;\n\tisMobile: boolean;\n\tsetStep: Function;\n\tisModalOpen: boolean;\n\tsetIsModalOpen?: (value: React.SetStateAction) => void;\n\tisWide: boolean;\n\tmodalJustOpened?: boolean;\n\tclassName: string;\n\tpreventHandleClickOutside?: boolean;\n}\n\nconst AudienceSortModal: React.FC = ({\n\ttheme,\n\tcurrentPage,\n\tchildren,\n\tcurrentStep,\n\tisMobile,\n\tsetStep,\n\tisModalOpen,\n\tsetIsModalOpen,\n\tisWide = true,\n\tmodalJustOpened = true,\n\tclassName,\n\tpreventHandleClickOutside = false\n}) => {\n\tconst audienceSortRef = useRef(null);\n\tconst [cameFromWide, setCameFromWide] = useState(false);\n\n\tconst handleClickOutsideModal = useCallback(() => {\n\t\tif (preventHandleClickOutside) return;\n\t\tsetStep(audienceSortStepNames.initialStep);\n\t\tsetIsModalOpen?.(false);\n\t}, [preventHandleClickOutside, setIsModalOpen, setStep]);\n\n\tconst pagesWithAnimatedModal: Set = useMemo(() => new Set([\"nav\", \"from-link\"]), []);\n\tconst pagesWhereResizeDoesntCloseModal: Set = useMemo(\n\t\t() => new Set([\"nav\", \"global-splash\"]),\n\t\t[]\n\t);\n\n\tconst wideModalSteps = useMemo(\n\t\t() =>\n\t\t\tnew Set([\n\t\t\t\taudienceSortStepNames.countrySelection,\n\t\t\t\taudienceSortStepNames.financialProfessionalAffirmation\n\t\t\t]),\n\t\t[]\n\t);\n\n\tuseEffect(() => {\n\t\tif (!pagesWithAnimatedModal.has(currentPage)) return;\n\n\t\tconst audienceSortModal = audienceSortRef.current;\n\n\t\tif (audienceSortModal) {\n\t\t\tconst audienceSortContent = audienceSortModal.firstElementChild as HTMLDivElement;\n\t\t\tif (\n\t\t\t\t(audienceSortModal.classList.contains(\"wide\") &&\n\t\t\t\t\twideModalSteps.has(currentStep) &&\n\t\t\t\t\t!cameFromWide) ||\n\t\t\t\taudienceSortModal.classList.contains(\"narrow\")\n\t\t\t) {\n\t\t\t\taudienceSortContent.style.opacity = \"0\";\n\t\t\t\taudienceSortContent.classList.add(\"fade-in-animation\");\n\t\t\t}\n\t\t\tif (audienceSortModal.classList.contains(\"wide\")) {\n\t\t\t\tsetCameFromWide(true);\n\t\t\t} else {\n\t\t\t\tsetCameFromWide(false);\n\t\t\t}\n\t\t}\n\t}, [currentStep, cameFromWide, currentPage, pagesWithAnimatedModal, wideModalSteps]);\n\n\tconst findModalAnimationClassname = () => {\n\t\tif (!pagesWithAnimatedModal.has(currentPage)) return \"\";\n\t\tif (modalJustOpened) return \" initial\";\n\t\tif (isWide) return \" wide\";\n\t\treturn \" narrow\";\n\t};\n\n\tuseEffect(() => {\n\t\tif (isMobile && !pagesWhereResizeDoesntCloseModal.has(currentPage)) {\n\t\t\thandleClickOutsideModal();\n\t\t}\n\t}, [\n\t\tcurrentPage,\n\t\thandleClickOutsideModal,\n\t\tisMobile,\n\t\tpagesWhereResizeDoesntCloseModal,\n\t\tpreventHandleClickOutside\n\t]);\n\n\tuseLayoutEffect(() => {\n\t\tif (!pagesWithAnimatedModal.has(currentPage)) return;\n\n\t\tconst handleResize = () => {\n\t\t\tconst audienceSortModal = audienceSortRef.current;\n\n\t\t\tif (audienceSortModal) {\n\t\t\t\tif (window.innerWidth <= SCREEN_WIDTHS.XS && wideModalSteps.has(currentStep)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taudienceSortModal.style.opacity = \"0\";\n\n\t\t\t\tconst audienceSortContent = audienceSortModal.firstElementChild as HTMLDivElement;\n\t\t\t\tlet newMinHeight: string = \"\";\n\n\t\t\t\taudienceSortModal.style.height = \"auto\";\n\n\t\t\t\tif (currentStep !== audienceSortStepNames.initialStep) {\n\t\t\t\t\taudienceSortModal.style.maxWidth = \"unset\";\n\t\t\t\t\taudienceSortModal.style.width = \"max-content\";\n\t\t\t\t} else {\n\t\t\t\t\taudienceSortModal.style.removeProperty(\"min-width\");\n\t\t\t\t\taudienceSortModal.style.removeProperty(\"width\");\n\t\t\t\t}\n\n\t\t\t\tif (audienceSortContent) {\n\t\t\t\t\tif (\n\t\t\t\t\t\twindow.innerWidth <= SCREEN_WIDTHS.SM &&\n\t\t\t\t\t\tcurrentStep === audienceSortStepNames.countrySelection\n\t\t\t\t\t) {\n\t\t\t\t\t\tnewMinHeight = \"100%\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewMinHeight = audienceSortContent.getBoundingClientRect().height + \"px\";\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\taudienceSortModal.style.removeProperty(\"height\");\n\t\t\t\taudienceSortModal.style.removeProperty(\"width\");\n\t\t\t\taudienceSortModal.style.removeProperty(\"max-width\");\n\t\t\t\taudienceSortModal.style.minHeight = newMinHeight;\n\n\t\t\t\taudienceSortModal.style.opacity = \"1\";\n\t\t\t}\n\n\t\t\treturn;\n\t\t};\n\n\t\thandleResize();\n\t\twindow.addEventListener(\"resize\", handleResize);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"resize\", handleResize);\n\t\t};\n\t}, [children, currentPage, currentStep, isMobile, pagesWithAnimatedModal, wideModalSteps]);\n\n\treturn createPortal(\n\t\t\n\t\t\t\n\t\t\t\t{children}\n\t\t\t\n\t\t,\n\t\tdocument.body\n\t);\n};\n\nexport default AudienceSortModal;\n"],"names":["AudienceSortModal","theme","currentPage","children","currentStep","isMobile","setStep","isModalOpen","setIsModalOpen","isWide","modalJustOpened","className","preventHandleClickOutside","audienceSortRef","useRef","cameFromWide","setCameFromWide","useState","handleClickOutsideModal","useCallback","audienceSortStepNames","pagesWithAnimatedModal","useMemo","pagesWhereResizeDoesntCloseModal","wideModalSteps","useEffect","audienceSortModal","audienceSortContent","findModalAnimationClassname","useLayoutEffect","handleResize","SCREEN_WIDTHS","newMinHeight","createPortal","jsx","DDXModal"],"mappings":"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"}