{"version":3,"file":"web-64b4eafd557c584530b7.js","mappings":"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","sources":["webpack:///./app/javascript/web/utils/sendError.js","webpack:///./app/javascript/web/reducers/dialerReducer/machineDebugger.js","webpack:///./app/javascript/web/reducers/dialerReducer/dialerMachine.js","webpack:///./app/javascript/web/reducers/dialerReducer/index.js","webpack:///./app/javascript/web/reducers/oneCampaign/index.js","webpack:///./app/javascript/web/constants/contactRegistrationStatusTypes.js","webpack:///./app/javascript/web/reducers/voterRegistration/index.js","webpack:///./app/javascript/web/reducers/index.js","webpack:///./app/javascript/web/services/api/routes.js","webpack:///./app/javascript/web/services/api/activities.js","webpack:///./app/javascript/web/services/api/auth.js","webpack:///./app/javascript/web/services/api/campaigns.js","webpack:///./app/javascript/web/services/api/campaignsAndTopics.js","webpack:///./app/javascript/web/services/api/optInForms.js","webpack:///./app/javascript/web/services/api/fanOut.js","webpack:///./app/javascript/web/services/api/search.js","webpack:///./app/javascript/web/services/api/teams.js","webpack:///./app/javascript/web/services/api/user.js","webpack:///./app/javascript/web/services/api/user-report.js","webpack:///./app/javascript/web/services/analytics.js","webpack:///./app/javascript/web/services/api/users.js","webpack:///./app/javascript/web/utils/context.js","webpack:///./app/javascript/web/components/common/CampaignRightSidebar.js","webpack:///./app/javascript/web/components/ActivityDetail/ActivityCompletedModal.js","webpack:///./app/javascript/web/components/ActivityDetail/FormActivity.js","webpack:///./app/javascript/web/components/ActivityDetail/ShareActivity.js","webpack:///./app/javascript/web/hooks/useWindowVisibility.js","webpack:///./app/javascript/web/components/ActivityDetail/WebActivity.js","webpack:///./app/javascript/web/components/Activity/index.js","webpack:///./app/javascript/web/hooks/useDocumentTitle.js","webpack:///./app/javascript/web/hooks/useMedia.js","webpack:///./app/javascript/web/hooks/useComparePrevious.js","webpack:///./app/javascript/web/hooks/usePrevious.js","webpack:///./app/javascript/web/components/ModalManager.js","webpack:///./app/javascript/web/hooks/useModal.js","webpack:///./app/javascript/web/hooks/useOneCampaign.js","webpack:///./app/javascript/web/components/common/ImpactiveModal.js","webpack:///./app/javascript/web/components/common/Link.js","webpack:///./app/javascript/web/components/common/CampaignAndCharityModal.js","webpack:///./app/javascript/web/components/common/MaxWidthContainer.js","webpack:///./app/javascript/web/components/common/NoCampaign.js","webpack:///./app/javascript/web/components/common/OneCampaignLoading.js","webpack:///./app/javascript/web/utils/errorHandler.js","webpack:///./app/javascript/web/components/AppContainer/Sidebar/JoinCampaignModal.js","webpack:///./app/javascript/web/components/Logo/Wordmark.js","webpack:///./app/javascript/web/components/Logo/IconDark.js","webpack:///./app/javascript/web/components/Logo/index.js","webpack:///./app/javascript/web/components/AppContainer/Sidebar/CampaignSelect.js","webpack:///./app/javascript/web/components/AppContainer/Sidebar/index.js","webpack:///./app/javascript/web/components/AppContainer/index.js","webpack:///./app/javascript/web/components/AppHeader/HamburgerMenu.js","webpack:///./app/javascript/web/components/AppHeader/index.js","webpack:///./app/javascript/web/components/common/SwitchCampaignAlert.js","webpack:///./app/javascript/web/components/ActivityDetail/ActivityDetailCore.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/Error.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/Input/ErrorText.js","webpack:///./app/javascript/web/components/common/shared/PhoneNumberInput.js","webpack:///./app/javascript/web/components/common/shared/FormInput.js","webpack:///./app/javascript/web/components/common/OnboardingModal/UserDetails.js","webpack:///./app/javascript/web/components/common/OnboardingModal/Instructions.js","webpack:///./app/javascript/web/components/common/CustomFieldsList.js","webpack:///./app/javascript/web/components/common/OnboardingModal/CustomFields.js","webpack:///./app/javascript/web/components/common/OnboardingModal/index.js","webpack:///./app/javascript/web/components/ActivityDetail/index.js","webpack:///./app/javascript/web/services/google/auth.js","webpack:///./app/javascript/web/components/Auth/Components/AuthMenu.js","webpack:///./app/javascript/web/components/Auth/Components/ImpactiveLogo.js","webpack:///./app/javascript/web/components/Auth/Components/ImpactiveOrCampaignLogo.js","webpack:///./app/javascript/web/components/Auth/Components/PoweredByImpactive.js","webpack:///./app/javascript/web/components/Auth/LanguageSelect.js","webpack:///./app/javascript/web/components/Auth/AuthPage.js","webpack:///./app/javascript/web/components/Auth/Components/EmailAuth.js","webpack:///./app/javascript/web/components/Auth/EmailAuthPage.js","webpack:///./app/javascript/web/components/Auth/Shared.js","webpack:///./app/javascript/web/components/Auth/PasswordReset/Confirmation.js","webpack:///./app/javascript/web/components/Auth/PasswordReset/PasswordEntry.js","webpack:///./app/javascript/web/components/Auth/PasswordReset/index.js","webpack:///./app/javascript/web/components/Auth/PasswordlessConfirmPage.js","webpack:///./app/javascript/web/components/Auth/Components/PasswordlessAuth.js","webpack:///./app/javascript/web/components/Auth/PasswordlessPage.js","webpack:///./app/javascript/web/components/Auth/PasswordlessTokenLoginPage.js","webpack:///./app/javascript/web/components/common/shared/FormField.js","webpack:///./app/javascript/web/components/Auth/AdminSignup/AdminAuthMenu.js","webpack:///./app/javascript/web/components/Auth/AdminSignup/Components/LayoutWithCover.js","webpack:///./app/javascript/web/components/Auth/AdminSignup/Components/ImpactiveLogo.js","webpack:///./app/javascript/web/components/Auth/AdminSignup/pages/AdminPasswordless.js","webpack:///./app/javascript/web/components/Auth/AdminSignup/pages/AdminLinkSent.js","webpack:///./app/javascript/web/components/Auth/JoinCampaign.js","webpack:///./app/javascript/web/components/Auth/Components/CompleteAuthForm.js","webpack:///./app/javascript/web/components/Auth/CompleteAuth.js","webpack:///./app/javascript/web/components/Auth/index.js","webpack:///./app/javascript/web/components/Routes/AuthenticatedRoute.js","webpack:///./app/javascript/web/components/AuthProvider.js","webpack:///./app/javascript/web/components/common/BackButton.js","webpack:///./app/javascript/web/components/common/FilterButton.js","webpack:///./app/javascript/web/components/common/SEO.js","webpack:///./app/javascript/web/components/common/Text.js","webpack:///./app/javascript/web/components/Activity/ActivityButton.js","webpack:///./app/javascript/web/components/Activity/utils.js","webpack:///./app/javascript/web/components/Activity/sharedStyledComponents.js","webpack:///./app/javascript/web/constants/activityTypes.js","webpack:///./app/javascript/web/components/Activity/ActivityPreview.js","webpack:///./app/javascript/web/components/Activity/ActivityPreviewModal.js","webpack:///./app/javascript/web/data/utils/types.js","webpack:///./app/javascript/web/components/common/ZipProvider.js","webpack:///./app/javascript/web/components/common/shared/Select.js","webpack:///./app/javascript/web/components/common/ActivityFilters.js","webpack:///./app/javascript/web/components/common/Title.js","webpack:///./app/javascript/web/components/CampaignDetail/components/ActivityList.js","webpack:///./app/javascript/web/components/CampaignDetail/components/CampaignHeader.js","webpack:///./app/javascript/web/components/common/Icon/components/Google.js","webpack:///./app/javascript/web/components/common/Icon/components/Play.js","webpack:///./app/javascript/web/components/common/Icon/components/Upload.js","webpack:///./app/javascript/web/components/common/Icon/components/Refresh.js","webpack:///./app/javascript/web/components/common/Icon/components/Open.js","webpack:///./app/javascript/web/components/common/Icon/components/UserFilled.js","webpack:///./app/javascript/web/components/common/Icon/components/Facebook.js","webpack:///./app/javascript/web/components/common/Icon/components/LinkedIn.js","webpack:///./app/javascript/web/components/common/Icon/components/Copy.js","webpack:///./app/javascript/web/components/common/Icon/components/Share.js","webpack:///./app/javascript/web/components/common/Icon/index.js","webpack:///./app/javascript/web/components/common/MediaPreview.js","webpack:///./app/javascript/web/components/CampaignDetail/components/CampaignAbout.js","webpack:///./app/javascript/web/components/CampaignLeaderboard/Metric.js","webpack:///./app/javascript/web/components/CampaignLeaderboard/Team.js","webpack:///./app/javascript/web/components/CampaignDetail/components/TopTeams.js","webpack:///./app/javascript/web/components/CampaignDetail/components/CampaignInfo.js","webpack:///./app/javascript/web/components/CampaignDetail/components/CampaignDetails.js","webpack:///./app/javascript/web/components/common/AboutUsSection/components/TwitchEmbed.js","webpack:///./app/javascript/web/components/common/AboutUsSection/components/YoutubeEmbed.js","webpack:///./app/javascript/web/components/common/AboutUsSection/index.js","webpack:///./app/javascript/web/components/common/JoinButton.js","webpack:///./app/javascript/web/components/CampaignDetail/PublicCampaignDetails/components/CampaignHero/components/CampaignImage.js","webpack:///./app/javascript/web/components/CampaignDetail/PublicCampaignDetails/components/CampaignHero/index.js","webpack:///./app/javascript/web/components/CampaignDetail/PublicCampaignDetails/components/CampaignActionCard/components/CampaignActionCTA.js","webpack:///./app/javascript/web/components/CampaignDetail/PublicCampaignDetails/components/CampaignActionCard/components/CampaignActionLink.js","webpack:///./app/javascript/web/components/CampaignDetail/PublicCampaignDetails/components/CampaignActionCard/index.js","webpack:///./app/javascript/web/components/CampaignDetail/PublicCampaignDetails/components/CampaignActions/index.js","webpack:///./app/javascript/web/components/CampaignDetail/PublicCampaignDetails/components/CampaignTakeAction/index.js","webpack:///./app/javascript/web/components/CampaignDetail/PublicCampaignDetails/index.js","webpack:///./app/javascript/web/components/CampaignDetail/index.js","webpack:///./app/javascript/web/components/CampaignLeaderboard/TableSection.js","webpack:///./app/javascript/web/components/CampaignLeaderboard/index.js","webpack:///./app/javascript/web/hooks/useQuery.js","webpack:///./app/javascript/web/data/states.js","webpack:///./app/javascript/web/components/Note.js","webpack:///./app/javascript/web/components/templates/VoterRegistrationTemplate/styles.js","webpack:///./app/javascript/web/components/templates/VoterRegistrationTemplate/index.js","webpack:///./app/javascript/web/components/CheckRegistration/styles.js","webpack:///./app/javascript/web/components/CheckRegistration/index.js","webpack:///./app/javascript/web/components/ConfirmAddress/AddressInput.js","webpack:///./app/javascript/web/components/ConfirmAddress/styles.js","webpack:///./app/javascript/web/components/ConfirmAddress/index.js","webpack:///./app/javascript/web/components/ContactSync/components/StepButtons.js","webpack:///./app/javascript/web/components/ContactSync/components/ContactApproval.js","webpack:///./app/javascript/web/components/ContactSync/components/SuggestionMessage.js","webpack:///./app/javascript/web/components/ContactSync/components/GoogleAuthButton.js","webpack:///./app/javascript/web/components/ContactSync/components/Contact.js","webpack:///./app/javascript/web/components/ContactSync/components/ContactList.js","webpack:///./app/javascript/web/components/ContactSync/components/ListTitle.js","webpack:///./app/javascript/web/components/ContactSync/components/Loading.js","webpack:///./app/javascript/web/components/ContactSync/components/SelectAll.js","webpack:///./app/javascript/web/services/google/contacts.js","webpack:///./app/javascript/web/components/ContactSync/components/useGoogleContacts.js","webpack:///./app/javascript/web/components/ContactSync/components/useUserLocked.js","webpack:///./app/javascript/web/components/ContactSync/components/GoogleContacts.js","webpack:///./app/javascript/web/components/ContactSync/components/ImportSuccess.js","webpack:///./app/javascript/web/components/ContactSync/components/SyncWrapper.js","webpack:///./app/javascript/web/components/ContactSync/index.js","webpack:///./app/javascript/web/components/ContactSync/components/ContactSyncInternal.js","webpack:///./app/javascript/web/components/ContactSync/components/SyncContactsModal.js","webpack:///./app/javascript/web/components/IdVotersActivity/IdVotersForm.js","webpack:///./app/javascript/web/components/IdVotersActivity/IdVotersListItem.js","webpack:///./app/javascript/web/components/IdVotersActivity/IdVotersList.js","webpack:///./app/javascript/web/components/IdVotersActivity/IdVotersModal.js","webpack:///./app/javascript/web/utils/getVoterInfo.js","webpack:///./app/javascript/web/components/IdVotersActivity/VoterMatchCore.js","webpack:///./app/javascript/web/components/IdVotersActivity/VoterMatchModal.js","webpack:///./app/javascript/web/components/Contacts/ContactListItem.js","webpack:///./app/javascript/web/components/Contacts/Filters.js","webpack:///./app/javascript/web/components/Contacts/index.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallStatus/components/Contact/Contact.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallStatus/components/StatusBar/StatusBar.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallStatus/components/TextWithIcon/TextWithIcon.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallStatus/components/CallEnded/CallEnded.js","webpack:///./app/javascript/web/components/DialerActivity/components/TextStyles/index.js","webpack:///./app/javascript/web/components/DotLoader/index.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallStatus/components/StatusBarButton/StatusBarButton.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/useHangUp.js","webpack:///./app/javascript/web/hooks/useIsMounted.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallStatus/components/HangUpButton/HangUpButton.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallStatus/components/ConnectingVoter/ConnectingVoter.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallStatus/components/PhoneBankEnded/PhoneBankEnded.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallStatus/components/PhoneBankNotStarted/PhoneBankNotStarted.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallStatus/components/PhoneBankPaused/index.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallStatus/components/SessionEnded/SessionEnded.js","webpack:///./app/javascript/web/components/DialerActivity/components/Button/Button.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallStatus/components/VolunteerIdle/Elapsed.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallStatus/components/VolunteerIdle/useQueueCall.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallStatus/components/VolunteerIdle/VolunteerIdle.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/TagsAndCustomFields/components/CustomFieldList/RadioGroup.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/TagsAndCustomFields/components/CustomFieldList/index.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/TagsAndCustomFields/components/TagsList/index.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/TagsAndCustomFields/useReportApi.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/TagsAndCustomFields/TagsAndCustomFields.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallStatus/components/VoterConnected/VoterConnected.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallStatus/components/PatchThroughCall/PatchThroughCall.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallStatus/components/PatchThroughCall/index.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallStatus/CallStatus.js","webpack:///./app/javascript/web/components/DialerActivity/components/Header/BackLink.js","webpack:///./app/javascript/web/components/DialerActivity/components/Header/Header.js","webpack:///./app/javascript/web/components/DialerActivity/components/ScriptBlock/AnswerItem.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallOutcome/useCallOutcomeQuestions.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/CallOutcome/CallOutcome.js","webpack:///./app/javascript/web/components/DialerActivity/components/HelpMessage/HelpMessage.js","webpack:///./app/javascript/web/components/DialerActivity/icons/Connect.js","webpack:///./app/javascript/web/components/DialerActivity/icons/PhoneNumber.js","webpack:///./app/javascript/web/components/DialerActivity/icons/Phone.js","webpack:///./app/javascript/web/components/DialerActivity/components/Instructions/InstructionItem.js","webpack:///./app/javascript/web/components/DialerActivity/components/Instructions/Instructions.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/InteractiveScript/components/BackButton/BackButton.js","webpack:///./app/javascript/web/components/DialerActivity/icons/PhoneSecondary.js","webpack:///./app/javascript/web/components/DialerActivity/components/ScriptBlock/AnswerBlock.js","webpack:///./app/javascript/web/components/DialerActivity/useInterpolation.js","webpack:///./app/javascript/web/components/DialerActivity/components/ScriptBlock/ScriptBlock.js","webpack:///./app/javascript/web/components/DialerActivity/usePatchThrough.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/InteractiveScript/components/PatchThroughInfo/TerminateModal.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/InteractiveScript/components/PatchThroughInfo/index.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/InteractiveScript/InteractiveScript.js","webpack:///./app/javascript/web/components/DialerActivity/components/Tabs/Tabs.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/InCallTabs/InCallTabs.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/InfoBox/InfoBox.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/SessionEnded/SessionEnded.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/SessionStats/PartyIcon.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/SessionStats/SessionStats.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/ViewResponses/Question.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/ViewResponses/MessageBox.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/ViewResponses/ViewResponses.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/SurveyPatchThroughSuccess/SurveyPatchThroughSuccess.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/MainContent/useActivityScript.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/MainContent/useAnswers.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/MainContent/MainContent.js","webpack:///./app/javascript/web/components/DialerActivity/components/PageLayout/PageLayout.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/ReceiveCall/components/Modal/Modal.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/ReceiveCall/components/Progress/Progress.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/ReceiveCall/components/BackButton/BackButton.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/ReceiveCall/components/NextButton/NextButton.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/ReceiveCall/components/Page/index.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/ReceiveCall/pages/GrabPhone/GrabPhone.js","webpack:///./app/javascript/web/components/DotsTypingAnimation.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/ReceiveCall/pages/Dialing/Dialing.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/ReceiveCall/pages/EnterPhoneNumber/PhoneInput.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/ReceiveCall/pages/EnterPhoneNumber/EnterPhoneNumber.js","webpack:///./app/javascript/web/components/DialerActivity/icons/Success.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/ReceiveCall/pages/Success/Success.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/ReceiveCall/ReceiveCall.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/components/VolunteerDisconnected/VolunteerDisconnected.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/useExitActivity.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/usePusher.js","webpack:///./app/javascript/web/components/DialerActivity/pages/InCall/InCall.js","webpack:///./app/javascript/web/components/DialerActivity/pages/LandingPage/QueueCallsSelection/SelectionItem.js","webpack:///./app/javascript/web/components/DialerActivity/pages/LandingPage/QueueCallsSelection/QueueCallsSelection.js","webpack:///./app/javascript/web/components/DialerActivity/pages/LandingPage/LandingPage.js","webpack:///./app/javascript/web/components/Container.js","webpack:///./app/javascript/web/components/404/NotFound.js","webpack:///./app/javascript/web/components/DialerActivity/pages/PreviewScript/components/TextStyles/index.js","webpack:///./app/javascript/web/components/DialerActivity/pages/PreviewScript/components/ReadyDialog/ReadyDialog.js","webpack:///./app/javascript/web/components/DialerActivity/useCanQueueCalls.js","webpack:///./app/javascript/web/components/DialerActivity/pages/PreviewScript/PreviewScript.js","webpack:///./app/javascript/web/components/DialerActivity/pages/QueueCalls/useBatch.js","webpack:///./app/javascript/web/components/DialerActivity/pages/QueueCalls/useQueueCalls.js","webpack:///./app/javascript/web/components/DialerActivity/pages/QueueCalls/QueueCalls.js","webpack:///./app/javascript/web/components/DialerActivity/components/ScrollToTop/ScrollToTop.js","webpack:///./app/javascript/web/components/DialerActivity/useFetchActivity.js","webpack:///./app/javascript/web/components/DialerActivity/DialerActivity.js","webpack:///./app/javascript/web/components/FrontLine/CampaignData.js","webpack:///./app/javascript/web/components/common/shared/Carousel.js","webpack:///./app/javascript/web/components/Inbox/hooks/useElementsPerSlide.js","webpack:///./app/javascript/web/components/Activity/NavArrows.js","webpack:///./app/javascript/web/components/Activity/PinnedActivityCarousel.js","webpack:///./app/javascript/web/components/Activity/RecentlyParticipatedActionsCarousel.js","webpack:///./app/javascript/web/components/FrontLine/ListEmpty.js","webpack:///./app/javascript/web/components/FrontLine/ActivityList.js","webpack:///./app/javascript/web/components/FrontLine/ListController.js","webpack:///./app/javascript/web/components/FrontLine/index.js","webpack:///./app/javascript/web/components/GeorgiaSpecialLanding/styles.js","webpack:///./app/javascript/web/components/GeorgiaSpecialLanding/CollectPhone.js","webpack:///./app/javascript/web/components/GeorgiaSpecialLanding/DoneCheckmark.js","webpack:///./app/javascript/web/components/GeorgiaSpecialLanding/ThankYou.js","webpack:///./app/javascript/web/components/GeorgiaSpecialLanding/OptionsPage.js","webpack:///./app/javascript/web/components/GeorgiaSpecialLanding/MarketingSiteFooter.js","webpack:///./app/javascript/web/components/GeorgiaSpecialLanding/index.js","webpack:///./app/javascript/web/components/Hq/Metrics.js","webpack:///./app/javascript/web/components/Hq/NextRank.js","webpack:///./app/javascript/web/components/Hq/Profile.js","webpack:///./app/javascript/web/components/Hq/Section.js","webpack:///./app/javascript/web/hooks/useHasContacts.js","webpack:///./app/javascript/web/components/Hq/SyncContact.js","webpack:///./app/javascript/web/components/common/ImpactiveImageUpload.js","webpack:///./app/javascript/web/components/Settings/ConfirmDeleteModal.js","webpack:///./app/javascript/web/components/Settings/EditUserFormScheme.js","webpack:///./app/javascript/web/components/Settings/EditUserModal.js","webpack:///./app/javascript/web/components/Hq/index.js","webpack:///./app/javascript/web/components/IdVotersActivity/IdVoters.js","webpack:///./app/javascript/web/components/Inbox/MessageThreadLoading.js","webpack:///./app/javascript/web/components/Inbox/utils.js","webpack:///./app/javascript/web/components/Inbox/MessageThreadPreview/MessageThreadPreview.js","webpack:///./app/javascript/web/components/Inbox/MessageThreadPreview/index.js","webpack:///./app/javascript/web/components/Inbox/InboxList.js","webpack:///./app/javascript/web/components/Inbox/ThreeStateSwitch.js","webpack:///./app/javascript/web/components/Inbox/CheckRegistrationModal.js","webpack:///./app/javascript/web/components/Inbox/Icons.js","webpack:///./app/javascript/web/components/Inbox/Message.js","webpack:///./app/javascript/web/components/Inbox/ScriptsSection/Carousel.js","webpack:///./app/javascript/web/components/Inbox/ScriptsSection/ScriptSectionHeader.js","webpack:///./app/javascript/web/components/Inbox/ScriptsSection/index.js","webpack:///./app/javascript/web/components/Inbox/FillReport/TaggingsList.js","webpack:///./app/javascript/web/components/Inbox/FillReport/CustomFieldsList.js","webpack:///./app/javascript/web/components/Inbox/FillReport/FillReportContent.js","webpack:///./app/javascript/web/components/Inbox/FillReport/index.js","webpack:///./app/javascript/web/components/Inbox/ReportingSidebar.js","webpack:///./app/javascript/web/components/Inbox/MessageInput.js","webpack:///./app/javascript/web/components/ButtonWithDropdown.js","webpack:///./app/javascript/web/components/common/ImpactiveConfirmModal.js","webpack:///./app/javascript/web/components/Inbox/MessageThreadHeader.js","webpack:///./app/javascript/web/components/Inbox/MessageThread.js","webpack:///./app/javascript/web/components/Inbox/consts.js","webpack:///./app/javascript/web/components/Inbox/UnreadIcon.js","webpack:///./app/javascript/web/components/Inbox/hooks/needsAttentionMessagesCount.js","webpack:///./app/javascript/web/components/Inbox/InboxHeader/InboxFilters.js","webpack:///./app/javascript/web/components/Inbox/InboxHeader/FiltersSelect.js","webpack:///./app/javascript/web/components/Inbox/InboxHeader/index.js","webpack:///./app/javascript/web/components/Inbox/index.js","webpack:///./app/javascript/web/components/ModalContainer.js","webpack:///./app/javascript/web/components/IdVotersActivity/NewVoterReport.js","webpack:///./app/javascript/web/components/OptInFormWeb/styles.js","webpack:///./app/javascript/web/components/OptInFormWeb/components/shareButtons.js","webpack:///./app/javascript/web/components/OptInFormWeb/index.js","webpack:///./app/javascript/web/components/PledgeToVote/styles.js","webpack:///./app/javascript/web/components/PledgeToVote/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/breakpoints.js","webpack:///./app/javascript/web/components/VoterRegistration/hooks/useIsMobile.js","webpack:///./app/javascript/web/components/FanOut/components/icons/FanOutLogo/index.js","webpack:///./app/javascript/web/components/FanOut/hooks/useFanOutAmplitude.js","webpack:///./app/javascript/web/components/FanOut/components/DonateButton/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/Button/index.js","webpack:///./app/javascript/web/components/FanOut/components/icons/Drawer/index.js","webpack:///./app/javascript/web/components/FanOut/components/icons/CloseDrawer/index.js","webpack:///./app/javascript/web/components/FanOut/components/Drawer/index.js","webpack:///./app/javascript/web/components/FanOut/components/Header/index.js","webpack:///./app/javascript/web/components/FanOut/components/HeroImages/index.js","webpack:///./app/javascript/web/components/FanOut/components/icons/Ticket/index.js","webpack:///./app/javascript/web/components/FanOut/components/icons/Copy/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/Share.js","webpack:///./app/javascript/web/components/FanOut/components/icons/Entries/index.js","webpack:///./app/javascript/web/components/FanOut/components/icons/Recruits/index.js","webpack:///./app/javascript/web/components/FanOut/components/EntriesInfo/index.js","webpack:///./app/javascript/web/components/FanOut/components/icons/Diamond/index.js","webpack:///./app/javascript/web/components/FanOut/components/icons/Checked/index.js","webpack:///./app/javascript/web/components/FanOut/helpers/index.js","webpack:///./app/javascript/web/components/FanOut/components/EntriesContainer/index.js","webpack:///./app/javascript/web/components/FanOut/components/SweepstakesEntries/index.js","webpack:///./app/javascript/web/components/FanOut/components/DesktopLayout/index.js","webpack:///./app/javascript/web/components/FanOut/components/MobileLayout/index.js","webpack:///./app/javascript/web/components/FanOut/components/FanOutActivity/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/TextStyles/index.js","webpack:///./app/javascript/web/components/FanOut/components/Terms/index.js","webpack:///./app/javascript/web/components/FanOut/components/SweepstakeCard/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/Layout/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/Modal/CloseButton.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/Modal/index.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/HelpOthers/Share/Box/ShareButton.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/Facebook.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/LinkedIn.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/Link.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/Twitter.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/HelpOthers/Share/Box/DesktopLinks.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/HelpOthers/Share/Box/MobileShare.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/HelpOthers/Share/Box/ShareImage.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/HelpOthers/Share/Box/useDescriptionPosition.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/HelpOthers/Share/Box/index.js","webpack:///./app/javascript/web/components/FanOut/components/icons/Graph/index.js","webpack:///./app/javascript/web/components/FanOut/components/icons/ArrowUp/index.js","webpack:///./app/javascript/web/components/FanOut/components/QRCodeShare/index.js","webpack:///./app/javascript/web/components/FanOut/components/Share/index.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/HelpOthers/Info/MobileHero.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/ChooseFlow/Incentives/CheckMark.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/ChooseFlow/Incentives/IncentiveItem.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/ChooseFlow/Incentives/index.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/HelpOthers/Share/VoterRegistrationShare.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/HelpOthers/Share/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/Button/BackButton.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/Person.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/Contact/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/Arrow.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/HoverCard/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/Location.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/Plus.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/CheckRegistration/AddressConfirmation/AddressCard.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/MessageBox/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/Question.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/CheckRegistration/AddressConfirmation/NoAddressMatch.js","webpack:///./app/javascript/web/components/VoterRegistration/helpers/parseVoterObject.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/CheckRegistration/AddressConfirmation/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/ChooseFlow/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/Input/sharedStyles.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/Input/MaskedInput/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/Input/SelectInput/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/Input/RadioGroup/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/Calendar.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/Email.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/House.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/Phone.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/Input/index.js","webpack:///./app/javascript/web/utils/parseAddress.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/Input/AddressInput.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/CheckboxIcon.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/Input/Checkbox/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/ContactForm/OptIns/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/Search.js","webpack:///./app/javascript/web/components/common/RefreshFormIcon.js","webpack:///./app/javascript/web/components/VoterRegistration/hooks/useVoterRegistrationApi.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/ContactForm/index.js","webpack:///./app/javascript/web/components/VoterRegistration/components/common/utils/schema.js","webpack:///./app/javascript/web/components/VoterRegistration/hooks/useContactForm.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/CheckRegistration/FindRegistration/index.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/HelpOthers/Info/ReferralForm.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/HelpOthers/Info/index.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/CheckRegistration/NotRegistered/Reason.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/ABCheck.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/Clock.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/Contact.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/CheckRegistration/NotRegistered/index.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/CheckRegistration/SelectVoter/VoterItem.js","webpack:///./app/javascript/web/components/Headcount/hooks/useVoterRegistrationApi.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/CheckRegistration/SelectVoter/index.js","webpack:///./app/javascript/web/components/VoterRegistration/flows/RegisterToVote/TellUs/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/CircleCheck.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/CircleX.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/Lock.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/icons/Star.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/VotingInformation/Timeline/utils.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/VotingInformation/Timeline/TimelineItem/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/VotingInformation/Timeline/newNotRegisteredTimelines.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/VotingInformation/Timeline/newRegisteredTimelines.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/VotingInformation/Timeline/sharedTimelines.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/VotingInformation/Timeline/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/VotingInformation/Message.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/VotingInformation/Share/IconButton.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/VotingInformation/Share/SocialShare.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/VotingInformation/Share/ShareLink.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/VotingInformation/Share/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/VotingInformation/NorthDakotaVersion.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/VotingInformation/index.js","webpack:///./app/javascript/web/components/AddReport/utils.js","webpack:///./app/javascript/web/components/FanOut/components/FriendLookUpForm/index.js","webpack:///./app/javascript/web/components/FanOut/components/FriendLookUp/index.js","webpack:///./app/javascript/web/components/FanOut/components/icons/ArrowBack/index.js","webpack:///./app/javascript/web/components/FanOut/components/icons/Location/index.js","webpack:///./app/javascript/web/components/FanOut/components/icons/Calendar/index.js","webpack:///./app/javascript/web/components/FanOut/components/FriendLookUpResult/VBFriendInfo.js","webpack:///./app/javascript/web/components/FanOut/components/FriendLookUpResult/index.js","webpack:///./app/javascript/web/components/FanOut/components/VotingDetails/index.js","webpack:///./app/javascript/web/components/VoterRegistration/hooks/useFlows.js","webpack:///./app/javascript/web/components/FanOut/components/AllSweepstakes/index.js","webpack:///./app/javascript/web/components/FanOut/components/RecheckRegistrationIcon/index.js","webpack:///./app/javascript/web/components/FanOut/components/StatusBox/index.js","webpack:///./app/javascript/web/components/FanOut/components/icons/TwoRecruits/index.js","webpack:///./app/javascript/web/components/FanOut/components/EntriesBoxes/index.js","webpack:///./app/javascript/web/components/FanOut/components/icons/ExitLink/index.js","webpack:///./app/javascript/web/components/FanOut/components/Recruits/DesktopRecruit.js","webpack:///./app/javascript/web/components/FanOut/components/Recruits/MobileRecruit.js","webpack:///./app/javascript/web/components/FanOut/components/Recruits/index.js","webpack:///./app/javascript/web/components/FanOut/hooks/useFanOut.js","webpack:///./app/javascript/web/components/FanOut/components/MyActivity/index.js","webpack:///./app/javascript/web/components/VoterRegistration/newComponents/ProgressBar/index.js","webpack:///./app/javascript/web/components/VoterRegistration/useSpecificTranslation.js","webpack:///./app/javascript/web/components/VoterRegistration/index.js","webpack:///./app/javascript/web/components/FanOut/components/icons/Facebook/index.js","webpack:///./app/javascript/web/components/FanOut/components/icons/Instagram/index.js","webpack:///./app/javascript/web/components/FanOut/components/icons/Threads/index.js","webpack:///./app/javascript/web/components/FanOut/components/Footer/index.js","webpack:///./app/javascript/web/components/FanOut/index.js","webpack:///./app/javascript/web/components/FanOut/components/icons/VotingPlan/index.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/CreateVotingPlan/index.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/ProgressBar/index.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/PageTitle/index.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/utils.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/VotingPlanButton/index.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/ButtonsSection/index.js","webpack:///./app/javascript/web/components/common/shared/FormDatePicker.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/TellUs/InfoFields.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/styles.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/TellUs/index.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/Oops/index.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/HowWillYouVote/WarningMessage.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/HowWillYouVote/RadioGroupFormPartial.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/HowWillYouVote/QuestionCard.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/HowWillYouVote/QuestionFields.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/HowWillYouVote/index.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/WhichCandidatesRepresent/RadioGroupFormPartial.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/WhichCandidatesRepresent/QuestionCard.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/WhichCandidatesRepresent/QuestionFields.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/WhichCandidatesRepresent/index.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/Results/TitleResults.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/Results/HowIPlanToVote.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/Results/WhoRepresents.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/components/Results/index.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/hooks/useVotingPlan.js","webpack:///./app/javascript/web/components/FanOutVotingPlan/index.js","webpack:///./app/javascript/web/components/Headcount/components/Text/index.js","webpack:///./app/javascript/web/components/Headcount/components/Button/index.js","webpack:///./app/javascript/web/components/Headcount/components/Header/index.js","webpack:///./app/javascript/web/components/Headcount/components/HeroImage/index.js","webpack:///./app/javascript/web/components/Headcount/components/Link/index.js","webpack:///./app/javascript/web/components/Headcount/components/ChooseFlow/LanguageToggle.js","webpack:///./app/javascript/web/components/Headcount/hooks/useIsDesktop.js","webpack:///./app/javascript/web/components/Headcount/hooks/useIsPartner.js","webpack:///./app/javascript/web/components/Headcount/hooks/useRedirectRules.js","webpack:///./app/javascript/web/components/Headcount/components/ChooseFlow/index.js","webpack:///./app/javascript/web/components/Headcount/theme.js","webpack:///./app/javascript/web/components/Headcount/components/SideHeroImage/index.js","webpack:///./app/javascript/web/components/Headcount/components/HeadcountLayoutDesktop/index.js","webpack:///./app/javascript/web/components/Headcount/components/HeadcountLayoutMobile/index.js","webpack:///./app/javascript/web/components/Headcount/components/Input/ErrorText.js","webpack:///./app/javascript/web/components/Headcount/components/Input/sharedStyles.js","webpack:///./app/javascript/web/components/Headcount/components/Input/AddressInput.js","webpack:///./app/javascript/web/components/Headcount/components/FormComponents/ButtonRow/index.js","webpack:///./app/javascript/web/components/Headcount/components/Input/index.js","webpack:///./app/javascript/web/components/Headcount/components/Input/MaskedInput/index.js","webpack:///./app/javascript/web/components/Headcount/components/Input/Checkbox/CheckboxIcon.js","webpack:///./app/javascript/web/components/Headcount/components/Input/Checkbox/index.js","webpack:///./app/javascript/web/components/Headcount/components/FormComponents/TermsAndConditions/index.js","webpack:///./app/javascript/web/components/Headcount/components/OptIns/index.js","webpack:///./app/javascript/web/components/Headcount/hooks/useContactForm.js","webpack:///./app/javascript/web/components/Headcount/components/FormComponents/ContactForm/index.js","webpack:///./app/javascript/web/components/Headcount/components/ProgressBar/index.js","webpack:///./app/javascript/web/components/Headcount/components/HeaderAndProgress/index.js","webpack:///./app/javascript/web/components/Headcount/components/BackToStart/index.js","webpack:///./app/javascript/web/components/Headcount/components/ExternalButtonLink/index.js","webpack:///./app/javascript/web/components/Headcount/components/ShareLink/IconWrapper.js","webpack:///./app/javascript/web/components/Headcount/components/ShareLink/CopyIcon.js","webpack:///./app/javascript/web/components/Headcount/components/ShareLink/ShareIcon.js","webpack:///./app/javascript/web/components/Headcount/components/ShareLink/index.js","webpack:///./app/javascript/web/components/Headcount/components/VoterBox/index.js","webpack:///./app/javascript/web/components/Headcount/components/icons/CalendarIcon/index.js","webpack:///./app/javascript/web/components/Headcount/components/icons/ClipboardIcon/index.js","webpack:///./app/javascript/web/components/Headcount/components/icons/CheckmarkIcon/index.js","webpack:///./app/javascript/web/components/Headcount/components/icons/EnvelopeIcon/index.js","webpack:///./app/javascript/web/components/Headcount/components/VotingDates/DateItem.js","webpack:///./app/javascript/web/components/Headcount/components/VotingDates/stateAbbrMap.js","webpack:///./app/javascript/web/components/Headcount/components/VotingDates/index.js","webpack:///./app/javascript/web/components/Headcount/hooks/useFetchVoterRecord.js","webpack:///./app/javascript/web/components/Headcount/flows/RegisterToVote/pages/RegisterToVoteResult/index.js","webpack:///./app/javascript/web/components/Headcount/components/icons/CircledCheckmarkIcon/index.js","webpack:///./app/javascript/web/components/Headcount/components/Banner/index.js","webpack:///./app/javascript/web/components/Headcount/flows/RegisterToVote/pages/StateIdQuestion/index.js","webpack:///./app/javascript/web/components/Headcount/flows/RegisterToVote/pages/StateIdQuestionWithAddress/index.js","webpack:///./app/javascript/web/components/Headcount/flows/CheckRegistration/pages/NotRegistered/ListItem.js","webpack:///./app/javascript/web/components/Headcount/flows/CheckRegistration/pages/NotRegistered/icons.js","webpack:///./app/javascript/web/components/Headcount/flows/CheckRegistration/pages/NotRegistered/index.js","webpack:///./app/javascript/web/components/Headcount/flows/CheckRegistration/pages/RegisteredLocation/ListItem.js","webpack:///./app/javascript/web/components/Headcount/flows/CheckRegistration/pages/helpers.js","webpack:///./app/javascript/web/components/Headcount/flows/CheckRegistration/pages/RegisteredLocation/index.js","webpack:///./app/javascript/web/components/Headcount/flows/CheckRegistration/pages/SelectVoter/VoterItem.js","webpack:///./app/javascript/web/components/Headcount/flows/CheckRegistration/pages/SelectVoter/index.js","webpack:///./app/javascript/web/components/Headcount/flows/CheckRegistration/pages/UpdateAddressResult/index.js","webpack:///./app/javascript/web/components/Headcount/flows/CheckRegistration/pages/VoteFromAddressResult/index.js","webpack:///./app/javascript/web/components/Headcount/hooks/usePageNavigation.js","webpack:///./app/javascript/web/components/Headcount/flows/CheckRegistration/pages/VoteByMailResult/index.js","webpack:///./app/javascript/web/components/Headcount/flows/CheckRegistration/index.js","webpack:///./app/javascript/web/components/Headcount/flows/RegisterToVote/index.js","webpack:///./app/javascript/web/components/Headcount/flows/WantToHelp/pages/ReferralShowLink.js","webpack:///./app/javascript/web/components/Headcount/flows/WantToHelp/index.js","webpack:///./app/javascript/web/components/Headcount/components/LinkButton/LinkButton.js","webpack:///./app/javascript/web/components/Headcount/components/LinkButton/index.js","webpack:///./app/javascript/web/components/Headcount/flows/GeorgiaRunoffPage/components/VotingDatesGA.js","webpack:///./app/javascript/web/components/Headcount/flows/GeorgiaRunoffPage/GeorgiaRunoffPage.js","webpack:///./app/javascript/web/components/Headcount/flows/GeorgiaRunoffPage/index.js","webpack:///./app/javascript/web/components/Headcount/index.js","webpack:///./app/javascript/web/components/RegistrationActivity/ActivityHero/components/ActivityCTA.js","webpack:///./app/javascript/web/components/RegistrationActivity/ActivityHero/components/ActivityGoals/components/Progress.js","webpack:///./app/javascript/web/components/RegistrationActivity/ActivityHero/components/ActivityGoals/index.js","webpack:///./app/javascript/web/components/RegistrationActivity/ActivityHero/components/BoxLogo.js","webpack:///./app/javascript/web/components/RegistrationActivity/ActivityHero/components/CampaignProfileImage.js","webpack:///./app/javascript/web/components/RegistrationActivity/ActivityHero/components/MainContainer.js","webpack:///./app/javascript/web/components/RegistrationActivity/ActivityHero/components/DesktopHero.js","webpack:///./app/javascript/web/components/RegistrationActivity/ActivityHero/components/TextStyles.js","webpack:///./app/javascript/web/components/RegistrationActivity/ActivityHero/components/MobileHero.js","webpack:///./app/javascript/web/components/RegistrationActivity/ActivityHero/index.js","webpack:///./app/javascript/web/components/common/IncentivesSection/components/IncentiveCard.js","webpack:///./app/javascript/web/components/common/IncentivesSection/index.js","webpack:///./app/javascript/web/components/common/TeamLeaderboardSection/components/TeamLeaderboardCard.js","webpack:///./app/javascript/web/components/common/TeamLeaderboardSection/index.js","webpack:///./app/javascript/web/components/common/VolunteerLeaderboardSection/components/FIrstPlaceIcon.js","webpack:///./app/javascript/web/components/common/VolunteerLeaderboardSection/components/SecondPlaceIcon.js","webpack:///./app/javascript/web/components/common/VolunteerLeaderboardSection/components/ThirdPlaceIcon.js","webpack:///./app/javascript/web/components/common/VolunteerLeaderboardSection/components/VolunteerLeaderboardCard.js","webpack:///./app/javascript/web/components/common/VolunteerLeaderboardSection/index.js","webpack:///./app/javascript/web/components/RegistrationActivity/index.js","webpack:///./app/javascript/web/components/SurveyActivity/components/utils.js","webpack:///./app/javascript/web/components/common/shared/AddressFormField.js","webpack:///./app/javascript/web/components/SurveyActivity/components/VolunteerInfoFields.js","webpack:///./app/javascript/web/components/common/shared/Card.js","webpack:///./app/javascript/web/components/SurveyActivity/components/styles.js","webpack:///./app/javascript/web/components/SurveyActivity/components/ActivityQuestions/partials/RadioGroupFormPartial.js","webpack:///./app/javascript/web/components/SurveyActivity/components/ActivityQuestions/partials/InputFieldFormPartial.js","webpack:///./app/javascript/web/components/SurveyActivity/components/ActivityQuestions/QuestionCard.js","webpack:///./app/javascript/web/components/SurveyActivity/components/ActivityQuestions/ActivityQuestions.js","webpack:///./app/javascript/web/components/SurveyActivity/components/OptInCheckboxField.js","webpack:///./app/javascript/web/components/SurveyActivity/components/ShareButtons.js","webpack:///./app/javascript/web/components/SurveyActivity/components/ReferralLink.js","webpack:///./app/javascript/web/components/SurveyActivity/components/SurveyActivityForm.js","webpack:///./app/javascript/web/components/SurveyActivity/components/SurveyIntroPage.js","webpack:///./app/javascript/web/components/SurveyActivity/SurveyActivity.js","webpack:///./app/javascript/web/components/PublicActivityDetail/index.js","webpack:///./app/javascript/web/components/common/ScrollToTop.js","webpack:///./app/javascript/web/components/TeamActivityPage/ActivityHero/components/ActivityCTA.js","webpack:///./app/javascript/web/components/TeamActivityPage/ActivityHero/components/ActivityGoals/index.js","webpack:///./app/javascript/web/components/TeamActivityPage/ActivityHero/components/BoxLogo.js","webpack:///./app/javascript/web/components/TeamActivityPage/ActivityHero/components/CampaignProfileImage.js","webpack:///./app/javascript/web/components/TeamActivityPage/ActivityHero/components/MainContainer.js","webpack:///./app/javascript/web/components/TeamActivityPage/ActivityHero/components/DesktopHero.js","webpack:///./app/javascript/web/components/TeamActivityPage/ActivityHero/components/TextStyles.js","webpack:///./app/javascript/web/components/TeamActivityPage/ActivityHero/components/MobileHero.js","webpack:///./app/javascript/web/components/TeamActivityPage/ActivityHero/index.js","webpack:///./app/javascript/web/components/TeamActivityPage/TeamActivityVoterRegistrationPage.js","webpack:///./app/javascript/web/components/TeamActivityPage/index.js","webpack:///./app/javascript/web/components/Settings/Unlock.js","webpack:///./app/javascript/web/components/Settings/UserPreferences.js","webpack:///./app/javascript/web/components/Settings/useHasContacts.js","webpack:///./app/javascript/web/components/Settings/index.js","webpack:///./app/javascript/web/components/StateProvider.js","webpack:///./app/javascript/web/components/StateVotingInformation/Definition.js","webpack:///./app/javascript/web/components/StateVotingInformation/styles.js","webpack:///./app/javascript/web/components/StateVotingInformation/index.js","webpack:///./app/javascript/web/components/TeamDetail/TeamActivity.js","webpack:///./app/javascript/web/components/TeamDetail/TeamMember.js","webpack:///./app/javascript/web/components/TeamDetail/index.js","webpack:///./app/javascript/web/components/ActivityDetail/TestimonialActivity/TestimonialHelpers.js","webpack:///./app/javascript/web/components/ActivityDetail/TestimonialActivity/index.js","webpack:///./app/javascript/web/components/ActivityDetail/TextAFriendActivity/ContactSelection.js","webpack:///./app/javascript/web/components/ActivityDetail/TextAFriendActivity/SendingScreen/ScriptMessageInput.js","webpack:///./app/javascript/web/components/ActivityDetail/TextAFriendActivity/SendingScreen/buildEmail.js","webpack:///./app/javascript/web/components/ActivityDetail/TextAFriendActivity/SendingScreen/styles.js","webpack:///./app/javascript/web/components/ActivityDetail/TextAFriendActivity/SendingScreen/BulkSendingScreen.js","webpack:///./app/javascript/web/components/ActivityDetail/TextAFriendActivity/SendingScreen/GmailApproval.js","webpack:///./app/javascript/web/components/ActivityDetail/TextAFriendActivity/SendingScreen/IndividualSendingScreen.js","webpack:///./app/javascript/web/components/ActivityDetail/TextAFriendActivity/SendingScreen/index.js","webpack:///./app/javascript/web/components/ActivityDetail/TextAFriendActivity/index.js","webpack:///./app/javascript/web/components/ActivityDetail/TextAListActivity.js","webpack:///./app/javascript/web/components/Routes/UnauthenticatedRoute.js","webpack:///./app/javascript/web/components/IdVotersActivity/VoterMatch.js","webpack:///./app/javascript/web/components/VotingInformation/Definition.js","webpack:///./app/javascript/web/components/VotingInformation/SuccessText.js","webpack:///./app/javascript/web/components/VotingInformation/styles.js","webpack:///./app/javascript/web/components/VotingInformation/index.js","webpack:///./app/javascript/web/components/AddReport/components/ContentWrapper.js","webpack:///./app/javascript/web/components/common/Breadcrumb.js","webpack:///./app/javascript/web/components/AddReport/components/Header.js","webpack:///./app/javascript/web/components/AddReport/components/ReportFormHelpers/ViewTags.js","webpack:///./app/javascript/web/components/AddReport/components/ReportFormHelpers/ViewCustomFields.js","webpack:///./app/javascript/web/components/AddReport/components/ReportFormHelpers/FormFooter.js","webpack:///./app/javascript/web/components/AddReport/pages/AddManually/components/AddManuallyForm.js","webpack:///./app/javascript/web/components/AddReport/components/BreadcrumbData.js","webpack:///./app/javascript/web/components/AddReport/useSendReport.js","webpack:///./app/javascript/web/components/AddReport/pages/AddManually/index.js","webpack:///./app/javascript/web/components/AddReport/pages/FindVoters/components/FindVotersForm.js","webpack:///./app/javascript/web/components/AddReport/pages/FindVoters/components/VotersList/VotersListItem.js","webpack:///./app/javascript/web/components/AddReport/pages/FindVoters/components/VotersList/index.js","webpack:///./app/javascript/web/components/AddReport/components/VotersHistoryModal.js","webpack:///./app/javascript/web/components/AddReport/pages/FindVoters/index.js","webpack:///./app/javascript/web/components/AddReport/pages/ViewVoter/components/ViewVoterForm.js","webpack:///./app/javascript/web/components/AddReport/pages/ViewVoter/index.js","webpack:///./app/javascript/web/components/AddReport/index.js","webpack:///./app/javascript/web/components/AccelerateChange/utils.js","webpack:///./app/javascript/web/components/AccelerateChange/AccelerateChangeHeader.js","webpack:///./app/javascript/web/components/AccelerateChange/pages/ChooseVoter.js","webpack:///./app/javascript/web/components/common/Progress/VerticalProgressPoints.js","webpack:///./app/javascript/web/components/Auth/AdminSignup/Components/SidebarLayout/Sidebar.js","webpack:///./app/javascript/web/components/Auth/AdminSignup/Components/SidebarLayout/index.js","webpack:///./app/javascript/web/components/common/SubscriptionSelection/desktop/PlanHeader.js","webpack:///./app/javascript/web/components/common/SubscriptionSelection/desktop/DynamicGrid.js","webpack:///./app/javascript/web/components/common/SubscriptionSelection/desktop/PlanSectionHeader.js","webpack:///./app/javascript/web/components/common/SubscriptionSelection/desktop/PlanGridRow.js","webpack:///./app/javascript/web/components/common/SubscriptionSelection/desktop/PlanButtons.js","webpack:///./app/javascript/web/components/common/SubscriptionSelection/desktop/index.js","webpack:///./app/javascript/web/components/common/SubscriptionSelection/plansInfo.js","webpack:///./app/javascript/web/components/Auth/AdminSignup/Components/Steps/Components/modalUtils.js","webpack:///./app/javascript/web/components/Auth/AdminSignup/Components/Steps/Components/PaymentModal.js","webpack:///./app/javascript/web/components/Auth/AdminSignup/Components/Steps/PlanSelectStep.js","webpack:///./app/javascript/web/components/Auth/AdminSignup/Components/Steps/TellUsMoreStep.js","webpack:///./app/javascript/web/components/Auth/AdminSignup/Components/Steps/WelcomeStep.js","webpack:///./app/javascript/web/components/Auth/AdminSignup/pages/AdminPlanSelect.js","webpack:///./app/javascript/web/components/VoterRegistrationPublicLeaderboard/components/TopSection.js","webpack:///./app/javascript/web/components/VoterRegistrationPublicLeaderboard/components/LeaderboardTable.js","webpack:///./app/javascript/web/components/VoterRegistrationPublicLeaderboard/components/getColumns.js","webpack:///./app/javascript/web/components/VoterRegistrationPublicLeaderboard/useLeaderboard.js","webpack:///./app/javascript/web/components/VoterRegistrationPublicLeaderboard/index.js","webpack:///./app/javascript/web/components/VoteScore/components/Header.js","webpack:///./app/javascript/web/components/VoteScore/components/CheckVoterScoreForm.js","webpack:///./app/javascript/web/components/VoteScore/pages/SearchVoter.js","webpack:///./app/javascript/web/components/DidMyFriendVoteFAQs/components/Header.js","webpack:///./app/javascript/web/components/DidMyFriendVoteFAQs/questions.js","webpack:///./app/javascript/web/components/DidMyFriendVoteFAQs/components/Question.js","webpack:///./app/javascript/web/components/DidMyFriendVoteFAQs/index.js","webpack:///./app/javascript/web/components/PeerToPeerPublicLeaderboard/components/TopSection.js","webpack:///./app/javascript/web/components/PeerToPeerPublicLeaderboard/components/getColumns.js","webpack:///./app/javascript/web/components/PeerToPeerPublicLeaderboard/components/LeaderboardTable.js","webpack:///./app/javascript/web/components/PeerToPeerPublicLeaderboard/useLeaderboard.js","webpack:///./app/javascript/web/components/PeerToPeerPublicLeaderboard/index.js","webpack:///./app/javascript/web/components/App.js","webpack:///./app/javascript/packs/web.js","webpack:///./app/javascript/web/components/AddReport/components/shared.js"],"sourcesContent":["// MTS - The purpose of this function is to provide a wrapper\n// around any error monitoring software we currently use or\n// will use in the future.\nimport * as Sentry from '@sentry/browser';\n\nconst notDev = process.env.NODE_ENV !== 'development';\n\n// MTS - I'm going to test this function out for a while to see if it\n// allows us to get more data into Sentry.\nclass HandledError extends Error {\n constructor(errMessage, data) {\n // Passes errMessage to the Error super class,\n // similar to call new Error(errMessage).\n super(errMessage);\n\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, HandledError);\n }\n\n this.name = 'HandledError';\n }\n}\n\nconst sendError = (message, errObj = {}, extraData = {}) => {\n function getResponse() {\n if (errObj?.response?.data) {\n return JSON.stringify(errObj.response.data);\n }\n return 'no backend message';\n }\n\n if (notDev) {\n addBreadcrumb({\n category: 'sendError Breadcrumb',\n data: {\n ...errObj,\n ...extraData,\n },\n level: 'error',\n message,\n });\n\n let thisError;\n\n // MTS - We check to see if the errObj is actually a javascript error.\n // Sometimes it isn't.\n if (errObj instanceof Error) {\n // This overrides the error message to something that is\n // easily readable in Sentry.\n thisError = new Error(message, errObj);\n } else {\n thisError = new HandledError(message, {\n ...errObj,\n ...extraData,\n });\n }\n\n Sentry.captureException(thisError, {\n extra: {\n message,\n ...errObj,\n ...extraData,\n },\n });\n } else {\n console.error({\n backendMessage: getResponse(),\n errObj,\n extraData,\n message,\n });\n }\n};\n\nexport const addBreadcrumb = ({ category = 'default', data = {}, message = '', level = 'log' }) => {\n // valid level values: 'log', 'error', 'fatal', 'info', 'warning', 'critical'\n if (notDev) {\n Sentry.addBreadcrumb({\n category,\n data,\n level,\n message,\n });\n } else {\n // eslint-disable-next-line no-console\n console.info('Sentry Breadcrumb', { category, data, level, message });\n }\n};\n\nexport default sendError;\n","// MTS - The purpose of this file is to make sure we keep the dialerMachine the\n// same in both the mobile app and the web app. The debugging code does not work\n// with React native so this allows us to write our own debugging code while\n// blindly copy-pasting the dialerMachine.js changes between mobile and web.\nimport { inspect } from '@xstate/inspect';\nimport { interpret } from 'xstate';\nimport sendError, { addBreadcrumb } from '@web/utils/sendError';\n\nconst env = process && process.env && process.env.NODE_ENV && process.env.NODE_ENV.toLowerCase();\n\nconst DEBUG_XSTATE = false;\n\nlet service = null;\n\nfunction machineDebugger(dialerMachine) {\n if (env === 'development' && DEBUG_XSTATE) {\n inspect({\n iframe: false,\n url: 'https://statecharts.io/inspect',\n });\n // Setup the debugger via https://statecharts.io/inspect\n service = interpret(dialerMachine, { devTools: true }).onTransition(state => {\n // eslint-disable-next-line\n console.log('dialerMachine transitioned to: ', state.value);\n });\n\n service.start();\n }\n\n return { addBreadcrumb, sendError, service };\n}\n\nexport default machineDebugger;\n","import { createMachine } from 'xstate';\nimport machineDebugger from './machineDebugger';\n\n// Transitions\nexport const CALL_SUCCESSFUL = 'CALL_SUCCESSFUL';\nexport const CALL_UNSUCCESSFUL = 'CALL_UNSUCCESSFUL';\nexport const END_SESSION = 'END_SESSION';\nexport const EXIT_ACTIVITY = 'EXIT_ACTIVITY';\nexport const NO_TAGS_OR_CUSTOM_FIELDS = 'NO_TAGS_OR_CUSTOM_FIELDS';\nexport const OUT_OF_SYNC_VOTER_HANG_UP = 'OUT_OF_SYNC_VOTER_HANG_UP';\nexport const PHONE_BANK_ENDED = 'PHONE_BANK_ENDED';\nexport const PHONE_BANK_NOT_STARTED = 'PHONE_BANK_NOT_STARTED';\nexport const PHONE_BANK_PAUSED = 'PHONE_BANK_PAUSED';\nexport const PHONE_BANK_STARTED = 'PHONE_BANK_STARTED';\nexport const QUEUE_NEXT_CALL = 'QUEUE_NEXT_CALL';\nexport const QUEUE_CALL_ERROR = 'QUEUE_CALL_ERROR';\nexport const RECONNECTED = 'RECONNECTED';\nexport const RESPONSES_SUBMITTED = 'RESPONSES_SUBMITTED';\nexport const SESSION_STATS_VIEWED = 'SESSION_STATS_VIEWED';\nexport const SESSION_STATS_VIEWED_AUTO_CONNECT = 'SESSION_STATS_VIEWED_AUTO_CONNECT';\nexport const TAGS_AND_CUSTOM_FIELDS_SUBMITTED = 'TAGS_AND_CUSTOM_FIELDS_SUBMITTED';\nexport const VOLUNTEER_ANSWERED = 'VOLUNTEER_ANSWERED';\nexport const VOLUNTEER_DISCONNECTED = 'VOLUNTEER_DISCONNECTED';\nexport const VOLUNTEER_NOT_CONNECTED = 'VOLUNTEER_NOT_CONNECTED'; // different from above\nexport const VOLUNTEER_HANG_UP = 'VOLUNTEER_HANG_UP';\nexport const VOTER_CONNECTED = 'VOTER_CONNECTED';\nexport const PATCH_THROUGH_CONNECTED = 'PATCH_THROUGH_CONNECTED';\nexport const VOTER_HANG_UP = 'VOTER_HANG_UP';\n\n// States\nexport const callOutcome = 'callOutcome';\nexport const connectingToVoter = 'connectingToVoter';\nexport const dialingVolunteer = 'dialingVolunteer';\nexport const disconnected = 'disconnected';\nexport const idle = 'idle';\nexport const autoConnectLoader = 'autoConnectLoader';\nexport const phoneBankEnded = 'phoneBankEnded';\nexport const phoneBankNotStarted = 'phoneBankNotStarted';\nexport const phoneBankPaused = 'phoneBankPaused';\nexport const sessionEnded = 'sessionEnded';\nexport const sessionStats = 'sessionStats';\nexport const tagsAndCustomFields = 'tagsAndCustomFields';\nexport const viewResponses = 'viewResponses';\nexport const volunteerDisconnected = 'volunteerDisconnected';\nexport const voterConnected = 'voterConnected';\nexport const patchThroughConnected = 'patchThroughConnected';\nexport const patchThroughSuccess = 'patchThroughSuccess';\n\nconst dialerMachine = createMachine({\n id: 'dialerMachine',\n initial: 'dialingVolunteer',\n states: {\n // Copied state for auto queue\n [autoConnectLoader]: {\n on: {\n [END_SESSION]: {\n target: sessionEnded,\n },\n [EXIT_ACTIVITY]: {\n target: dialingVolunteer,\n },\n [PATCH_THROUGH_CONNECTED]: {\n target: patchThroughConnected,\n },\n [PHONE_BANK_ENDED]: {\n target: phoneBankEnded,\n },\n [PHONE_BANK_NOT_STARTED]: {\n target: phoneBankNotStarted,\n },\n [PHONE_BANK_PAUSED]: {\n target: phoneBankPaused,\n },\n [QUEUE_CALL_ERROR]: {\n target: idle, // MTS - This helps us debug in Sentry since there will be a breadcrumb.\n },\n [QUEUE_NEXT_CALL]: {\n target: connectingToVoter,\n },\n [VOLUNTEER_DISCONNECTED]: {\n target: volunteerDisconnected,\n },\n [VOLUNTEER_NOT_CONNECTED]: {\n target: volunteerDisconnected,\n },\n // MTS - 2/22/22 We found an edge case where the pusher event can reach the\n // client before the \"Queue Next Call\" request has resolved on the client.\n [VOTER_CONNECTED]: {\n target: voterConnected,\n },\n [VOTER_HANG_UP]: {\n target: idle, // self transition\n },\n },\n },\n [callOutcome]: {\n on: {\n [CALL_SUCCESSFUL]: {\n target: viewResponses,\n },\n [CALL_UNSUCCESSFUL]: {\n target: sessionStats,\n },\n [EXIT_ACTIVITY]: {\n target: dialingVolunteer,\n },\n [VOLUNTEER_DISCONNECTED]: {\n target: callOutcome, // self transition\n },\n [VOLUNTEER_HANG_UP]: {\n target: callOutcome, // self transition\n },\n [VOTER_HANG_UP]: {\n target: callOutcome, // self transition\n },\n },\n },\n [connectingToVoter]: {\n on: {\n [EXIT_ACTIVITY]: {\n target: dialingVolunteer,\n },\n [OUT_OF_SYNC_VOTER_HANG_UP]: {\n target: idle,\n },\n [PHONE_BANK_ENDED]: {\n target: phoneBankEnded,\n },\n [PHONE_BANK_PAUSED]: {\n target: phoneBankPaused,\n },\n [VOLUNTEER_DISCONNECTED]: {\n target: volunteerDisconnected,\n },\n [VOLUNTEER_HANG_UP]: {\n target: idle,\n },\n [VOTER_CONNECTED]: {\n target: voterConnected,\n },\n },\n },\n [dialingVolunteer]: {\n on: {\n [EXIT_ACTIVITY]: {\n target: dialingVolunteer, // self transition\n },\n [PHONE_BANK_STARTED]: {\n target: dialingVolunteer, // self transition\n },\n [VOLUNTEER_ANSWERED]: {\n target: idle,\n },\n },\n },\n [idle]: {\n on: {\n [END_SESSION]: {\n target: sessionEnded,\n },\n [EXIT_ACTIVITY]: {\n target: dialingVolunteer,\n },\n [PHONE_BANK_ENDED]: {\n target: phoneBankEnded,\n },\n [PHONE_BANK_NOT_STARTED]: {\n target: phoneBankNotStarted,\n },\n [PHONE_BANK_PAUSED]: {\n target: phoneBankPaused,\n },\n [QUEUE_CALL_ERROR]: {\n target: idle, // MTS - This helps us debug in Sentry since there will be a breadcrumb.\n },\n [QUEUE_NEXT_CALL]: {\n target: connectingToVoter,\n },\n [VOLUNTEER_DISCONNECTED]: {\n target: volunteerDisconnected,\n },\n [VOLUNTEER_NOT_CONNECTED]: {\n target: volunteerDisconnected,\n },\n // MTS - 2/22/22 We found an edge case where the pusher event can reach the\n // client before the \"Queue Next Call\" request has resolved on the client.\n [VOTER_CONNECTED]: {\n target: voterConnected,\n },\n [VOTER_HANG_UP]: {\n target: idle, // self transition\n },\n },\n },\n [patchThroughConnected]: {\n on: {\n [CALL_SUCCESSFUL]: {\n target: patchThroughSuccess,\n },\n [EXIT_ACTIVITY]: {\n target: dialingVolunteer,\n },\n // We need this transition because a voter can be connected prior to\n // the app receiving the response back from the QUEUE_NEXT_CALL network\n // request.\n [QUEUE_NEXT_CALL]: {\n target: voterConnected, // self transition\n },\n [VOLUNTEER_DISCONNECTED]: {\n target: volunteerDisconnected,\n },\n [VOLUNTEER_HANG_UP]: {\n target: patchThroughSuccess,\n },\n [VOTER_HANG_UP]: {\n target: patchThroughSuccess,\n },\n },\n },\n [patchThroughSuccess]: {\n on: {\n [CALL_SUCCESSFUL]: {\n target: viewResponses,\n },\n [CALL_UNSUCCESSFUL]: {\n target: sessionStats,\n },\n [EXIT_ACTIVITY]: {\n target: dialingVolunteer,\n },\n [VOLUNTEER_DISCONNECTED]: {\n target: patchThroughSuccess, // self transition\n },\n [VOLUNTEER_HANG_UP]: {\n target: patchThroughSuccess, // self transition\n },\n [VOTER_HANG_UP]: {\n target: patchThroughSuccess, // self transition\n },\n },\n },\n [phoneBankEnded]: {\n on: {\n [END_SESSION]: {\n target: sessionEnded,\n },\n [EXIT_ACTIVITY]: {\n target: dialingVolunteer,\n },\n [PATCH_THROUGH_CONNECTED]: {\n target: patchThroughConnected,\n },\n [VOLUNTEER_DISCONNECTED]: {\n target: phoneBankEnded, // self transition\n },\n },\n },\n [phoneBankNotStarted]: {\n on: {\n [END_SESSION]: {\n target: sessionEnded,\n },\n [EXIT_ACTIVITY]: {\n target: dialingVolunteer,\n },\n [PHONE_BANK_STARTED]: {\n target: idle,\n },\n [VOLUNTEER_DISCONNECTED]: {\n target: volunteerDisconnected,\n },\n },\n },\n [phoneBankPaused]: {\n on: {\n [END_SESSION]: {\n target: sessionEnded,\n },\n [EXIT_ACTIVITY]: {\n target: dialingVolunteer,\n },\n [PHONE_BANK_STARTED]: {\n target: idle,\n },\n [VOLUNTEER_DISCONNECTED]: {\n target: volunteerDisconnected,\n },\n },\n },\n [sessionEnded]: {\n on: {\n [EXIT_ACTIVITY]: {\n target: dialingVolunteer,\n },\n [VOLUNTEER_DISCONNECTED]: {\n target: sessionEnded, // self transition\n },\n },\n },\n [sessionStats]: {\n on: {\n [EXIT_ACTIVITY]: {\n target: dialingVolunteer,\n },\n [SESSION_STATS_VIEWED]: {\n target: idle,\n },\n [SESSION_STATS_VIEWED_AUTO_CONNECT]: {\n target: autoConnectLoader,\n },\n [VOLUNTEER_DISCONNECTED]: {\n target: sessionStats, // self transition\n },\n [VOLUNTEER_HANG_UP]: {\n target: sessionStats, // self transition\n },\n [VOTER_HANG_UP]: {\n target: sessionStats, // self transition\n },\n },\n },\n [tagsAndCustomFields]: {\n on: {\n [EXIT_ACTIVITY]: {\n target: dialingVolunteer,\n },\n [NO_TAGS_OR_CUSTOM_FIELDS]: {\n target: sessionStats,\n },\n [TAGS_AND_CUSTOM_FIELDS_SUBMITTED]: {\n target: sessionStats,\n },\n [VOLUNTEER_DISCONNECTED]: {\n target: tagsAndCustomFields, // self transition\n },\n [VOLUNTEER_HANG_UP]: {\n target: tagsAndCustomFields, // self transition\n },\n [VOTER_HANG_UP]: {\n target: tagsAndCustomFields, // self transition\n },\n },\n },\n [viewResponses]: {\n on: {\n [EXIT_ACTIVITY]: {\n target: dialingVolunteer,\n },\n [RESPONSES_SUBMITTED]: {\n target: tagsAndCustomFields,\n },\n },\n },\n [volunteerDisconnected]: {\n on: {\n [EXIT_ACTIVITY]: {\n target: dialingVolunteer,\n },\n [PHONE_BANK_STARTED]: {\n target: volunteerDisconnected, // self transition\n },\n [RECONNECTED]: {\n target: idle,\n },\n [VOLUNTEER_DISCONNECTED]: {\n target: volunteerDisconnected, // self transition\n },\n },\n },\n [voterConnected]: {\n on: {\n [EXIT_ACTIVITY]: {\n target: dialingVolunteer,\n },\n [PATCH_THROUGH_CONNECTED]: {\n target: patchThroughConnected,\n },\n // We need this transition because a voter can be connected prior to\n // the app receiving the response back from the QUEUE_NEXT_CALL network\n // request.\n [QUEUE_NEXT_CALL]: {\n target: voterConnected, // self transition\n },\n [VOLUNTEER_DISCONNECTED]: {\n target: volunteerDisconnected,\n },\n [VOLUNTEER_HANG_UP]: {\n target: callOutcome,\n },\n [VOTER_HANG_UP]: {\n target: callOutcome,\n },\n },\n },\n },\n});\n\nconst { addBreadcrumb, sendError, service } = machineDebugger(dialerMachine);\n\n// helper function to build stack and report errors;\nexport const checkTransition = (state, action, machineState) => {\n // console.log('MACHINE LOG: ', { state, action, machineState })\n\n // Send to service for debugging in separate window\n if (service) {\n service.send(action.payload);\n }\n\n const approvedTransition = machineState.nextEvents.includes(action.payload);\n const message = approvedTransition\n ? `Dialer - Transition: ${action.payload} from ${state.currentState}`\n : `Dialer - Invalid Transition: ${action.payload} from ${state.currentState}`;\n\n // Add a general logging breadcrumb\n addBreadcrumb({\n category: 'Dialer',\n level: approvedTransition ? 'log' : 'warning',\n message,\n });\n\n // Check for an unhandled transition and report to Sentry\n if (!approvedTransition) {\n sendError(message);\n }\n};\n\nexport default dialerMachine;\n","import { createSlice } from '@reduxjs/toolkit';\nimport dayjs from 'dayjs';\nimport dialerMachine, { checkTransition } from './dialerMachine';\n\nconst initialState = {\n activityId: null,\n callData: null,\n connectedContact: null,\n currentAnswers: [],\n currentState: dialerMachine.initial,\n disabledPatchThrough: [],\n loading: false,\n reportData: null,\n sessionStartTime: null,\n totalCalls: 0,\n volunteerPhone: '',\n voter_call_id: null,\n waitTime: 0,\n};\n\nconst dialer = createSlice({\n initialState,\n name: 'dialer',\n reducers: {\n callComplete: (state, action) => {\n return {\n ...state,\n connectedContact: null,\n currentAnswers: [],\n disabledPatchThrough: [],\n totalCalls: state.totalCalls + 1,\n voter_call_id: null,\n };\n },\n\n init: () => initialState,\n\n machineTransition: (state, action) => {\n const machineState = dialerMachine.transition(state.currentState, { type: null });\n const nextState = dialerMachine.transition(state.currentState, { type: action.payload });\n checkTransition(state, action, machineState);\n return {\n ...state,\n currentState: nextState?.value,\n };\n },\n\n reportUpdated: (state, action) => ({\n ...state,\n reportData: action.payload,\n }),\n\n setActivityId: (state, action) => ({ ...state, activityId: action.payload }),\n\n setCallData: (state, action) => ({ ...state, callData: action.payload }),\n\n setCurrentAnswers: (state, action) => ({ ...state, currentAnswers: action.payload }),\n\n setDialerLoading: (state, action) => ({ ...state, loading: action.payload }),\n\n setDisabledPatchThrough: (state, action) => ({\n ...state,\n disabledPatchThrough: action.payload,\n }),\n\n setVolunteerPhone: (state, action) => ({ ...state, volunteerPhone: action.payload }),\n\n setWaitTime: (state, action) => ({ ...state, waitTime: action.payload }),\n\n volunteerConnected: state => ({\n ...state,\n sessionStartTime: state.sessionStartTime ? state.sessionStartTime : dayjs(),\n }),\n\n volunteerReconnected: state => {\n return {\n ...state,\n connectedContact: null,\n currentAnswers: [],\n voter_call_id: null,\n };\n },\n\n voterJoined: (state, action) => ({\n ...state,\n connectedContact: action.payload,\n voter_call_id: action.payload?.voter_voice_call_id,\n }),\n },\n});\n\nexport const {\n init,\n callComplete,\n machineTransition,\n setActivityId,\n setDialerLoading,\n setDisabledPatchThrough,\n setCallData,\n setCurrentAnswers,\n setCurrentState,\n setSurveyComplete,\n setVolunteerConnected,\n setVolunteerPhone,\n setWaitTime,\n volunteerConnected,\n volunteerReconnected,\n voterJoined,\n reportUpdated,\n} = dialer.actions;\n\nexport default dialer.reducer;\n","import { createSlice } from '@reduxjs/toolkit';\n\nconst initialState = {\n joinedCampaigns: [],\n lastCampaignId: null,\n loading: true,\n selectedCampaign: null,\n};\n\nconst oneCampaign = createSlice({\n initialState,\n name: 'oneCampaign',\n reducers: {\n init: () => initialState,\n\n removeSelectedCampaign: state => {\n state.selectedCampaign = null;\n },\n\n setCampaign: (state, action) => {\n state.selectedCampaign = action.payload;\n },\n\n setJoinedCampaigns: (state, action) => {\n state.joinedCampaigns = action.payload;\n },\n\n setLastCampaignId: (state, action) => {\n state.lastCampaignId = action.payload;\n },\n\n setLoading: (state, action) => {\n state.loading = action.payload;\n },\n },\n});\n\nexport const {\n init,\n removeSelectedCampaign,\n setCampaign,\n setJoinedCampaigns,\n setLoading,\n setLastCampaignId,\n} = oneCampaign.actions;\n\nexport default oneCampaign.reducer;\n","const ContactRegistrationStatusTypes = {\n DIFFERENT_ADDRESS: 'Different Address',\n REFERRAL_LINK: 'Referral Link',\n REGISTERED: 'Registered',\n UNABLE_TO_VOTE: 'Unable to Vote',\n UNCONFIRMED: 'Unconfirmed',\n UNREGISTERED: 'Unregistered',\n};\n\nexport default ContactRegistrationStatusTypes;\n","import { createSlice } from '@reduxjs/toolkit';\nimport dayjs from 'dayjs';\nimport { Cookies } from 'react-cookie';\n\nimport Status from '@web/constants/contactRegistrationStatusTypes';\n\nconst initialState = {\n contactFormResult: {},\n formValues: null,\n friendLookUpResult: {},\n hasStateId: null,\n isCheckedVoterRegistration: false,\n isRegistrationRecheck: false,\n selectedVoter: {},\n};\n\nconst getDateValue = date => {\n if (date) {\n return dayjs(date).format('MM/DD/YYYY');\n }\n return '';\n};\n\nconst voterRegistration = createSlice({\n initialState,\n name: 'voterRegistration',\n reducers: {\n init: () => initialState,\n setContactFormResult: (state, action) => {\n const activity = action.payload.activity;\n const contact = action.payload.contact;\n\n const cookies = new Cookies(null, { path: '/' });\n const fanOutCookies = cookies.get('fan_out_auth');\n\n // fan out pseudo auth flow\n if (activity?.campaign?.fan_out_registration_enabled) {\n const prevContact = JSON.parse(localStorage.getItem('fan_out_contact'));\n const activities = JSON.parse(localStorage.getItem('fan_out_contact_activities') || '[]');\n\n // find current activity in cookies\n const restoredActivity = fanOutCookies?.[0]?.activities?.find(\n a =>\n // convert activity_id and campaign_id to number for correct comparison\n activity.id === Number(a.activity_id) && activity.campaign.id === Number(a.campaign_id),\n );\n\n // remove data if prev phone number exist and changed\n const newContact = !!prevContact?.phone && prevContact?.phone !== contact?.phone;\n\n const contactToStore = fanOutCookies\n ? // always use fan out cookies if they exist\n {\n ...contact,\n referral_link: restoredActivity?.referral_link || contact.referral_link || null,\n registration_status: restoredActivity?.registration_status || Status.UNCONFIRMED,\n }\n : newContact\n ? // use current contact if it's a new one\n contact\n : // use prev contact if it's the same contact and just update the referral link in another activity\n contact?.registration_status === Status.REFERRAL_LINK\n ? prevContact\n ? { ...prevContact, referral_link: contact?.referral_link }\n : contact\n : contact;\n\n if (newContact) {\n localStorage.setItem('fan_out_contact_activities', JSON.stringify([]));\n } else {\n const registrationStatus =\n contact?.registration_status === Status.REGISTERED ||\n contact?.registration_status === Status.UNREGISTERED\n ? contact?.registration_status\n : undefined;\n\n let newActivities;\n\n // add new activity\n if (\n !activities.some(a => activity.id === a.id && activity.campaign.id === a.campaign.id)\n ) {\n newActivities = [\n ...activities,\n {\n ...activity,\n referral_link: contact?.referral_link,\n registration_status: registrationStatus,\n },\n ];\n // update existing one\n } else {\n newActivities = activities.map(a => {\n if (activity.id === a.id && activity.campaign.id === a.campaign.id) {\n return {\n ...a,\n referral_link: contact?.referral_link,\n registration_status: registrationStatus,\n };\n }\n return a;\n });\n }\n localStorage.setItem('fan_out_contact_activities', JSON.stringify(newActivities));\n }\n\n localStorage.setItem('fan_out_contact', JSON.stringify(contactToStore));\n\n return { ...state, contactFormResult: contactToStore };\n }\n // save contact to local storage for common VR flow & headcount\n else {\n // save contact to local storage\n if (contact && Object.keys(contact).length !== 0) {\n // save data that needs for forms\n const vrContact = {\n address: contact.address || '',\n city: contact.city || '',\n county_name: contact.county_name,\n date_of_birth: getDateValue(contact.date_of_birth) || null,\n email: contact.email || '',\n first_name: contact.first_name || '',\n last_name: contact.last_name || '',\n phone: contact.phone || '',\n state_abbrev: contact.state_abbrev || '',\n stateId: contact.stateId || null,\n unit_number: contact.unit_number || '',\n zip_code: contact.zip_code || '',\n };\n localStorage.setItem('vr_and_form_contact', JSON.stringify(vrContact));\n }\n }\n\n return { ...state, contactFormResult: action.payload.contact };\n },\n\n // Set form values to use them to prefill contact form when user click \"Search again\"\n // Note: we can't use contactFormResult because it returns different data then user filled in form\n setFormValues: (state, action) => {\n const contact = action.payload;\n return {\n ...state,\n formValues: {\n address: contact.address || '',\n address2: contact.address2 || '',\n city: contact.city || '',\n county_name: contact.countyName,\n date_of_birth: getDateValue(contact.date_of_birth) || null,\n email: contact.email || '',\n first_name: contact.firstName || '',\n last_name: contact.lastName || '',\n phone: contact.phone || '',\n state_abbrev: contact.stateAbbrev || '',\n stateId: contact.stateId || null,\n unit_number: contact.unitNumber || '',\n zip_code: contact.zipCode || '',\n },\n };\n },\n\n setFriendLookUpResult: (state, action) => ({ ...state, friendLookUpResult: action.payload }),\n\n setHasStateId: (state, action) => ({ ...state, hasStateId: action.payload }),\n\n setIsCheckedVoterRegistration: (state, action) => ({\n ...state,\n isCheckedVoterRegistration: action.payload,\n }),\n\n setIsRegistrationRecheck: (state, action) => ({\n ...state,\n isRegistrationRecheck: action.payload,\n }),\n\n setSelectedVoter: (state, action) => ({ ...state, selectedVoter: action.payload }),\n\n setStateIdWithAddressForm: (state, action) => ({\n ...state,\n contactFormResult: action.payload.contact,\n hasStateId: action.payload.hasStateId,\n selectedVoter: action.payload.voter,\n }),\n },\n});\n\nexport const {\n init,\n setContactFormResult,\n setFormValues,\n setFriendLookUpResult,\n setIsCheckedVoterRegistration,\n setIsRegistrationRecheck,\n setHasStateId,\n setSelectedVoter,\n setStateIdWithAddressForm,\n} = voterRegistration.actions;\n\nexport default voterRegistration.reducer;\n","import { configureStore, getDefaultMiddleware } from '@reduxjs/toolkit';\nimport { combineReducers } from 'redux';\n\n// Reducers\nimport dialer from './dialerReducer';\nimport oneCampaign from './oneCampaign';\nimport voterRegistration from './voterRegistration';\n\nconst appReducer = combineReducers({\n dialer,\n oneCampaign,\n voterRegistration,\n});\n\nconst rootReducer = (state, action) => {\n // MTS - This can be used if an auth reducer is added in the future\n // // Reset state when logout is dipatched\n // if (action.type === 'auth/logout') {\n // const initialState = appReducer(undefined, action);\n // return initialState;\n // }\n\n return appReducer(state, action);\n};\n\nconst store = configureStore({\n devTools: {\n name: `Impactive Web`,\n },\n middleware: [\n ...getDefaultMiddleware({\n immutableCheck: false,\n serializableCheck: false,\n }),\n ],\n reducer: rootReducer,\n});\n\nexport default store;\n","const routes = {\n activities: '/api/v2/client/campaigns/:campaign_id/activities',\n activity_scripts: '/api/v2/client/campaigns/:campaign_id/activities/:activity_id/scripts',\n auth: '/api/v2/users',\n base: '/api/v2/client',\n campaigns: '/api/v2/client/campaigns',\n campaigns_and_topics: '/api/v2/client/campaigns_and_topics', // NOTE: This endpoint is only used for Explore tab/Leaderboard case now\n contact_lists: '/api/v2/client/contact_lists',\n contacts: '/api/v2/client/contacts',\n general_activities: '/api/v2/client/activities',\n search: '/api/v2/client/search',\n tags: '/api/v2/client/tags',\n teams: '/api/v2/client/teams',\n user: '/api/v2/client/user',\n user_activities: '/api/v2/client/user/activities',\n};\n\nexport default routes;\n","import axios from 'axios';\nimport routes from './routes';\n\nconst { activities: route, general_activities } = routes;\n\nconst activityRoutes = {\n getActivityGoals: async ({ campaignSlug, activitySlug }) => {\n const prefix = route.replace(':campaign_id', campaignSlug);\n return axios.get(`${prefix}/${activitySlug}/goals`);\n },\n\n getP2PUsersLeaderboard: async ({ campaignSlug, activitySlug, page = 1, perPage = 10 }) =>\n axios.get(\n `/api/v2/campaigns/${campaignSlug}/activities/${activitySlug}/p2p_texting_leaderboard`,\n { params: { page, per_page: perPage } },\n ),\n\n getPublicActivity: async ({ campaignSlug, activityId }) => {\n const prefix = route.replace(':campaign_id', campaignSlug);\n return axios.get(`${prefix}/${activityId}/show`);\n },\n\n getUploadFileUrl: async (contentType, objectName) => {\n return axios.get(`/api/v2/client/activities/upload_file.json`, {\n params: { contentType, objectName, uploadType: 'file' },\n });\n },\n\n getVoterRegistrationContactLeaderboard: async ({\n campaignSlug,\n activitySlug,\n page = 1,\n perPage = 10,\n }) =>\n axios.get(\n `/api/v2/campaigns/${campaignSlug}/activities/${activitySlug}/contact_referrals_leaderboard`,\n { params: { page, per_page: perPage } },\n ),\n\n getVoterRegistrationTeamLeaderboard: async ({ campaignSlug, activitySlug, page, perPage }) =>\n axios.get(\n `/api/v2/campaigns/${campaignSlug}/activities/${activitySlug}/team_referrals_leaderboard`,\n { params: { page, per_page: perPage } },\n ),\n\n submitSurveyActivityForm: async ({\n formSlug,\n campaignSlug,\n referralHash,\n surveyFormData,\n questionAnswers,\n autoOpenLink,\n }) =>\n axios.post(`${routes.campaigns}/${campaignSlug}/surveys/${formSlug}/submit`, {\n auto_open_link: autoOpenLink,\n question_answers: questionAnswers,\n referral_hash: referralHash,\n survey_activity_form_submission: {\n ...surveyFormData,\n },\n }),\n\n trackExternalLinkClick: async ({ campaignId, activitySlug, activityId, contactId, url }) =>\n axios.post(`${general_activities}/${activityId}/track_external_link_click`, {\n campaign_id: campaignId,\n contact_id: contactId,\n id: activitySlug,\n url,\n }),\n};\n\nexport default activityRoutes;\n","import axios from 'axios';\nimport routes from './routes';\n\nconst onSuccess = ({ data, headers }) => {\n const { authorization: token } = headers;\n const { data: user } = data;\n return {\n token,\n user,\n };\n};\n\nconst sendMagicLinkEmail = (email, destination, campaign_slug = null) => {\n return axios.post(`/api/v2/passwordless_session`, {\n user: { campaign_slug, destination, email },\n });\n};\n\nconst verifyMagicLink = token => {\n return axios.post(`/api/v2/passwordless_session/claim`, { token: token });\n};\n\nconst signIn = async (email, password, provider) => {\n return axios\n .post(`${routes.auth}/sign_in`, { user: { email, password, provider } })\n .then(onSuccess);\n};\n\nconst signInWithGoogle = async (email, accessToken, googleId, locale = 'en') => {\n return axios\n .post(`${routes.auth}/sign_in`, {\n user: {\n email,\n google_access_token: accessToken,\n google_id: googleId,\n locale,\n provider: 'google',\n },\n })\n .then(onSuccess);\n};\n\nconst signUp = async (email, password, provider) => {\n return axios.post(`${routes.auth}`, { user: { email, password, provider } }).then(onSuccess);\n};\n\nconst signOut = async () => {\n return axios.delete(`/api/v2/users/sign_out`);\n};\n\nconst deleteAccount = async userId => {\n return axios.delete(`/api/v2/client/users/${userId}/confirm_account_deletion`);\n};\n\nconst auth = {\n deleteAccount,\n sendMagicLinkEmail,\n signIn,\n signInWithGoogle,\n signOut,\n signUp,\n verifyMagicLink,\n};\n\nexport default auth;\n","import axios from 'axios';\nimport routes from './routes';\n\nconst { campaigns: route, contacts } = routes;\n\nconst campaign = {\n confirmMyAddress: async ({ campaign_id, id, address_info, h }) => {\n return axios.post(`${contacts}/${id}/confirm_address`, {\n campaign_id: campaign_id,\n h,\n supplied_voting_form: address_info,\n });\n },\n confirmMyRecord: async ({\n campaign_id,\n contact_id,\n contact_referral_id,\n user_referral_id,\n voter,\n opt_in,\n email,\n phone,\n h,\n first_name,\n last_name,\n }) => {\n return axios.post(`${contacts}/confirm_my_record`, {\n campaign_id,\n contact_id,\n contact_referral_id,\n email,\n first_name,\n h,\n last_name,\n opt_in,\n phone,\n user_referral_id,\n voter,\n });\n },\n\n confirmUnregistered: async ({\n campaign_id,\n contact_id,\n contact_referral_id,\n user_referral_id,\n opt_in,\n email,\n phone,\n h,\n first_name,\n last_name,\n registration_status,\n }) => {\n return axios.post(`${contacts}/confirm_unregistered`, {\n campaign_id,\n contact_id,\n contact_referral_id,\n email,\n first_name,\n h,\n last_name,\n opt_in,\n phone,\n registration_status,\n user_referral_id,\n });\n },\n\n findCampaign: async code => {\n return axios.get(`/api/v2/client/campaigns/find_by_code?join_code=${code}`);\n },\n\n gaRegister: async ({ campaign_slug, contact_path, phone }) => {\n return axios.post(`${route}/${campaign_slug}/activities/ga_register`, { contact_path, phone });\n },\n\n getActivityScripts: async (campaign_id, activity_id, params = {}) => {\n return axios.get(`${route}/${campaign_id}/activities/${activity_id}/scripts`, {\n params: { page: 1, per_page: 100, ...params },\n });\n },\n\n getCampaign: async ({ id }) => {\n return axios.get(`${route}/${id}`);\n },\n\n getCampaignActivities: async ({ id, page, perPage, ...rest }, axiosHeaders) => {\n return axios.get(`${route}/${id}/activities`, {\n params: { key: 'activities', page, per_page: perPage || 20, ...rest },\n ...axiosHeaders,\n });\n },\n\n getCampaignLeaderboard: async ({ id, per_page = 30, page = 1, ...rest }, axiosHeaders) => {\n return axios.get(`${route}/${id}/leaderboard`, {\n params: {\n page,\n per_page,\n ...rest,\n },\n ...axiosHeaders,\n });\n },\n\n getCategories: async () => axios.get('/api/v2/client/categories'),\n\n getCategoryCampaigns: async category_id => {\n return axios.get(`/api/v2/client/categories/${category_id}/campaigns/`);\n },\n\n getCauses: async () => axios.get('/api/v2/client/causes'),\n\n getMyRecord: async ({ id, h }) => {\n return axios.get(`${contacts}/${id}/my_record`, { params: { h: h } });\n },\n\n getPublicCampaign: async ({ id }) => {\n return axios.get(`${route}/${id}/public_show`);\n },\n\n getScripts: async message_thread_id => {\n return axios.get(`/api/v2/client/message_threads/${message_thread_id}/scripts`, {\n params: { page: 1, per_page: 50 },\n });\n },\n\n getStateInfo: async ({ state_abbrev }) => {\n return axios.post(`${contacts}/voting_info`, { state_abbrev: state_abbrev });\n },\n\n getUserContactListContacts: async ({ id, per_page = 100, ...rest } = {}, axiosHeaders) => {\n return axios.get(`/api/v2/client/activities/${id}/contact_list_contacts`, {\n params: { per_page, ...rest },\n ...axiosHeaders,\n });\n },\n\n submitOnboardingReport: async ({ campaign_id }, user_report) => {\n return axios.post(\n `/api/v2/client/campaigns/${campaign_id}/user_reports/submit_onboarding_report`,\n {\n user_report,\n },\n );\n },\n\n submitPledge: async ({\n campaign_id,\n contact_id,\n contact_referral_id,\n user_referral_id,\n voter,\n opt_in,\n email,\n phone,\n h,\n first_name,\n last_name,\n state_abbrev,\n }) => {\n return axios.post(`${contacts}/submit_pledge`, {\n campaign_id,\n contact_id,\n contact_referral_id,\n email,\n first_name,\n h,\n last_name,\n opt_in,\n phone,\n state_abbrev,\n user_referral_id,\n voter,\n });\n },\n};\n\nexport default campaign;\n","import axios from 'axios';\nimport routes from './routes';\n\nconst { campaigns_and_topics: route } = routes;\n\nconst campaignsAndTopics = {\n getCampaignsTopics: async ({ page, query }, axiosHeaders) => {\n return axios.get(route, {\n params: { key: 'campaignsTopics', page, per_page: 20, query },\n ...axiosHeaders,\n });\n },\n};\n\nexport default campaignsAndTopics;\n","import axios from 'axios';\n\nconst optInForms = {\n getFormPublic: async ({ campaign_id, form_id, search }) => {\n return axios.get(`/api/v2/campaigns/${campaign_id}/opt_in_forms/${form_id}/public${search}`);\n },\n};\n\nexport default optInForms;\n","import axios from 'axios';\n\nconst route = '/api/v2/client/fan_out';\n\nconst fanOutRoutes = {\n getAllSweepstakes: async ({ phone, campaign_id, ...res }) => {\n return axios.get(`${route}/active_sweepstakes`, {\n params: { campaign_id, phone, ...res },\n });\n },\n\n getMyStats: async ({ phone, activity_id, campaign_id, ...res }) => {\n return axios.get(`${route}/my_stats`, {\n params: { activity_id, campaign_id, phone, ...res },\n });\n },\n\n getRecruits: async ({ phone, campaign_id, ...res }) => {\n return axios.get(`${route}/recruits`, {\n params: { campaign_id, phone, ...res },\n });\n },\n\n getVotingPlanReferralLink: async ({ campaign_id, phone, ...res }) => {\n return axios.get(`${route}/voting_plan_activity_referral_link`, {\n params: { campaign_id, phone, ...res },\n });\n },\n\n incrementPoints: async ({\n activity_id,\n campaign_id,\n contact_id,\n referral_hash,\n phone,\n email,\n ...res\n }) => {\n return axios.post(`${route}/increment_points`, {\n activity_id,\n campaign_id,\n contact_id,\n email,\n phone,\n referral_hash,\n ...res,\n });\n },\n\n sendAuthEmail: async ({\n phone,\n email,\n activity_slug,\n campaign_slug,\n activity_id,\n campaign_id,\n referral_link,\n registration_status,\n ...res\n }) => {\n return axios.post(`${route}/send_authentication_email`, {\n activity_id,\n activity_slug,\n campaign_id,\n campaign_slug,\n email,\n phone,\n referral_link,\n registration_status,\n ...res,\n });\n },\n\n validatePhoneAndEmail: async ({ phone, email, campaign_id, ...res }) => {\n return axios.get(`${route}/validate_phone_and_email`, {\n params: {\n campaign_id,\n email,\n phone,\n ...res,\n },\n });\n },\n\n validateVoterRegistration: async ({ phone, email, campaign_id, referral_hash, ...res }) => {\n return axios.get(`${route}/validate_voter_registration_submitted`, {\n params: {\n campaign_id,\n email,\n phone,\n referral_hash,\n ...res,\n },\n });\n },\n};\n\nexport default fanOutRoutes;\n","import axios from 'axios';\nimport routes from './routes';\n\nconst { search: route } = routes;\n\nconst search = {\n searchCampaignsAndActivities: async ({ page, query, zip_code }, axiosHeaders) => {\n return axios.get(route, {\n params: { page, per_page: 20, term: query, zip_code },\n ...axiosHeaders,\n });\n },\n};\n\nexport default search;\n","import axios from 'axios';\nimport routes from './routes';\nconst { teams: route } = routes;\n\nconst teams = {\n getTeam: async ({ id, filters }) => {\n return axios.get(`${route}/${id}`, {\n params: {\n ...filters,\n },\n });\n },\n\n getTeamBySlug: async ({ slug }) => {\n return axios.get(`${route}/${slug}`);\n },\n\n getTeamMembers: async ({ id, per_page = 30, page = 1, ...rest }, axiosHeaders) => {\n return axios.get(`${route}/${id}/members`, {\n params: {\n page,\n per_page,\n ...rest,\n },\n ...axiosHeaders,\n });\n },\n\n joinTeam: async ({ id }) => {\n return axios.post(`${route}/${id}/join`);\n },\n\n joinTeamByCode: async code => {\n return axios.post(`${route}/join_by_code`, {\n join_code: code,\n });\n },\n\n leaveTeam: async ({ id }) => {\n return axios.post(`${route}/${id}/leave`);\n },\n};\n\nexport default teams;\n","import axios from 'axios';\nimport routes from './routes';\n\nconst {\n campaigns: campaigns_route,\n user_activities: user_activities_route,\n user: user_route,\n} = routes;\n\nconst user = {\n getProfile: async () => {\n return axios.get(user_route);\n },\n getPublicActivity: async (campaignSlug, activitySlug) => {\n return axios.get(`${campaigns_route}/${campaignSlug}/activities/${activitySlug}/show`);\n },\n getTeams: async () => {\n return axios.get(`${user_route}/teams`);\n },\n getUserActivities: async ({ page, perPage, ...rest }, axiosHeaders) => {\n return axios.get(user_activities_route, {\n params: { key: 'activities', page, per_page: perPage || 20, ...rest },\n ...axiosHeaders,\n });\n },\n\n getUserActivity: async id => {\n return axios.get(`${user_activities_route}/${id}`);\n },\n inspect: async () => {\n return axios.get(`${user_route}/inspect`);\n },\n lookupUserActivity: async (campaignSlug, activitySlug) => {\n return axios.get(\n `${routes.campaigns}/${campaignSlug}/activities/${activitySlug}/my_user_activity`,\n );\n },\n\n lookupUserActivityManual: ({ campaign_slug, activity_id, auth_token, force_create = false }) => {\n // track('SIGN_UP_THROUGH_ACTIVITY_PAGE');\n return {\n headers: { Authorization: auth_token },\n method: 'get',\n url: `${user_route}/campaigns/${campaign_slug}/activities/${activity_id}?force_create=${force_create}`,\n };\n },\n\n unlockAccount: async () => {\n return axios.post(`${user_route}/unlock`);\n },\n\n updateProfile: async ({\n firstName,\n lastName,\n teamName,\n phone = null,\n zipCode = null,\n locale = null,\n lockedCampaignId = null,\n referralHash = null,\n profileUrl,\n }) => {\n return axios.put(user_route, {\n user: {\n first_name: firstName,\n last_name: lastName,\n phone,\n profile_url: profileUrl,\n supplied_zip_code: zipCode,\n team_name: teamName,\n // add locale param only if supplied\n ...(locale && { locale }),\n // add referral_id param only if supplied\n ...(referralHash && { referral_hash: referralHash }),\n // add locked campaign id param only if supplied\n ...(lockedCampaignId && {\n locked_campaign_id: lockedCampaignId,\n onboarded_campaign_id: lockedCampaignId,\n }),\n },\n });\n },\n\n updateProfileOptions: ({ first_name, last_name, locale, zip, auth_token, onboarding_viewed }) => {\n return {\n data: {\n user: {\n first_name,\n last_name,\n locale,\n onboarding_viewed,\n supplied_zip_code: zip,\n },\n },\n headers: { Authorization: auth_token },\n method: 'put',\n url: '/api/v2/client/user',\n };\n },\n\n updateUserActivity: async (id, body) => {\n return axios.put(`${user_activities_route}/${id}`, { user_activity: body });\n },\n\n updateUserLastCampaignId: async ({ lastCampaignId }) =>\n axios.put(user_route, {\n user: {\n last_campaign_id: lastCampaignId,\n },\n }),\n\n userActivityAddPerform: async userActivityId => {\n return axios.post(`${user_activities_route}/${userActivityId}/add_perform`, {});\n },\n\n userActivityTrackClick: async userActivityId => {\n return axios.post(`${user_activities_route}/${userActivityId}/track_click`, {});\n },\n};\n\nexport default user;\n","import axios from 'axios';\n\nconst userReport = {\n findOrCreateReport: async ({ campaign_id, activity_id, contact_id = null }, user_report) => {\n return axios.post(`/api/v2/client/campaigns/${campaign_id}/user_reports/find_or_create`, {\n activity_id,\n contact_id,\n user_report,\n });\n },\n\n getBlankReport: async ({ campaign_id, activity_id }) => {\n return axios.get(\n `/api/v2/client/campaigns/${campaign_id}/user_reports/blank_report?activity_id=${activity_id}`,\n );\n },\n\n update: async ({ campaign_id, report_id }, user_report) => {\n return axios.put(`/api/v2/client/campaigns/${campaign_id}/user_reports/${report_id}`, {\n user_report,\n });\n },\n\n updateOrCreateReport: async ({ campaign_id, activity_id }, user_report) => {\n return axios.post(`/api/v2/client/campaigns/${campaign_id}/user_reports/update_or_create`, {\n activity_id,\n user_report,\n });\n },\n};\n\nexport default userReport;\n","import amplitude from 'amplitude-js';\nimport ReactFBPixel from 'react-facebook-pixel';\nimport ReactGA from 'react-ga4';\nimport ReactSnapchatPixel from 'react-snapchat-pixel';\nimport TagManager from '@sooro-io/react-gtm-module';\n// TODO: we should have a shared fns directory for these:\nimport { dbg } from '../../admin/utils/dbg';\n\namplitude.init(process.env.AMPLITUDE_API_KEY);\n\nexport const identify = (id, options) => {\n dbg(['IDENTIFY', id, options]);\n if (id) {\n amplitude.setUserId(id);\n if (options) {\n amplitude.setUserProperties(options);\n }\n } else {\n amplitude.clearUserProperties();\n }\n};\n\nexport const track = (event, options) => {\n dbg(['TRACK', event, options]);\n if (options) {\n amplitude.logEvent(event, options);\n } else {\n amplitude.logEvent(event);\n }\n};\n\n// To prevent installing a pixel multiple times, let's track installed pixel ids\nconst activePixelIds = {};\n\nexport const trackPageViewWithDynamicIDs = ({\n fbPixelId,\n gaTrackingId,\n snapchatPixelId,\n gtmPixelId,\n}) => {\n if (fbPixelId) {\n if (!activePixelIds.fbPixelId) {\n activePixelIds.fbPixelId = fbPixelId;\n ReactFBPixel.init(fbPixelId);\n }\n if (activePixelIds.fbPixelId === fbPixelId) {\n ReactFBPixel.pageView();\n }\n }\n if (gaTrackingId) {\n if (!activePixelIds.gaTrackingId) {\n activePixelIds.gaTrackingId = gaTrackingId;\n ReactGA.initialize(gaTrackingId);\n }\n if (activePixelIds.gaTrackingId === gaTrackingId) {\n ReactGA.send({\n hitType: 'page_view',\n page: window.location.pathname + window.location.search,\n });\n }\n }\n if (snapchatPixelId) {\n if (!activePixelIds.snapchatPixelId) {\n activePixelIds.snapchatPixelId = snapchatPixelId;\n ReactSnapchatPixel.init(snapchatPixelId);\n }\n if (activePixelIds.snapchatPixelId === snapchatPixelId) {\n ReactSnapchatPixel.pageView();\n }\n }\n if (gtmPixelId) {\n if (!activePixelIds.gtmPixelId) {\n activePixelIds.gtmPixelId = gtmPixelId;\n TagManager.initialize({ gtmId: gtmPixelId });\n }\n\n if (activePixelIds.gtmPixelId === gtmPixelId) {\n TagManager.dataLayer({\n dataLayer: {\n event: 'page_view',\n label: document.title,\n path: window.location.pathname + window.location.search,\n },\n });\n }\n }\n};\n\nexport const trackEventViewWithDynamicIDs = ({\n fbPixelId,\n gaTrackingId,\n snapchatPixelId,\n actionName,\n categoryName,\n gtmPixelId,\n}) => {\n if (fbPixelId) {\n if (!activePixelIds.fbPixelId) {\n activePixelIds.fbPixelId = fbPixelId;\n ReactFBPixel.init(fbPixelId);\n }\n if (activePixelIds.fbPixelId === fbPixelId) {\n ReactFBPixel.track(actionName, { category: categoryName });\n }\n }\n if (gaTrackingId) {\n if (!activePixelIds.gaTrackingId) {\n activePixelIds.gaTrackingId = gaTrackingId;\n ReactGA.initialize(gaTrackingId);\n }\n if (activePixelIds.gaTrackingId === gaTrackingId) {\n ReactGA.send({\n hitType: actionName,\n page: window.location.pathname + window.location.search,\n title: categoryName,\n });\n }\n }\n if (snapchatPixelId) {\n if (!activePixelIds.snapchatPixelId) {\n activePixelIds.snapchatPixelId = snapchatPixelId;\n ReactSnapchatPixel.init(snapchatPixelId);\n }\n if (activePixelIds.snapchatPixelId === snapchatPixelId) {\n ReactSnapchatPixel.track(actionName, { category: categoryName });\n }\n }\n\n if (gtmPixelId) {\n if (!activePixelIds.gtmPixelId) {\n activePixelIds.gtmPixelId = gtmPixelId;\n TagManager.initialize({ gtmId: gtmPixelId });\n }\n\n if (activePixelIds.gtmPixelId === gtmPixelId) {\n TagManager.dataLayer({\n dataLayer: {\n category: categoryName,\n event: actionName,\n },\n });\n }\n }\n};\n","import axios from 'axios';\nimport { track } from '../analytics';\nimport routes from './routes';\n\nconst usersApi = {\n // ARCHIVE THREAD\n archiveThread: (threadId, archived) => {\n return axios.post(`/api/v2/client/message_threads/${threadId}/archive`, { archived });\n },\n\n bulkUpdateMessageSent: async (contact_ids, { message }) => {\n return axios.post(`/api/v2/client/contacts/messages`, {\n contact_ids,\n message,\n });\n },\n\n // Uses the normal 'Authorization' : 'Bearer TOKEN' to reset password using token returned from the sendConfirmationCode request\n changePassword: (password, token) => {\n return axios.put(\n `/api/v2/client/user`,\n {\n user: {\n password,\n password_confirmation: password,\n },\n },\n {\n headers: {\n Authorization: token,\n 'content-type': 'application/json',\n },\n },\n );\n },\n\n createNewContact: async (campaign_id, report, outreachReportId = null) => {\n return axios.post(`/api/v2/client/campaigns/${campaign_id}/new_contact`, {\n id: outreachReportId,\n outreach_report: report,\n });\n },\n\n followCampaign: async ({ campaign_id, campaign_name, campaign_slug }) => {\n track('FOLLOW_CAMPAIGN', {\n campaign_id: campaign_id,\n campaign_name: campaign_name,\n });\n return axios.post('/api/v2/client/user/campaigns/join', { campaign_slug });\n },\n\n followCampaignOptions: ({ campaign_id, auth_token, campaign_slug }) => {\n return {\n data: {\n campaign_slug,\n },\n headers: { Authorization: auth_token },\n method: 'post',\n url: '/api/v2/client/user/campaigns/join',\n };\n },\n\n // getMe\n get: async () => {\n return axios.get(`${routes.user}`);\n },\n\n getAllies: async ({ per_page = 30, page = 1, ...rest } = {}, axiosHeaders) => {\n return axios.get('/api/v2/client/users/allies', {\n params: {\n page,\n per_page,\n ...rest,\n },\n ...axiosHeaders,\n });\n },\n\n getCampaignOutreachReport: async ({\n campaign_id,\n selected_voterbase_id,\n contactable_type,\n contactable_id,\n }) => {\n return axios.get(`/api/v2/client/campaigns/${campaign_id}/new_report`, {\n contactable_id: contactable_id,\n contactable_type: contactable_type,\n selected_voterbase_id: selected_voterbase_id,\n });\n },\n\n getContacts: async ({ search = '', per_page = 30, page = 1, ...rest } = {}, axiosHeaders) => {\n return axios.get('/api/v2/client/users/contacts', {\n params: {\n contact_types: ['email'],\n page,\n per_page,\n search,\n ...rest,\n },\n ...axiosHeaders,\n });\n },\n\n getCurrentUnreadMessageThreadsCount: async campaign_id => {\n return axios.get('/api/v2/client/message_threads/current_unread_message_threads_count', {\n params: { campaign_id },\n });\n },\n\n getNeedsAttentionMessagesCount: async campaign_id => {\n return axios.get('/api/v2/client/message_threads/needs_attention_message_threads_count', {\n params: { campaign_id },\n });\n },\n\n getOutreachReport: async (campaign_id, contact_id) => {\n return axios.get(\n `/api/v2/client/campaigns/${campaign_id}/contacts/${contact_id}/outreach_report`,\n );\n },\n\n getRegistrationStep: (campaign_id, contact_id) => {\n return axios.get(`/api/v2/client/contacts/${contact_id}/registration_step`, {\n params: { campaign_id },\n });\n },\n\n getUserByReferralHash: hash => {\n return axios.get(`${routes.auth}/referrer/${hash}`);\n },\n\n getUserCampaigns: async (page, per_page) => {\n return axios.get(`${routes.user}/campaigns`, { params: { page, per_page } });\n },\n\n getUserContactMessages: async (\n { id: contact_id, per_page = 30, page = 1, ...rest } = {},\n axiosHeaders,\n ) => {\n return axios.get(`/api/v2/client/contacts/${contact_id}/messages`, {\n params: { page, per_page, ...rest },\n ...axiosHeaders,\n });\n },\n\n getUserMessages: async ({ per_page = 30, page = 1, ...rest } = {}, axiosHeaders) => {\n return axios.get('/api/v2/client/messages', {\n params: { page, per_page, ...rest },\n ...axiosHeaders,\n });\n },\n\n getUserMessageThread: async (\n { id: message_thread_id, per_page = 30, page = 1, ...rest } = {},\n axiosHeaders,\n ) => {\n return axios.get(`/api/v2/client/message_threads/${message_thread_id}`, {\n params: { page, per_page, ...rest },\n ...axiosHeaders,\n });\n },\n\n getUserMessageThreads: async ({ per_page = 30, page = 1, ...rest } = {}, axiosHeaders) => {\n return axios.get('/api/v2/client/message_threads', {\n params: { page, per_page, ...rest },\n ...axiosHeaders,\n });\n },\n\n getUserUserMessages: async (\n { id: user_id, per_page = 30, page = 1, ...rest } = {},\n axiosHeaders,\n ) => {\n return axios.get(`/api/v2/client/users/${user_id}/messages`, {\n params: { page, per_page, ...rest },\n ...axiosHeaders,\n });\n },\n\n getVoter: async (contact_id, voter_id) => {\n return axios.post(`/api/v2/client/contacts/${contact_id}/get_voter`, {\n selected_voterbase_id: voter_id,\n });\n },\n reassignAllToAdmin: async ({ userActivityId }) =>\n axios.post(`api/v2/client/user/activities/${userActivityId}/reassign_to_admin`),\n\n reassignToAdmin: async ({ messageThreadId }) =>\n axios.post(`api/v2/client/message_threads/${messageThreadId}/reassign_to_admin`),\n\n // RESET PASSWORD\n requestEmailCode: email => {\n return axios.get(`/api/v2/users/request_email_code`, { params: { email } });\n },\n\n searchVoters: async ({\n firstName,\n lastName,\n stateAbbv,\n ageRange,\n city,\n zipCode,\n email,\n phone,\n }) => {\n return axios.post(`/api/v2/client/contacts/possible_voters`, {\n age_range: ageRange,\n city: city || null, // optional\n email: undefined,\n first_name: firstName,\n last_name: lastName,\n phone: undefined,\n state: stateAbbv,\n zip: zipCode || null, // optional\n });\n },\n\n sendCanvasserMessagePublic: async (\n { campaign_id, report_id, activity_id, contact_id, user_activity_id },\n user_report,\n ) => {\n return axios.post(\n `/api/v2/client/campaigns/${campaign_id}/user_reports/${report_id}/send_canvasser_message_public`,\n { activity_id, contact_id, user_activity_id, user_report },\n );\n },\n\n sendConfirmationCode: (code, email) => {\n return axios.post(`/api/v2/client/confirmations/confirm_email`, {\n confirmation_code: code,\n email,\n });\n },\n\n sendInvite: async contact_id => {\n return axios.post(`/api/v2/client/contacts/${contact_id}/send_invite`);\n },\n\n setOnboardingViewed: async () => {\n return axios.put('/api/v2/client/user', { user: { onboarding_viewed: true } });\n },\n\n setVoter: async (contact_id, voter_id) => {\n return axios.post(`/api/v2/client/contacts/${contact_id}/set_voter`, {\n selected_voterbase_id: voter_id,\n });\n },\n\n twilioBatchSend: async (user_activity_id, batchSendInfo) => {\n return axios.post(`/api/v2/client/contacts/batch/messages/twilio`, {\n batch_info: batchSendInfo,\n user_activity_id: user_activity_id,\n });\n },\n\n unfollowCampaign: async ({ campaign_id, campaign_name, campaign_slug }) => {\n track('UNFOLLOW_CAMPAIGN', {\n campaign_id: campaign_id,\n campaign_name: campaign_name,\n });\n return axios.post('/api/v2/client/user/campaigns/leave', { campaign_slug });\n },\n\n updateCompletion: async user_activity_id => {\n return axios.put(`/api/v2/client/user/activities/${user_activity_id}`, {\n user_activity: { completed: true },\n });\n },\n\n updateContact: async (contact_id, contact, h) => {\n return axios.put(`/api/v2/client/contacts/${contact_id}`, { contact, h });\n },\n\n // MTS - In the app there are deselect ids and select all properties. I can't seem\n // to figure out how to use them or why they are needed.\n updateContactApprovals: async (selected_contact_ids, deselected_contact_ids, select_all) => {\n return axios.post('/api/v2/client/contacts/update_approvals', {\n contact_ids:\n selected_contact_ids && selected_contact_ids.length > 0 ? selected_contact_ids : undefined,\n deselected_contact_ids: deselected_contact_ids || undefined,\n select_all: select_all || undefined,\n type: 'email',\n });\n },\n\n updateListMessageSent: async (\n contact_id,\n message_type,\n user_activity_id,\n message,\n activity_script_id,\n ) => {\n return axios.post(`/api/v2/client/contacts/${contact_id}/messages/${message_type}`, {\n activity_script_id: activity_script_id,\n message: message,\n user_activity_id: user_activity_id,\n });\n },\n updateMe: async body => {\n return axios.put('/api/v2/client/user', { user: body });\n },\n\n updateMessageSent: async (contact_id, body) => {\n return axios.post(`/api/v2/client/contacts/${contact_id}/messages`, body);\n },\n\n updateOutreachReport: async ({ campaign_id, contact_id, tags, custom_fields }) => {\n return axios.post(\n `/api/v2/client/campaigns/${campaign_id}/contacts/${contact_id}/outreach_report`,\n {\n campaign_id: campaign_id,\n contact_id: contact_id,\n outreach_report: { selections: { custom_fields, tags } },\n },\n );\n },\n\n updateUserMessageSent: async (user_id, body) => {\n return axios.post(`/api/v2/client/users/${user_id}/messages/`, body);\n },\n\n uploadEmailContacts: async contacts => {\n return axios.post('/api/v2/client/contacts/import_email_no_enrich', {\n contact_type: 'email',\n contacts,\n });\n },\n\n uploadPhoneContacts: async contacts => {\n return axios.post('/api/v2/client/contacts/import_phone_no_enrich', {\n contact_type: 'phone',\n contacts,\n });\n },\n};\n\nexport default usersApi;\n","import { createContext } from 'react';\n\n/**\n * AuthContext allows access to token and auth function which deals with\n * updating the token, or its removal (which results in logging user out)\n */\nconst AuthContext = createContext(null);\n\n/**\n * StateContext stores data that's common across app (causes, etc.)\n * It's separated from AuthContext to avoid unnecessary app root rendering whenever\n * any of state wide data is loaded.\n */\nconst StateContext = createContext(null);\n\n// eslint-disable-next-line import/prefer-default-export\nexport { AuthContext, StateContext };\n","import { CheckOutlined, PlusOutlined } from '@ant-design/icons';\nimport { Button } from 'antd';\nimport PropTypes from 'prop-types';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link, useHistory, useLocation } from 'react-router-dom';\nimport styled from 'styled-components';\nimport { campaigns, users } from 'web/services/api';\nimport { AuthContext } from 'web/utils/context';\nimport { getLocalizedOnboardingData } from 'web/utils/other';\nimport { fmtScore, replaceDefaultCampaignImage } from 'web/utils/string';\nimport { media } from '../../styles/theme';\nimport Loading from '../common/Loading';\nimport { setJoinedCampaigns } from '@web/reducers/oneCampaign';\nimport { useDispatch, useSelector } from 'react-redux';\n\nconst Container = styled.div`\n color: ${({ theme }) => theme.colors.trueBlack};\n font-family: ${({ theme }) => theme.fonts.bold};\n padding: 30px;\n max-width: 300px;\n display: flex;\n flex-direction: column;\n align-items: center;\n border-top: 3px solid ${({ theme }) => theme.colors.borderGray};\n\n ${media.ns} {\n justify-content: normal;\n align-items: start;\n border-left: 3px solid ${({ theme }) => theme.colors.borderGray};\n border-top: none;\n }\n`;\n\nconst Picture = styled.img`\n box-shadow: 0px 2px 2px rgba(128, 126, 121, 0.1);\n border-radius: 100%;\n height: 80px;\n width: 80px;\n margin-top: 15px;\n margin-bottom: 15px;\n ${media.ns} {\n height: 176px;\n width: 176px;\n margin-top: 29px;\n margin-bottom: 25px;\n }\n`;\n\nconst MetricSection = styled.div`\n display: flex;\n padding-bottom: 32px;\n`;\n\nconst MetricWrapper = styled.div`\n padding-right: 14px;\n text-align: center;\n`;\n\nconst Metric = styled.div`\n font-family: ${({ theme }) => theme.fonts.light};\n font-size: 24px;\n line-height: 12px;\n padding-bottom: 8px;\n`;\n\nconst MetricDescription = styled.div`\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 10px;\n line-height: 12px;\n\n text-transform: uppercase;\n`;\n\nconst PostedBy = styled.div`\n font-size: 12px;\n text-transform: uppercase;\n padding-bottom: 12px;\n`;\n\nconst SectionTitle = styled.div`\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 20px;\n padding-bottom: 24px;\n`;\n\nconst IconsAndDescriptions = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n`;\n\nconst IconWithDescription = styled.div`\n margin-bottom: 17px;\n display: flex;\n align-items: center;\n`;\n\nconst Icon = styled.img`\n margin-right: 12px;\n height: 24px;\n`;\n\nconst IconDescription = styled.div`\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 12px;\n`;\n\nconst ViewCampaign = styled(Link)`\n color: ${({ theme }) => theme.colors.link};\n font-family: ${({ theme }) => theme.fonts.blackItalic};\n`;\n\nconst JoinCampaignButton = styled(Button)`\n &&& {\n margin-bottom: 18px;\n font-size: 12px;\n background-color: ${({ theme }) => theme.colors.blue};\n }\n`;\n\n/*\nIf you're logged in:\n - if you're joined it should say that and let you unjoin a campaign\n - if you're NOT joined it should give you the option to join the campaign(?)\n – unless you've joined a campaign, you can't participate in an activity\n\nIf not:\n - clicking join opens a modal to login/create an account\n */\n\nconst CampaignRightSidebar = ({ campaignId }) => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const { token } = useContext(AuthContext);\n const [campaign, setCampaign] = useState(null);\n const [loading, setLoading] = useState(true);\n const history = useHistory();\n const { pathname } = useLocation();\n\n const { selectedCampaign } = useSelector(state => state.oneCampaign);\n\n const campaignJoined =\n token && campaign && campaign.user_campaign ? campaign.user_campaign.joined : false;\n\n const loadCampaign = React.useCallback(() => {\n // if user is not logged in we use public campaign endpoint\n const getCampaign = token ? campaigns.getCampaign : campaigns.getPublicCampaign;\n\n return getCampaign({ id: campaignId }).then(({ data: { data } }) => {\n const localizedData = getLocalizedOnboardingData(data);\n\n setCampaign(localizedData);\n setLoading(false);\n });\n }, [token, campaignId, setCampaign]);\n\n useEffect(() => {\n // initially load Campaign info based on provided id or slug\n loadCampaign();\n }, [loadCampaign, token]);\n\n if (loading) {\n return (\n <>\n <div className=\"flex-row justify-content-center mt-4\">\n <Loading />\n </div>\n </>\n );\n }\n\n const handlePressJoin = async () => {\n if (!token) {\n // If user is not logged in we redirect and keep the url as a return path in localStorage to redirect back to\n localStorage.setItem('redirectAfterLogin', pathname);\n history.push(`/auth/signup/${campaign.slug}`);\n return;\n }\n\n const action = campaignJoined ? users.unfollowCampaign : users.followCampaign;\n\n await action({\n campaign_id: campaign.id,\n campaign_name: campaign.name,\n campaign_slug: campaign.slug,\n });\n\n await loadCampaign();\n\n if (selectedCampaign.id === campaign.id && campaignJoined) history.go(0);\n\n const userCampaigns = await users\n .getUserCampaigns(1, 5000)\n .then(({ data: { data: campaigns } }) => campaigns);\n\n dispatch(setJoinedCampaigns(userCampaigns));\n };\n\n const candidateName = campaign.public_short_name || campaign.name;\n const {\n url_profile_img: pictureUrl,\n highlights: attributeList,\n total_actions_completed: actionCount,\n total_allies: alliesCount,\n total_actions_performed: networkCount,\n } = campaign;\n\n const renderIconsWithDescriptions = () => {\n // change to attribute.icon_url once we have an icon url\n return attributeList.map(attribute => {\n return (\n <IconWithDescription key={attribute.title}>\n <Icon src={attribute.img_url} alt=\"test\" />\n <IconDescription>{attribute.title}</IconDescription>\n </IconWithDescription>\n );\n });\n };\n\n const renderMetricAndDescription = (metric, name) => {\n return (\n <MetricWrapper>\n <Metric>{fmtScore(metric)}</Metric>\n <MetricDescription>{name}</MetricDescription>\n </MetricWrapper>\n );\n };\n\n return (\n <Container>\n {!!replaceDefaultCampaignImage(pictureUrl) && (\n <Picture src={replaceDefaultCampaignImage(pictureUrl)} alt={candidateName} />\n )}\n\n <PostedBy>posted by</PostedBy>\n <SectionTitle>{candidateName}</SectionTitle>\n\n <MetricSection>\n {renderMetricAndDescription(alliesCount, t('campaign.allies'))}\n {renderMetricAndDescription(actionCount, t('campaign.actions'))}\n {renderMetricAndDescription(networkCount, t('campaign.network'))}\n </MetricSection>\n\n {!!attributeList && (\n <IconsAndDescriptions>{renderIconsWithDescriptions()}</IconsAndDescriptions>\n )}\n <JoinCampaignButton\n icon={campaignJoined ? <CheckOutlined /> : <PlusOutlined />}\n onClick={handlePressJoin}\n type=\"primary\"\n >\n {campaignJoined ? t('campaign.joined') : t('campaign.join')}\n </JoinCampaignButton>\n\n <ViewCampaign to={`/campaigns/${campaign.slug}`}>{t('campaign.view_campaign')}</ViewCampaign>\n </Container>\n );\n};\n\nCampaignRightSidebar.propTypes = {\n campaignId: PropTypes.number.isRequired,\n};\n\nexport default CampaignRightSidebar;\n","import { Button, message, Modal } from 'antd';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { track } from '../../services/analytics';\nimport { user } from '../../services/api';\n\n/**\n * Modal window for activities that require users to confirm their action.\n * e.g. Web activity, Share activity\n */\nconst ActivityCompletedModal = ({\n activityId,\n activityTitle,\n campaignId,\n campaignName,\n onModalClosedCallback,\n userActivityId,\n}) => {\n const { t } = useTranslation();\n const [loading, setLoading] = useState(false);\n\n const submitReport = async () => {\n setLoading(true);\n\n try {\n track('COMPLETED_ACTIVITY', {\n activity_id: activityId,\n activity_title: activityTitle,\n campaign_id: campaignId,\n campaign_name: campaignName,\n });\n await user.updateUserActivity(userActivityId, { completed: true });\n await user.userActivityAddPerform(userActivityId);\n\n message.success(t('common.submitted_successfully'));\n onModalClosedCallback({ success: true });\n } catch (err) {\n message.error(t('errors.action_failed'));\n } finally {\n setLoading(false);\n }\n };\n\n // Show confirmation modal dialog\n return (\n <Modal\n visible\n title={t('activity.confirm_action_completed')}\n maskClosable\n onCancel={onModalClosedCallback}\n footer={[\n <Button key=\"close\" onClick={onModalClosedCallback}>\n {t('common.no')}\n </Button>,\n <Button key=\"submit\" type=\"primary\" loading={loading} onClick={submitReport}>\n {t('common.yes')}\n </Button>,\n ]}\n >\n <div>{t('activity.did_you_complete')}</div>\n </Modal>\n );\n};\n\nActivityCompletedModal.propTypes = {\n activityId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n activityTitle: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n campaignActivityName: PropTypes.string.isRequired,\n campaignId: PropTypes.number.isRequired,\n campaignName: PropTypes.string.isRequired,\n onModalClosedCallback: PropTypes.func.isRequired,\n userActivityId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired, // should actually be casted to a number at some point\n};\n\nexport default ActivityCompletedModal;\n","import { message, Switch } from 'antd';\nimport TextArea from 'antd/lib/input/TextArea';\nimport { Formik } from 'formik';\nimport { Form, SubmitButton } from 'formik-antd';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport React, { Fragment, useState, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Redirect } from 'react-router-dom';\nimport styled from 'styled-components';\nimport { UserReportSchema } from '../../../admin/data/schema/shared';\nimport { track } from '../../services/analytics';\nimport { user, userReportApi } from '../../services/api';\n\nconst FormActivityContainer = styled.div`\n font-size: 14px;\n line-height: 20px;\n`;\n\nconst FormActivity = ({ campaignName, userActivity }) => {\n const { t } = useTranslation();\n\n const [redirectHome, setRedirectHome] = useState(null);\n const [userReport, setUserReport] = useState({});\n\n const { activity } = userActivity;\n const {\n starts_at,\n ends_at,\n address,\n state_abbrev,\n city,\n additional_details,\n activity_tags,\n activity_custom_fields,\n } = activity;\n\n const taggings = activity_tags.map(activity_tag => {\n return {\n tag: activity_tag.tag,\n value: false,\n };\n });\n\n const customizations = activity_custom_fields\n .filter(\n activity_custom_field => activity_custom_field.custom_field.is_user_reportable !== false,\n )\n .map(activity_custom_field => {\n return {\n custom_field: activity_custom_field.custom_field,\n value: '',\n };\n });\n\n const combinedSort = (taggings_attributes = [], customizations_attributes = []) => {\n let combinedArray = taggings_attributes.concat(customizations_attributes);\n combinedArray = _.sortBy(combinedArray, obj => {\n if (obj.tag) {\n return obj.tag.display_order ? obj.tag.display_order : 9999;\n }\n if (obj.custom_field) {\n return obj.custom_field.display_order ? obj.custom_field.display_order : 9999;\n }\n return 9999;\n });\n return combinedArray;\n };\n\n useEffect(() => {\n setUserReport({\n activity_id: userActivity.activity.id,\n campaign_id: userActivity.activity.campaign.id,\n customizations_attributes: customizations,\n reportable_id: userActivity.user.id,\n reportable_type: 'User',\n taggings_attributes: taggings,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const submitReport = async formData => {\n if (!formData) {\n return;\n }\n\n let userReportBody = {\n activity_id: userActivity.activity.id,\n campaign_id: userActivity.activity.campaign.id,\n customizations_attributes: userReport.customizations_attributes.map(c => {\n return {\n custom_field_id: c.custom_field.id,\n value: c.value,\n };\n }),\n reportable_id: userActivity.user.id,\n reportable_type: 'User',\n taggings_attributes: userReport.taggings_attributes.map(ta => {\n return {\n tag_id: ta.tag.id,\n value: ta.value,\n };\n }),\n };\n\n const userReportRes = await userReportApi\n .updateOrCreateReport(\n {\n activity_id: userActivity.activity.id,\n campaign_id: userActivity.activity.campaign.id,\n },\n userReportBody,\n )\n .catch(err => {\n onSaveError();\n return;\n });\n\n if (!userReportRes || userReportRes.status !== 200) {\n onSaveError();\n return;\n }\n\n track('COMPLETED_ACTIVITY', {\n activity_id: userActivity.activity.id,\n activity_title: userActivity.activity.title,\n campaign_id: userActivity.activity.campaign.id,\n campaign_name: userActivity.activity.campaign.name,\n });\n await user.updateUserActivity(userActivity.id, { completed: true });\n await user.userActivityAddPerform(userActivity.id);\n message.success(t('idvoters.voter.outreach_report_sent'));\n setRedirectHome(true);\n };\n\n const onSwitchToggle = (selectedSlug, selectionChange) => {\n const updatedTaggings = userReport.taggings_attributes.map(tagging => {\n if (tagging.tag.slug !== selectedSlug) {\n return tagging;\n }\n return {\n ...tagging,\n value: selectionChange,\n };\n });\n\n setUserReport({\n ...userReport,\n taggings_attributes: updatedTaggings,\n });\n };\n\n const onCustomFieldUpdate = (selectedSlug, val) => {\n const updatedFields = userReport.customizations_attributes.map(customization => {\n if (customization.custom_field.slug !== selectedSlug) {\n return customization;\n }\n return {\n ...customization,\n value: val,\n };\n });\n\n setUserReport({\n ...userReport,\n customizations_attributes: updatedFields,\n });\n };\n\n const onSaveError = () => {\n message.error(t('errors.submit_outreach_report'));\n };\n\n if (redirectHome) {\n return <Redirect push to={{ pathname: '/frontline' }} />;\n }\n\n return (\n <FormActivityContainer>\n <Fragment>\n {!!starts_at && (\n <div style={{ marginTop: 10 }}>\n <div style={{ alignItems: 'center', flexDirection: 'row' }}>\n <p>\n {t('activity.startAt')}: {moment(starts_at).format('MMMM Do, YYYY [at] HH:mm A')}\n </p>\n </div>\n </div>\n )}\n {!!ends_at && (\n <div style={{ marginTop: 10 }}>\n <div style={{ alignItems: 'center', flexDirection: 'row' }}>\n <p>\n {t('activity.endAt')}: {moment(ends_at).format('MMMM Do, YYYY [at] HH:mm A')}\n </p>\n </div>\n </div>\n )}\n {!!address && (\n <div style={{ marginBottom: 10, marginTop: 20 }}>\n <div style={{ alignItems: 'center', flexDirection: 'row' }}>\n <p>{t('activity.location')}</p>\n {!!address && <p>{address}</p>}\n {!!city && <p>{`${city}, ${state_abbrev}`}</p>}\n </div>\n </div>\n )}\n\n {!!additional_details && (\n <div style={{ marginBottom: 10, marginTop: 20 }}>\n <p>{t('activity.additional_information')}</p>\n <p style={{ marginTop: 20 }}>{additional_details}</p>\n </div>\n )}\n\n <Formik initialValues={{}} validationSchema={UserReportSchema} onSubmit={submitReport}>\n <Form>\n <div>\n {(userReport.taggings_attributes || userReport.customizations_attributes) &&\n combinedSort(\n userReport.taggings_attributes,\n userReport.customizations_attributes,\n ).map(obj => {\n if (obj.tag) {\n let tagging = obj;\n return (\n <div className=\"py-3\" key={tagging.tag.slug}>\n <span className=\"pr-3\">{tagging.tag.prompt || tagging.tag.name}</span>\n <Switch\n slug={tagging.tag.slug}\n checked={tagging.value}\n onChange={(to, e) => onSwitchToggle(tagging.tag.slug, to, e)}\n />\n </div>\n );\n } else if (obj.custom_field) {\n let customization = obj;\n return (\n <div className=\"py-2\" key={customization.custom_field.slug}>\n <div className=\"pb-2\">\n {customization.custom_field.prompt || customization.custom_field.name}\n </div>\n\n {customization.custom_field.type === 'TextField' && (\n <TextArea\n name={customization.custom_field.slug}\n value={customization.value}\n autoSize={{ minRows: 4 }}\n onChange={e => {\n onCustomFieldUpdate(customization.custom_field.slug, e.target.value);\n }}\n />\n )}\n\n {customization.custom_field.type === 'SelectionField' && (\n <div className=\"flex-row flex-wrap\">\n {customization.custom_field.available_values.map(val => (\n <div key={val} className=\"m-2\">\n <div\n className={`selection-box ${\n customization.value === val ? 'selected' : ''\n }`}\n onClick={e => {\n onCustomFieldUpdate(customization.custom_field.slug, val);\n }}\n >\n {val}\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n );\n } else {\n return null;\n }\n })}\n </div>\n\n <SubmitButton className=\"w-100\">{t('common.send_to_campaign')}</SubmitButton>\n </Form>\n </Formik>\n </Fragment>\n </FormActivityContainer>\n );\n};\n\nFormActivity.propTypes = {\n campaignName: PropTypes.string.isRequired,\n userActivity: PropTypes.object.isRequired,\n};\n\nexport default FormActivity;\n","import PropTypes from 'prop-types';\nimport React, { Fragment } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n EmailShareButton,\n EmailIcon,\n FacebookShareButton,\n FacebookIcon,\n TwitterShareButton,\n TwitterIcon,\n} from 'react-share';\nimport styled from 'styled-components';\nimport Clipboard from 'react-clipboard.js';\nimport { message as messageAlert } from 'antd';\nimport theme from '@web/styles/theme';\n\nconst LabelText = styled.div`\n align-self: center;\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 16px;\n font-weight: bold;\n justify-content: center;\n padding-right: 2em;\n`;\n\nconst LineBreak = styled.hr`\n margin: 1em 0;\n`;\n\nconst ShareInstructions = styled.div`\n color: ${({ theme }) => theme.colors.lightBlack};\n font-size: 14px;\n line-height: 20px;\n`;\n\nconst Quote = styled.div`\n padding-left: 1em;\n margin: 1em 0 1em 0;\n font-style: italic;\n font-size: 16px;\n line-height: 20px;\n`;\n\nconst CopyButton = styled.div`\n background: ${theme.colors.darkBlack};\n border: none;\n border-radius: 4px;\n cursor: pointer;\n justify-content: center;\n padding: 6px 16px;\n color: white;\n display: flex;\n align-items: center;\n margin-right: 8px;\n &:hover {\n opacity: 0.5;\n }\n`;\n\nconst ShareActivity = ({ campaignName, url, message, onShareWindowClose }) => {\n const { t } = useTranslation();\n const title = campaignName;\n\n // Invoke onShareWindowClose with delay of 2 seconds for email action\n const delayedShareWindowClose = () => setTimeout(onShareWindowClose, 2000);\n\n return (\n <Fragment>\n {message && (\n <>\n <ShareInstructions>{t('activity.share.text')}</ShareInstructions>\n <LineBreak />\n <Quote className=\"justify-content-center\">{message}</Quote>\n </>\n )}\n <LineBreak />\n <div className=\"flex-row justify-content-center\">\n <Clipboard\n component={CopyButton}\n data-clipboard-text={message}\n onClick={e => e.stopPropagation()}\n onSuccess={() => messageAlert.info(t('activity.share.message_copied_to_clipboard'))}\n >\n {t('activity.share.copy')}\n </Clipboard>\n\n <LabelText>{t('activity.share.share')}</LabelText>\n <div className=\"pointer fb-share-btn\">\n <FacebookShareButton onShareWindowClose={onShareWindowClose} url={url} quote={message}>\n <FacebookIcon round size={40} />\n </FacebookShareButton>\n </div>\n <div className=\"mx-2 pointer tw-share-btn\">\n <TwitterShareButton onShareWindowClose={onShareWindowClose} url={url} title={message}>\n <TwitterIcon round size={40} />\n </TwitterShareButton>\n </div>\n <div className=\"pointer email-share-btn\">\n <EmailShareButton\n beforeOnClick={delayedShareWindowClose}\n url={url}\n subject={title}\n body={message}\n >\n <EmailIcon round size={40} />\n </EmailShareButton>\n </div>\n </div>\n </Fragment>\n );\n};\n\nShareActivity.propTypes = {\n campaignName: PropTypes.string.isRequired,\n message: PropTypes.string,\n onShareWindowClose: PropTypes.func.isRequired,\n url: PropTypes.string.isRequired,\n};\n\nShareActivity.defaultProps = {\n message: '',\n};\n\nexport default ShareActivity;\n","import { useEffect, useState } from 'react';\n\n/**\n * Attaches internal event handler to detect window visibility changes. Returns result of `window.visible`\n *\n */\nconst useWindowVisibility = () => {\n const [state, setState] = useState(!document.hidden);\n\n const handler = () => {\n setState(!document.hidden);\n };\n\n useEffect(() => {\n window.addEventListener('visibilitychange', handler);\n\n // Cleanup\n return () => {\n window.removeEventListener('visibilitychange', handler);\n };\n });\n\n return state;\n};\n\nexport default useWindowVisibility;\n","import { bool, func, node, string } from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport useWindowVisibility from '../../hooks/useWindowVisibility';\nimport { colors } from '../../styles/theme';\n\nconst OutvoteExternalLink = styled.a`\n background: ${props =>\n props.closed ? 'linear-gradient(#ddd, #ccc)' : 'linear-gradient(#5292F2, #4187F0)'};\n border: none;\n border-radius: 4px;\n box-shadow: 0px 2px 0px 0px ${colors.boxShadow};\n cursor: pointer;\n height: 35px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n\n width: 100%;\n\n &:hover,\n &:active {\n opacity: 0.5;\n }\n`;\n\nconst WebActivity = ({ closed, children, goToUrl, onWebActivityCompleted }) => {\n const windowVisible = useWindowVisibility();\n const [navigatedAway, setNavigatedAway] = useState(false);\n\n // if user navigated away && returned back to the page -> trigger onWebActivityCompleted callback\n useEffect(() => {\n if (navigatedAway && windowVisible) {\n onWebActivityCompleted();\n setNavigatedAway(false);\n }\n }, [navigatedAway, windowVisible, onWebActivityCompleted]);\n\n return (\n <OutvoteExternalLink\n closed={closed}\n href={goToUrl}\n data-testid=\"web-activity-link\"\n onClick={() => setNavigatedAway(true)}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n {children}\n </OutvoteExternalLink>\n );\n};\n\nWebActivity.propTypes = {\n children: node,\n closed: bool.isRequired,\n goToUrl: string.isRequired,\n onWebActivityCompleted: func.isRequired,\n};\n\nWebActivity.defaultProps = {\n children: null,\n};\n\nexport default WebActivity;\n","import { Button, Progress } from 'antd';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { track } from '../../services/analytics';\nimport { user } from '../../services/api';\nimport { getButtonText, verbByType, mobileButtonTextToWeb } from '../../utils/other';\nimport { dateToAge, truncate } from '../../utils/string';\nimport ActivityCompletedModal from '../ActivityDetail/ActivityCompletedModal';\nimport FormActivity from '../ActivityDetail/FormActivity';\nimport ShareActivity from '../ActivityDetail/ShareActivity';\nimport WebActivity from '../ActivityDetail/WebActivity';\n\nconst ActionButtons = styled.div`\n display: ${({ hide }) => (hide ? 'none' : 'block')};\n flex-direction: row;\n padding-top: 1em;\n padding-bottom: 25px;\n`;\n\nconst StyledButton = styled(Button)`\n &&& {\n font-family: ${({ theme }) => theme.fonts.boldItalic};\n font-size: 16px;\n height: 44px;\n letter-spacing: 1.4px;\n :hover {\n text-decoration-color: ${({ theme }) => theme.colors.white};\n }\n ${({ $completed, disabled }) =>\n $completed &&\n !disabled &&\n `\n background-color: #949494;\n border-color: #949494;\n\n &:hover {\n background-color: #a9a9a9;\n border-color: #a9a9a9;\n }\n\n &:active {\n background-color: #808080;\n border-color: #808080;\n }\n `}\n }\n`;\n\nconst HeaderContainer = styled.div`\n display: flex;\n justify-content: space-between;\n flex-direction: row;\n margin-bottom: 14px;\n`;\n\nconst Header = styled.div``;\n\nconst HeaderTitle = styled.div`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 12px;\n text-transform: uppercase;\n padding-bottom: 10px;\n`;\n\nconst HeaderDate = styled.div`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 14px;\n letter-spacing: 0;\n opacity: 0.65;\n padding-bottom: 17px;\n`;\n\nconst BodyContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst BodyTitle = styled.div`\n color: ${({ theme }) => theme.colors.lightBlack};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 30px;\n letter-spacing: 1px;\n padding-bottom: 5px;\n`;\n\nconst Body = styled.div`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 20px;\n`;\n\nconst MediaWrapper = styled.div`\n max-width: 100%;\n width: 500px;\n height: 0;\n padding-bottom: 100%;\n position: relative;\n`;\n\nconst Media = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-image: url(${({ src }) => src});\n background-size: cover;\n background-position: center;\n`;\n\nconst StyledActivity = styled.div`\n height: 100%;\n width: 100%;\n max-width: 560px;\n padding: 30px;\n`;\n\nconst StyledProgressBar = styled(Progress)`\n width: 100%;\n margin: 1em 0;\n`;\n\n/**\n *\n * @param {bool} isFeatured - Activity pinned view\n * @param {bool} detailedView - Activity detailed view\n * @param {String} headerTitle\n * @param {object} userActivity\n * @param {bool} completed\n * @param {Activity} activity\n * @param {function} onActivityActionButtonPress - Callback function to execute when CTA was clicked\n */\nconst Activity = ({\n isFeatured,\n detailedView,\n headerTitle,\n userActivity,\n completed: initialCompleted,\n activity: {\n id: activityId,\n type: activityType,\n aasm_state,\n button_text,\n published_at,\n title: activityTitle,\n description,\n go_to_link,\n share_link,\n share_text,\n media_url: url,\n is_p2p,\n total_contacts,\n contacts_assigned,\n campaign: {\n id: campaignId,\n url_profile_img: profileUrl,\n name: campaignName = '',\n slug: campaignSlug,\n } = {},\n } = {},\n onActivityActionButtonPress,\n}) => {\n const { t } = useTranslation();\n const [completed, setCompleted] = useState(initialCompleted);\n const [activityCompletedModalVisible, setActivityCompletedModalVisible] = useState(false);\n const { id: userActivityId } = userActivity || {};\n\n const headerTitleText =\n completed && !isFeatured\n ? `${t('common.you')} ${verbByType(activityType)} ${campaignName}`\n : `${t('campaign.activity.action')} - ${headerTitle}`;\n\n const closed = aasm_state === 'closed';\n\n function getStartLink() {\n if (!activityType) return;\n\n switch (activityType) {\n case 'TestimonialActivity':\n // Takes user to testimonial page where they can upload photo/video and add a note.\n return `/activities/${userActivityId}/testimonial`;\n\n case 'TextAFriendActivity':\n // Opens up contacts page with select boxes, pick a template, edit the template, open 1 by 1 or bulk using mailto, manually confirm alert)\n // NOTE: on webapp we are emailing, not texting, so endpoint below will differ\n return `/activities/${userActivityId}/email_friends`;\n\n case 'TextAListActivity':\n // ListMessage - p2p texting action, you get the list of people, you hit send manually until all messages are sent.\n return `/activities/${userActivityId}/p2p`;\n\n case 'DialerActivity':\n return `/activities/${userActivityId}/phone-bank`;\n\n case 'IdVotersActivity':\n // IdVotersScreen -> takes user to the search screen, pick the person, fill out outreach report for the voter in VoterInfoScreen\n return {\n pathname: '/voters',\n state: {\n activityId,\n campaignId,\n userActivityId,\n },\n };\n\n default:\n // ShareActivity and WebActivity have their own handlers. Keeping the generic link for other activity types\n return `/activities/${userActivityId}`;\n }\n }\n\n /**\n * Call to action buttons are rendered conditionally based on activityType\n * - ShareActivity and WebActivity are custom components and are handled directly\n * - Other userActivities are simple links to corresponding handler page\n * - Campaign activities (no userActivityId) will act as 'join campaign' button\n **/\n function renderCTA() {\n // Campaign join button for campaign activity\n if (!userActivityId) {\n return (\n <StyledButton type=\"primary\" disabled={closed} onClick={onActivityActionButtonPress}>\n {t('campaign.activity.join_to_take_action')}\n </StyledButton>\n );\n }\n\n if (activityType === 'ShareActivity') {\n return (\n <div onClick={trackClick}>\n <ShareActivity\n campaignName={campaignName}\n url={share_link}\n message={share_text}\n onShareWindowClose={() => {\n // Prompts user to confirm completed action\n setActivityCompletedModalVisible(true);\n }}\n />\n </div>\n );\n }\n\n if (activityType === 'FormActivity') {\n return <FormActivity campaignName={campaignName} userActivity={userActivity} />;\n }\n\n if (activityType === 'WebActivity') {\n return (\n <WebActivity\n goToUrl={go_to_link}\n closed={closed}\n onWebActivityCompleted={() => {\n // Prompts user to confirm completed action\n if (!completed) setActivityCompletedModalVisible(true);\n }}\n >\n <StyledButton\n data-testid=\"web-activity-start\"\n onClick={trackClick}\n type=\"primary\"\n block\n disabled={closed}\n $completed={completed}\n >\n {getButtonText(activityType, completed)}\n </StyledButton>\n </WebActivity>\n );\n }\n\n return (\n <Link\n data-testid=\"activity-start-button\"\n disabled={closed}\n onClick={trackClick}\n style={{ color: 'white' }}\n to={getStartLink()}\n >\n <StyledButton type=\"primary\" block disabled={closed} $completed={completed}>\n {buttonCopy}\n </StyledButton>\n </Link>\n );\n }\n\n function renderProgressBar() {\n if (!is_p2p || !total_contacts || contacts_assigned === undefined) {\n return;\n }\n\n if (contacts_assigned >= total_contacts) {\n return <StyledProgressBar percent={100} />;\n }\n\n const assigned_percent = Math.floor((contacts_assigned / total_contacts) * 100);\n\n return <StyledProgressBar percent={assigned_percent} status=\"active\" />;\n }\n\n let buttonCopy = t('button.start');\n if (activityType) {\n buttonCopy = completed\n ? getButtonText(activityType, completed)\n : mobileButtonTextToWeb(button_text);\n buttonCopy = closed ? t('button.closed') : buttonCopy;\n buttonCopy = !buttonCopy ? t('button.start') : buttonCopy;\n }\n\n const trackClick = async () => {\n track('START_ACTIVITY', {\n activity_id: activityId,\n activity_title: activityTitle,\n activity_type: activityType,\n campaign_id: campaignId,\n campaign_name: campaignName,\n });\n if (!userActivityId) return;\n user.userActivityTrackClick(userActivityId);\n };\n\n // Decription is truncated by default, only show entire thing for detailed view\n const activityDescription = detailedView\n ? description\n : truncate(description, isFeatured ? 125 : 200);\n\n return (\n <StyledActivity isFeatured={isFeatured} style={{ opacity: closed ? 0.5 : 1.0 }}>\n <HeaderContainer>\n <Header>\n <HeaderTitle>{headerTitleText}</HeaderTitle>\n {activityTitle && <BodyTitle>{activityTitle}</BodyTitle>}\n <HeaderDate>\n {dateToAge(published_at)}\n {closed && ` (${t('campaign.activity.closed')})`}\n </HeaderDate>\n {renderProgressBar()}\n </Header>\n </HeaderContainer>\n <BodyContainer>\n {is_p2p}\n {activityDescription && <Body>{activityDescription}</Body>}\n </BodyContainer>\n <ActionButtons>{renderCTA()}</ActionButtons>\n {url && (\n <MediaWrapper>\n <Media src={url} />\n </MediaWrapper>\n )}\n {/* Modal will be shown for manually confirming completion of WebActivity and ShareActivity */}\n {activityCompletedModalVisible && (\n <ActivityCompletedModal\n campaignName={campaignName}\n campaignId={campaignId}\n activityTitle={activityTitle}\n activityId={activityId}\n userActivityId={userActivityId}\n onModalClosedCallback={({ success }) => {\n setActivityCompletedModalVisible(false);\n if (success) {\n // Sets local activity state to completed which updates the UI\n setCompleted(true);\n }\n }}\n />\n )}\n </StyledActivity>\n );\n};\n\nActivity.propTypes = {\n activity: PropTypes.shape({}).isRequired,\n completed: PropTypes.bool.isRequired,\n detailedView: PropTypes.bool,\n headerTitle: PropTypes.string,\n isFeatured: PropTypes.bool,\n onActivityActionButtonPress: PropTypes.func,\n userActivity: PropTypes.shape({\n id: PropTypes.number,\n }),\n};\n\nActivity.defaultProps = {\n detailedView: false,\n headerTitle: '',\n isFeatured: false,\n onActivityActionButtonPress: null,\n userActivity: null,\n};\n\nexport default Activity;\n","import { useEffect } from 'react';\n\nexport const useDocumentTitle = title => {\n useEffect(() => {\n const calculatedTitle = title ? `Impactive · ${title}` : `Impactive`;\n document.title = calculatedTitle;\n }, [title]);\n};\n\nexport default useDocumentTitle;\n","import React from 'react';\n\n// example of a query arg: (max-width: 600px)\nfunction useMedia(query) {\n if (!query || !typeof window) {\n console.error('must pass a query argument to useMedia');\n }\n\n const [matches, setMatches] = React.useState(false);\n\n function handleResize(e) {\n setMatches(window.matchMedia(query).matches);\n }\n\n React.useEffect(() => {\n window.addEventListener('resize', handleResize);\n handleResize();\n return () => window.removeEventListener('resize', handleResize);\n // eslint-disable-next-line\n }, []);\n\n return matches;\n}\n\nexport default useMedia;\n","import usePrevious from './usePrevious';\n\nconst useComparePrevious = value => {\n const prev = usePrevious(value);\n return prev !== value;\n};\n\nexport default useComparePrevious;\n","import React from 'react';\n\nexport default function usePrevious(value) {\n const ref = React.useRef();\n React.useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n","import { EventEmitter } from 'events';\nimport uniqueId from 'lodash/uniqueId';\n\nconst CHANGE = 'change';\n\nclass ModalManager extends EventEmitter {\n constructor() {\n super();\n this.modals = {};\n }\n\n openModal(key, component, props = {}) {\n this.modals = {\n ...this.modals,\n [key]: {\n component,\n props,\n },\n };\n this.emitChange();\n }\n\n closeModal(key) {\n if (!this.modals[key]) {\n return;\n }\n\n this.modals = { ...this.modals };\n delete this.modals[key];\n this.emitChange();\n }\n\n useModal(modalComponent) {\n const key = uniqueId('modal_');\n const open = props => this.openModal(key, modalComponent, props);\n const close = () => this.closeModal(key);\n return [open, close];\n }\n\n emitChange() {\n this.emit(CHANGE, this.modals);\n }\n\n addChangeListener(callback) {\n this.addListener(CHANGE, callback);\n }\n\n removeChangeListener(callback) {\n this.removeListener(CHANGE, callback);\n }\n}\n\nexport default new ModalManager();\n","import React from 'react';\nimport ModalManager from 'web/components/ModalManager';\n\nexport default function useModal(modalComponent) {\n const functions = React.useMemo(() => {\n // False positive, eslint thinks ModalManager.useModal is a hook, but it's not\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return ModalManager.useModal(modalComponent);\n }, [modalComponent]);\n\n // Make sure to close the modal when parent component is destroyed or \"modalComponent\" is changed\n React.useEffect(() => {\n return () => {\n functions[1]();\n };\n }, [functions]);\n\n return functions;\n}\n","import { useCallback, useEffect, useContext } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { message } from 'antd';\n\nimport {\n removeSelectedCampaign,\n setJoinedCampaigns,\n setCampaign,\n setLoading,\n setLastCampaignId,\n} from '@web/reducers/oneCampaign';\nimport { users as usersAPI, campaigns as campaignsAPI, user as userAPI } from '@web/services/api';\nimport { AuthContext } from '../utils/context';\nimport { getLocalizedOnboardingData } from '../utils/other';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\n// Provider to handle all changes related to a One Campaign feature\nconst useOneCampaign = () => {\n const { t } = useTranslation();\n const { user, isLoading } = useContext(AuthContext);\n const dispatch = useDispatch();\n const history = useHistory();\n\n const { selectedCampaign, loading } = useSelector(state => state.oneCampaign);\n\n // The server call API when the user selects a new campaign to update the id of the last campaign the user selected.\n const updateUserLastCampaignId = useCallback(() => {\n // make action only if all data is loaded\n if (isLoading || isLoading) return;\n //Newly registered users won`t have neither selected campaign nor last_campaign_id\n //So we have to set loading to false and let the use in that case, and thenr select a campaign.\n if (!selectedCampaign && !user?.last_campaign_id) {\n dispatch(setLoading(false));\n // redirect user to join campaign page\n history.push(`/auth/join-campaign`);\n return;\n }\n\n // Prevent error when campaign is not loaded yet\n // Disable API call if not required. This hook is called on each page, so this feature is called each time during the initial rendering,\n // but we don't need to update the last campaign ID if it's the same as the previous one.\n if (!selectedCampaign || !user || (!loading && selectedCampaign.id === user?.last_campaign_id))\n return;\n\n userAPI\n .updateUserLastCampaignId({ lastCampaignId: selectedCampaign.id })\n .then(({ data }) => {\n dispatch(setLastCampaignId(data.data.last_campaign_id));\n dispatch(setLoading(false));\n })\n .catch(() => message.error(t('common.something_went_wrong')));\n }, [dispatch, selectedCampaign, t, loading, isLoading, user, history]);\n\n // Get all campaign data.\n // When the user selects a campaign from the list, there is only some data, but we need to get everything\n const getFullCampaignData = useCallback(\n async (id, joinedCampaigns) => {\n let data = await campaignsAPI.getCampaign({ id }).then(({ data: { data } }) => data);\n\n //if user leaves the current campaign, we should remove it from state.oneCampaign.selectedCampaign\n //and fallback to first campaign from the list, or remove it entirely\n if (!data.user_campaign.joined && joinedCampaigns.length > 0) {\n data = await campaignsAPI\n .getCampaign({ id: joinedCampaigns[0].campaign_id })\n .then(({ data: { data } }) => data);\n } else if (!data.user_campaign.joined) {\n dispatch(removeSelectedCampaign());\n return;\n }\n\n const localizedCampaign = getLocalizedOnboardingData(data);\n dispatch(setCampaign(localizedCampaign));\n },\n [dispatch],\n );\n\n const getJoinedCampaigns = useCallback(() => {\n // Prevent error when user is not logged in\n if (!user || selectedCampaign) return;\n\n usersAPI.getUserCampaigns(1, 5000).then(({ data: { data: campaigns } }) => {\n // Save campaigns in redux\n dispatch(setJoinedCampaigns(campaigns));\n // MTS - Adding this check to prevent calling getFullCampaignData without a campaign id.\n // We're getting an error in Cypress, I'm not sure if this could happen to a user.\n if (user?.last_campaign_id && campaigns.length > 0) {\n const campaign = campaigns.find(e => e.campaign_id === user.last_campaign_id);\n\n const campaignId =\n !!campaign && user.last_campaign_id ? user.last_campaign_id : campaigns[0].campaign_id;\n\n // If the custom object does not have the ID of the last selected campaign, we set the first campaign in the list of joined campaigns.\n getFullCampaignData(campaignId, campaigns ?? []);\n }\n });\n }, [user, selectedCampaign, dispatch, getFullCampaignData]);\n\n // // Get all campaigns users have joined\n useEffect(() => {\n getJoinedCampaigns();\n }, [getJoinedCampaigns]);\n\n useEffect(() => {\n updateUserLastCampaignId();\n }, [updateUserLastCampaignId]);\n};\n\nexport default useOneCampaign;\n","import React from 'react';\n\nimport { Modal } from 'antd';\n\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nexport const StyledModal = styled(Modal)`\n &&& {\n top: 50px;\n .ant-modal-content {\n border-radius: 16px;\n padding: 1rem;\n max-height: 80vh;\n display: flex;\n flex-direction: column;\n .ant-modal-body {\n overflow-y: auto;\n }\n > button {\n right: -50px;\n background: ${({ theme }) => theme.colors.white};\n width: 32px;\n height: 32px;\n border-radius: 50%;\n span {\n vertical-align: unset;\n width: unset;\n height: unset;\n line-height: unset;\n font-size: 11px;\n color: ${({ theme }) => theme.colors.black};\n }\n }\n }\n\n @media screen and (max-width: 870px) {\n .ant-modal-content {\n > button {\n right: 0;\n top: -50px;\n }\n }\n }\n }\n`;\n\nconst ImpactiveModal = props => {\n return (\n <StyledModal {...props} footer={props.footer}>\n {props.children}\n </StyledModal>\n );\n};\n\nImpactiveModal.propTypes = {\n children: PropTypes.node.isRequired,\n footer: PropTypes.node,\n};\n\nImpactiveModal.defaultProps = {\n footer: null,\n};\n\nexport default ImpactiveModal;\n","import styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport { Link } from 'react-router-dom';\n\nconst ImpactiveLink = styled(Link)`\n align-items: center;\n color: ${({ theme }) => theme.colors.coral};\n display: flex;\n font-family: ${({ theme, $isTitle }) => {\n return $isTitle ? theme.fonts.semibold : theme.fonts.semibolditalic;\n }};\n font-size: ${({ $isTitle }) => ($isTitle ? '1.5rem' : '1rem')};\n > span {\n margin-right: ${({ $withIcon }) => ($withIcon ? '5px' : 0)};\n }\n &:hover {\n text-decoration: none;\n }\n`;\n\nImpactiveLink.propTypes = {\n $isTitle: PropTypes.bool,\n $withIcon: PropTypes.bool,\n};\n\nImpactiveLink.defaultProps = {\n $isTitle: false,\n $withIcon: false,\n};\n\nexport default ImpactiveLink;\n","import { Avatar, List } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport styled, { css } from 'styled-components';\n\nimport { setCampaign } from '../../reducers/oneCampaign';\nimport ImpactiveModal from '@web/components/common/ImpactiveModal';\nimport ImpactiveLink from './Link';\nimport { PlusOutlined } from '@ant-design/icons';\nimport { campaigns as campaignsAPI } from '@web/services/api';\nimport { getLocalizedOnboardingData } from '../../utils/other';\nimport { useTranslation } from 'react-i18next';\nimport { replaceDefaultCampaignImage } from '@web/utils/string';\n\nconst ListItem = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 2rem;\n cursor: pointer;\n padding: 1rem;\n border-radius: 12px;\n &:hover {\n background: ${({ theme }) => theme.colors.blue06};\n }\n`;\n\nconst CampaignDataWrapper = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst Title = styled.div`\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 2rem;\n color: ${({ theme }) => theme.colors.blue};\n margin-bottom: 3rem;\n`;\n\nconst NameAndStatus = styled.div`\n margin-left: 20px;\n`;\n\nconst Name = styled.div`\n ${({ theme }) => css`\n color: ${theme.colors.blue};\n font-family: ${theme.fonts.semibold};\n font-size: 1rem;\n `}\n`;\nconst ActiveNow = styled.div`\n display: flex;\n align-items: center;\n ${({ theme }) => css`\n color: ${theme.colors.coral};\n font-family: ${theme.fonts.semibold};\n font-size: 0.875rem;\n `}\n`;\n\nconst Dot = styled.div`\n width: 6px;\n height: 6px;\n background: ${({ theme }) => theme.colors.coral};\n border-radius: 50%;\n margin-right: 5px;\n`;\n\nconst JoinSection = styled.div`\n display: flex;\n align-items: center;\n ${({ theme }) => css`\n color: ${theme.colors.blackL32};\n font-family: ${theme.fonts.regular};\n font-size: 1rem;\n `}\n`;\n\nconst PlusSection = styled.div`\n width: 54px;\n height: 54px;\n box-shadow: 0px 1px 9px rgba(0, 0, 0, 0.09);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${({ theme }) => theme.colors.coral};\n margin-right: 20px;\n`;\n\nconst StickyBlock = styled.div`\n position: sticky;\n bottom: -25px;\n background: white;\n`;\n\nexport const CampaignAndCharityModal = ({ title, list, onClose, onJoinCampaign }) => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const campaign = useSelector(state => state.oneCampaign.selectedCampaign);\n\n const selectCampaign = (id, isActive) => {\n if (isActive) return;\n campaignsAPI.getCampaign({ id }).then(({ data: { data } }) => {\n const localizedCampaign = getLocalizedOnboardingData(data);\n dispatch(setCampaign(localizedCampaign));\n onClose();\n });\n };\n\n const renderCampaign = item => {\n const isActive = campaign?.id === item.campaign.id;\n return (\n <ListItem onClick={() => selectCampaign(item.campaign_id, isActive)}>\n <CampaignDataWrapper>\n <Avatar size={54} src={replaceDefaultCampaignImage(item.campaign.url_profile_img)} />\n <NameAndStatus>\n <Name>{item.campaign.name}</Name>\n {isActive && (\n <ActiveNow>\n <Dot /> {t('common.active_now')}\n </ActiveNow>\n )}\n </NameAndStatus>\n </CampaignDataWrapper>\n <ImpactiveLink onClick={e => e.stopPropagation()} to={`/campaigns/${item.campaign.slug}`}>\n {t('common.view_details')}\n </ImpactiveLink>\n </ListItem>\n );\n };\n\n return (\n <ImpactiveModal width={'40%'} visible onCancel={onClose}>\n <Title>{title}</Title>\n <List itemLayout=\"horizontal\" dataSource={list} renderItem={renderCampaign} />\n <StickyBlock>\n <ListItem>\n <div as=\"button\" onClick={onJoinCampaign}>\n <JoinSection>\n <PlusSection>\n <PlusOutlined />\n </PlusSection>\n {t('button.join_another_campaign')}\n </JoinSection>\n </div>\n </ListItem>\n </StickyBlock>\n </ImpactiveModal>\n );\n};\n\nCampaignAndCharityModal.propTypes = {\n list: PropTypes.array.isRequired,\n onClose: PropTypes.func.isRequired,\n onJoinCampaign: PropTypes.func.isRequired,\n title: PropTypes.string.isRequired,\n};\n\nCampaignAndCharityModal.defaultProps = {};\n\nexport default CampaignAndCharityModal;\n","import styled from 'styled-components';\nimport { media } from '../../styles/theme';\n\nconst MaxWidthContainer = styled.div`\n max-width: 1012px;\n padding: 16px 16px;\n width: 100%;\n ${media.ns} {\n margin: 0 auto;\n padding: 16px 32px;\n }\n`;\n\nexport default MaxWidthContainer;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport cardBg from '@web/images/blue-card-bg.png';\nimport actionCardSkeleton from '@web/images/action-card-skeleton.png';\nimport MaxWidthContainer from '@web/components/common/MaxWidthContainer';\n\nimport ImpactiveButton from '@web/components/ImpactiveButton';\n\nimport { Link } from 'react-router-dom';\n\nconst Wrapper = styled.div`\n padding: 40px 40px 0;\n width: 100%;\n\n @media (max-width: 600px) {\n padding: 20px 20px 0;\n }\n`;\n\nconst BlueWrapper = styled.div`\n background-image: url(${cardBg});\n background-size: cover;\n\n width: 100%;\n padding: 34px 0 40px 0;\n\n border-radius: 20px;\n\n margin-bottom: 1rem;\n`;\n\nconst Title = styled.h1`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 2.5rem;\n margin-bottom: 1rem;\n margin-top: 0;\n`;\n\nconst Description = styled.p`\n color: ${({ theme }) => theme.colors.black};\n font-size: 1rem;\n margin-bottom: 2.75rem;\n`;\n\nconst Skeleton = styled.img`\n border-radius: 20px;\n width: 100%;\n height: auto;\n`;\n\nconst Grid = styled.div`\n display: grid;\n width: 100%;\n grid-template-columns: 1fr 1fr;\n justify-content: center;\n gap: 20px;\n\n @media screen and (max-width: 1024px) {\n grid-template-columns: 1fr;\n }\n`;\n\nconst ButtonLink = styled(Link)`\n :hover {\n text-decoration: none;\n }\n`;\n\nconst NoCampaign = ({ withSkeletons }) => {\n return (\n <Wrapper>\n <BlueWrapper>\n <MaxWidthContainer>\n <Title>\n Select <br /> Campaign\n </Title>\n <Description>\n You havent yet selected any campaign. <br /> Please join one to start using impactive!\n </Description>\n <ButtonLink to=\"/explore\">\n <ImpactiveButton size=\"medium\">Explore Campaigns</ImpactiveButton>\n </ButtonLink>\n </MaxWidthContainer>\n </BlueWrapper>\n\n {withSkeletons && (\n <MaxWidthContainer>\n <Grid>\n <Skeleton src={actionCardSkeleton} alt=\"action placeholder\" />\n <Skeleton src={actionCardSkeleton} alt=\"action placeholder\" />\n <Skeleton src={actionCardSkeleton} alt=\"action placeholder\" />\n <Skeleton src={actionCardSkeleton} alt=\"action placeholder\" />\n </Grid>\n </MaxWidthContainer>\n )}\n </Wrapper>\n );\n};\n\nNoCampaign.propTypes = {\n withSkeletons: PropTypes.bool,\n};\n\nNoCampaign.defaultProps = {\n withSkeletons: false,\n};\n\nexport default NoCampaign;\n","import React from 'react';\n\nimport Loading from './Loading';\nimport NoCampaign from '@web/components/common/NoCampaign';\n\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\n\n// Display the loader while processing data for initial one campaign to prevent errors\nconst OneCampaignLoading = ({ children, centered, ignoreNullCampaign }) => {\n const { selectedCampaign, loading } = useSelector(state => state.oneCampaign);\n\n if (loading) return <Loading centered={centered} />;\n\n if (ignoreNullCampaign) return <>{children}</>;\n\n if (selectedCampaign) return children;\n\n return <NoCampaign withSkeletons />;\n};\n\nOneCampaignLoading.propTypes = {\n centered: PropTypes.bool,\n children: PropTypes.node.isRequired,\n ignoreNullCampaign: PropTypes.bool,\n};\n\nOneCampaignLoading.defaultProps = {\n centered: true,\n ignoreNullCampaign: false,\n};\n\nexport default OneCampaignLoading;\n","import { message } from 'antd';\n\nimport i18n from '@web/components/i18n';\n\nexport const teamJoinCodeError = error => {\n const errorMessage =\n error?.response?.status === 403\n ? i18n.t('auth.join.blocked_user')\n : error?.response?.data?.message || error?.message || i18n.t('auth.join.error');\n\n message.error(errorMessage);\n};\n","import React, { useCallback, useContext, useRef, useState } from 'react';\nimport ImpactiveModal from '@web/components/common/ImpactiveModal';\nimport VerificationInput from 'react-verification-input';\nimport { useTranslation } from 'react-i18next';\nimport ImpactiveButton from '@web/components/ImpactiveButton';\nimport { message } from 'antd';\nimport { campaigns, users } from '@web/services/api';\nimport { AuthContext } from '@web/utils/context';\nimport { useHistory } from 'react-router-dom';\nimport { useDispatch } from 'react-redux';\nimport { getLocalizedOnboardingData } from '@web/utils/other';\nimport { setCampaign, setJoinedCampaigns } from '@web/reducers/oneCampaign';\nimport PropTypes from 'prop-types';\nimport { teamJoinCodeError } from '@web/utils/errorHandler';\nimport usersApi from '@web/services/api/users';\n\n// This modal is short representation of app/javascript/web/components/Auth/Join Campaign.js file\n// In the JoinCampaign.js we have more logic because we have to check if user logged in/authorized and a lot of other different conditions\n// I decided to create this modal instead of passing arguments to JoinCampaign component and conditionally do different things to avoid bugs\nconst JoinCampaignModal = ({ onClose }) => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const history = useHistory();\n\n const inputRef = useRef();\n\n const [code, setCode] = useState('');\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const { setCampaignSlug, setUser } = useContext(AuthContext);\n\n const onChange = useCallback(value => {\n setCode(value);\n }, []);\n\n const onComplete = useCallback(value => {\n setCode(value);\n inputRef.current?.blur();\n }, []);\n\n const onFocus = useCallback(() => {\n if (code?.length === 6) {\n setCode(code.slice(0, 5));\n }\n }, [code]);\n\n const getJoinedCampaigns = useCallback(() => {\n usersApi.getUserCampaigns(1, 5000).then(({ data: { data: campaigns } }) => {\n // Save campaigns in redux\n dispatch(setJoinedCampaigns(campaigns));\n });\n }, [dispatch]);\n\n const joinCampaign = useCallback(\n async campaignFromCode => {\n users.followCampaign({\n campaign_id: campaignFromCode.id,\n campaign_name: campaignFromCode.name,\n campaign_slug: campaignFromCode.slug,\n });\n\n setCampaignSlug(campaignFromCode.slug);\n setIsSubmitting(false);\n\n users.updateMe({ last_campaign_id: campaignFromCode.id }).then(({ data: { data } }) => {\n const localizedCampaign = getLocalizedOnboardingData(campaignFromCode);\n dispatch(setCampaign(localizedCampaign));\n setUser(data);\n onClose();\n getJoinedCampaigns();\n history.push(`/campaigns/${campaignFromCode.slug}?showOnboarding=true`);\n });\n },\n [dispatch, history, setCampaignSlug, setUser, onClose, getJoinedCampaigns],\n );\n\n const onSubmit = useCallback(() => {\n if (code?.length !== 6) {\n message.error(t('auth.join.invalid_code'));\n } else {\n setIsSubmitting(true);\n campaigns\n .findCampaign(code)\n .then(({ data }) => {\n if (!data) {\n setIsSubmitting(false);\n message.error(t('explore.join_code.error'));\n } else {\n // success\n joinCampaign(data.data);\n }\n })\n .catch(error => {\n setIsSubmitting(false);\n teamJoinCodeError(error);\n });\n }\n }, [code, t, joinCampaign]);\n\n return (\n <ImpactiveModal visible onCancel={onClose}>\n <div className={`card-title bolder mb-4`}>{t('auth.join.header')}</div>\n\n <div className=\"text-center\">{t('auth.join.enter')}</div>\n <div className=\"text-center\">{t('auth.join.dont_have_code')}</div>\n\n <VerificationInput\n ref={inputRef}\n value={code}\n classNames={{\n character: 'character',\n characterFilled: 'character--filled',\n characterInactive: 'character--inactive',\n characterSelected: 'character--selected',\n container: 'container',\n }}\n inputProps={{ disabled: isSubmitting, inputMode: 'numeric' }}\n validChars=\"0-9\"\n placeholder=\"__\"\n autoFocus\n length={6}\n onChange={onChange}\n onFocus={onFocus}\n onComplete={onComplete}\n />\n <div className=\"d-flex flex-row align-items-center justify-content-center mt-5 text-center\">\n <ImpactiveButton size=\"large\" disabled={isSubmitting} onClick={onSubmit}>\n {isSubmitting ? t('auth.join.joining') : t('common.submit')}\n </ImpactiveButton>\n </div>\n </ImpactiveModal>\n );\n};\n\nJoinCampaignModal.propTypes = {\n onClose: PropTypes.func.isRequired,\n};\n\nexport default JoinCampaignModal;\n","import * as React from 'react';\n// import PropTypes from 'prop-types';\n\nfunction Wordmark(props) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 54.453\" {...props}>\n <g fillRule=\"evenodd\">\n <path\n d=\"M153.893 1.958c-.195.527-.749 2.196-1.231 3.709a924.42 924.42 0 0 1-2.247 6.916c-1.939 5.89-4.526 13.84-5.206 16-.317 1.009-.64 1.984-.717 2.167-.167.396-.796 2.321-1.988 6.083-.479 1.513-.983 3.05-1.12 3.417-.137.367-.344.967-.461 1.333-1.315 4.136-2.347 7.32-2.593 8-.411 1.137-1.163 3.569-1.163 3.761 0 .095 2.966.156 7.57.156h7.57l.159-.542c.35-1.189.543-1.905.687-2.541.141-.623.262-1.075.946-3.542a64.34 64.34 0 0 0 .484-1.875c.12-.504.383-1.517.585-2.25a385.2 385.2 0 0 0 .911-3.417 1402.53 1402.53 0 0 1 2.173-8.25c.149-.55.485-1.825.746-2.833.261-1.008.637-2.433.835-3.167.199-.733.585-2.196.86-3.25.275-1.054.575-2.179.666-2.5.298-1.042.943-4.156.984-4.75.019-.277.336.618.501 1.417.245 1.181.601 2.666.89 3.708l.532 1.917c.146.527.366 1.371.489 1.875s.299 1.179.392 1.5a80.55 80.55 0 0 1 .848 3.167c.441 1.752.673 2.627.838 3.166.071.23.222.754.337 1.167.115.412.274.975.354 1.25.08.275.299 1.137.488 1.917.189.779.408 1.641.486 1.916.078.275.329 1.213.558 2.084.23.87.531 1.995.669 2.5.138.504.44 1.629.672 2.5.447 1.679.86 3.207 1.128 4.166.09.321.261.996.38 1.5.12.504.355 1.423.524 2.042l.307 1.125h7.733c7.3 0 7.727-.016 7.613-.292a6.98 6.98 0 0 1-.246-.814c-.069-.287-.429-1.412-.8-2.5-.37-1.087-.899-2.69-1.174-3.561-.275-.871-.618-1.92-.761-2.333a189.32 189.32 0 0 1-.927-2.833c-1.123-3.506-2.494-7.71-2.773-8.5a68.194 68.194 0 0 1-.602-1.834c-.186-.595-.741-2.321-1.234-3.833a449.646 449.646 0 0 1-1.075-3.333 35.722 35.722 0 0 0-.486-1.417A94.386 94.386 0 0 1 177 19.167a112.41 112.41 0 0 0-.996-3.084c-.164-.458-.784-2.333-1.378-4.166l-2.312-7.123-1.231-3.79-8.417-.002L154.248 1l-.355.958\"\n fill=\"#f47c6c\"\n />\n <path\n d=\"M307.667 1.207c0 .116.195.736.433 1.377.239.641.498 1.428.576 1.749.078.321.362 1.221.631 2 .268.779 1.219 3.667 2.112 6.417a6237.833 6237.833 0 0 0 5.496 16.833c.48 1.467 1.419 4.355 2.086 6.417a1715.87 1715.87 0 0 0 2.587 7.917c.756 2.291 1.766 5.385 2.245 6.875l.871 2.708H341.6l.629-1.792c.346-.985.7-2.091.787-2.458.086-.367.226-.817.311-1 .168-.362.651-1.827 2.005-6.083.481-1.513 1.012-3.125 1.181-3.584.169-.458.507-1.471.752-2.25.245-.779.765-2.391 1.155-3.583.391-1.192 1.403-4.304 2.249-6.917.846-2.612 1.723-5.275 1.949-5.916.227-.642.487-1.43.578-1.75.091-.321.45-1.446.799-2.5.349-1.055 1.29-3.942 2.093-6.417.803-2.475 1.741-5.344 2.086-6.375L358.8 1h-15.274l-.174.542c-.096.298-.245.841-.332 1.208a58.472 58.472 0 0 1-.434 1.667c-.152.55-.529 1.975-.837 3.166a285.253 285.253 0 0 1-.837 3.167c-.152.55-.375 1.412-.495 1.917a64.404 64.404 0 0 1-.485 1.875l-.531 1.916a55.715 55.715 0 0 0-.479 1.875c-.186.801-.395 1.584-1.114 4.167-.09.321-.265.996-.389 1.5-.239.968-.829 3.186-1.108 4.167a65.654 65.654 0 0 0-.414 1.583c-.452 1.819-.54 2.161-.707 2.75-.491 1.738-1.496 5.857-1.596 6.542-.114.79-.427 1.109-.427.436 0-.196-.073-.627-.161-.959-.088-.331-.282-1.09-.43-1.686a73.19 73.19 0 0 0-.433-1.666 53.464 53.464 0 0 1-.388-1.5 74.923 74.923 0 0 0-.489-1.875c-.471-1.698-.78-2.842-1.181-4.375a244.85 244.85 0 0 0-.667-2.5c-.152-.55-.495-1.825-.763-2.834a292.556 292.556 0 0 0-.838-3.083 83.695 83.695 0 0 1-.573-2.167 54.275 54.275 0 0 0-.386-1.5 246.976 246.976 0 0 1-1.216-4.5 214.01 214.01 0 0 0-.666-2.5c-.09-.321-.267-.996-.393-1.5a58.452 58.452 0 0 0-.394-1.5c-.259-.911-.869-3.197-1-3.75l-.119-.5-7.702-.043c-6.119-.034-7.701 0-7.701.167\"\n fill=\"#6cccdc\"\n />\n <path\n d=\"M210.75.604c-4.514.512-9.942 2.582-12.181 4.646a8.255 8.255 0 0 1-.661.5c-2.516 1.744-6.015 6.578-7.24 10-.197.55-.418 1.15-.49 1.333-.352.891-.746 2.534-1.174 4.898-.856 4.723-.08 12.742 1.593 16.461.13.289.236.599.236.689 0 1.431 4.307 7.21 6.917 9.28.458.364.871.702.917.752.185.201 1.503 1.004 1.649 1.004.086 0 .181.062.212.137.19.471 4.337 2.159 7.472 3.041 5.17 1.454 14.324.836 19-1.284 1.081-.49 3.204-1.588 3.333-1.724.046-.048.421-.313.833-.587 1.472-.981 2.269-1.628 3.561-2.888 1.29-1.259 2.773-3.032 2.773-3.315 0-.146-.436-.62-4.5-4.898-3.787-3.987-4.331-4.541-4.381-4.469-6.235 8.926-18.353 9.447-22.976.987-1.525-2.79-2.251-8.387-1.492-11.5 1.165-4.775 2.98-7.554 5.989-9.167 5.088-2.728 10.952-.352 12.541 5.083.107.367.252.822.323 1.011.07.19.182 1.002.249 1.805.117 1.404.136 1.456.495 1.366.205-.051.89-.173 1.521-.27l2.148-.331c3.213-.495 3.396-.522 7.75-1.141.595-.085 1.296-.21 1.556-.277l.474-.123-.078-1.603c-.08-1.676-.352-3.642-.601-4.353-.08-.229-.244-.755-.363-1.167-.377-1.3-1.739-4.251-2.155-4.667-.046-.046-.369-.507-.718-1.026C229.15 2.668 220.455-.498 210.75.604M25.667 27.082v26.251h14.666V41.07c0-7.455-.07-13.036-.18-14.236-.258-2.832-.165-3.041.481-1.084.549 1.661.605 1.812 1.086 2.917.14.321.413.995.608 1.5a34.7 34.7 0 0 0 .68 1.623c.179.388.325.783.325.877 0 .094.075.301.165.46.091.159.397.89.68 1.623.284.733.618 1.558.744 1.833.125.275.609 1.475 1.075 2.667.466 1.192.912 2.317.991 2.5a798.04 798.04 0 0 0 .935 2.167c.12.275.271.687.337.916.065.23.334.888.596 1.463.263.575.477 1.141.477 1.258 0 .117.063.284.139.371.077.087.276.533.443.992.166.458.506 1.283.754 1.833.249.55.506 1.188.571 1.417.066.229.23.66.364.958l.245.542h3.909c2.415 0 3.909-.062 3.909-.162 0-.089.183-.564.408-1.055.225-.491.75-1.776 1.167-2.855.417-1.079.868-2.198 1.001-2.487.134-.288.368-.899.52-1.356.153-.457.491-1.298.752-1.869.262-.571.526-1.246.587-1.502.061-.255.163-.539.227-.631.065-.092.365-.804.668-1.583.303-.78.66-1.68.794-2 .356-.855.485-1.184.718-1.834.115-.321.385-.979.6-1.463.215-.484.391-.975.391-1.092a.64.64 0 0 1 .144-.37c.08-.087.353-.72.608-1.408.256-.687.595-1.55.755-1.917.16-.366.347-.816.415-1l.533-1.416c.224-.596.629-1.684.899-2.417.365-.99.467-1.162.396-.667-.053.367-.139 6.986-.192 14.709l-.095 14.041h14.87V.833H70.01l-.528 1.125c-.29.619-.696 1.5-.902 1.959a202.39 202.39 0 0 1-.894 1.947c-.286.613-.519 1.155-.519 1.204 0 .049-.338.802-.75 1.673-.413.871-.75 1.618-.75 1.659 0 .042-.27.662-.601 1.379L64.045 14l-.883 1.917c-.253.55-.627 1.375-.829 1.833-.203.458-.586 1.307-.851 1.887-.265.579-.482 1.078-.482 1.109 0 .031-.337.779-.75 1.662-.413.882-.75 1.638-.75 1.678 0 .04-.215.543-.477 1.118-.263.575-.535 1.234-.605 1.463-.071.229-.261.716-.423 1.083a39.04 39.04 0 0 0-.748 1.917c-.249.687-.516 1.4-.594 1.583-.077.183-.266.734-.421 1.223l-.28.89-.539-1.556c-.599-1.732-1.602-4.326-2.115-5.474l-.65-1.449c-.173-.384-.315-.737-.315-.783 0-.08-.847-1.916-2.084-4.518-.811-1.705-1.916-4.108-1.916-4.167 0-.028-.456-1.015-1.013-2.192a519.527 519.527 0 0 1-1.436-3.057c-.232-.505-.705-1.517-1.051-2.25a283.268 283.268 0 0 1-2.07-4.5 62.676 62.676 0 0 0-.899-1.917l-.297-.583-7.95-.044-7.95-.043v26.252m68.833.168V53.5h15.167V39.833l4.708-.007c5.269-.008 7.075-.174 10.625-.976 1.616-.365 5.833-2.204 5.833-2.544 0-.077.084-.139.186-.139.999 0 4.847-4.212 5.94-6.5.528-1.108 1.219-3.092 1.565-4.5.313-1.272.314-8.389.002-9.667-.473-1.935-1.279-4.204-1.725-4.859-.165-.243-.301-.49-.301-.549 0-.058-.077-.197-.171-.307a14.342 14.342 0 0 1-.655-.952c-.559-.866-2.047-2.43-2.961-3.112-.346-.258-.667-.513-.713-.568-.189-.223-2.481-1.473-3.333-1.817a136.49 136.49 0 0 1-1.25-.511c-1.108-.469-2.952-.933-5.334-1.342-2.111-.363-5.814-.471-16.291-.477L94.5 1v26.25M238.667 7.167v6.166h15.166V53.5h15V13.333h15.334V1h-45.5v6.167m50.5 20.083V53.5h14.666V1h-14.666v26.25m73.333 0V53.5h37V41.333h-21.833V33h18.5V21.667h-18.5v-8.334H399.5V1h-37v26.25M.667 27.417v26.25h14.666v-52.5H.667v26.25m115.429-14.665c2.49.344 4.775 1.349 5.74 2.524 2.128 2.592 2.474 7.396.691 9.596-.912 1.127-1.288 1.486-1.992 1.905-1.85 1.1-3.427 1.389-7.577 1.39h-3.291V12.5h2.304c1.267 0 3.124.113 4.125.252\"\n fill=\"#242c3c\"\n />\n </g>\n </svg>\n );\n}\n\nexport default Wordmark;\n","import * as React from 'react';\n\nfunction IconDark(props) {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0, 0, 400,400\" {...props}>\n <g>\n <path\n d=\"M160.242 58.732 C 160.126 58.919,159.199 61.396,158.182 64.236 C 157.165 67.076,155.457 71.830,154.387 74.800 C 153.316 77.770,151.373 83.170,150.070 86.800 C 148.766 90.430,146.529 96.640,145.098 100.600 C 143.668 104.560,141.201 111.400,139.616 115.800 C 138.031 120.200,135.942 125.960,134.973 128.600 C 134.005 131.240,132.237 136.100,131.044 139.400 C 129.852 142.700,128.126 147.470,127.207 150.000 C 126.289 152.530,124.843 156.580,123.995 159.000 C 121.976 164.755,118.113 175.422,117.404 177.200 C 116.325 179.903,109.660 198.612,109.388 199.700 L 109.113 200.800 126.689 200.800 L 144.264 200.800 160.374 152.500 C 169.234 125.935,176.617 103.957,176.779 103.661 C 177.125 103.031,177.946 104.978,180.544 112.600 C 182.527 118.417,188.965 137.023,192.999 148.600 C 196.597 158.921,199.300 166.715,201.602 173.400 C 204.896 182.965,207.482 190.398,209.329 195.600 L 211.103 200.600 227.951 200.704 C 243.297 200.799,244.800 200.751,244.800 200.157 C 244.800 199.596,240.792 188.148,238.934 183.400 C 238.332 181.863,236.564 176.942,232.611 165.800 C 231.597 162.940,230.157 158.980,229.412 157.000 C 228.667 155.020,226.678 149.530,224.992 144.800 C 223.306 140.070,221.509 135.120,220.998 133.800 C 220.486 132.480,219.433 129.600,218.657 127.400 C 217.880 125.200,216.155 120.385,214.823 116.700 C 213.490 113.015,211.310 106.985,209.977 103.300 C 208.645 99.615,206.641 94.080,205.524 91.000 C 204.407 87.920,202.785 83.420,201.918 81.000 C 201.052 78.580,200.110 75.970,199.825 75.200 C 199.540 74.430,198.566 71.730,197.660 69.200 C 196.754 66.670,195.493 63.250,194.857 61.600 L 193.701 58.600 177.077 58.496 C 167.933 58.438,160.358 58.545,160.242 58.732 \"\n stroke=\"none\"\n fill=\"#fc7c6c\"\n fillRule=\"evenodd\"\n />\n <path\n d=\"M163.355 204.500 C 164.093 206.535,165.631 210.810,166.774 214.000 C 167.916 217.190,169.096 220.430,169.396 221.200 C 169.695 221.970,170.420 223.950,171.006 225.600 C 171.591 227.250,172.674 230.220,173.411 232.200 C 174.148 234.180,175.382 237.600,176.153 239.800 C 177.757 244.376,182.164 256.615,183.068 259.000 C 183.401 259.880,184.277 262.310,185.014 264.400 C 185.751 266.490,187.549 271.440,189.009 275.400 C 190.469 279.360,192.262 284.310,192.994 286.400 C 193.725 288.490,195.702 293.980,197.386 298.600 C 199.071 303.220,201.320 309.430,202.385 312.400 C 206.949 325.129,209.835 333.086,212.033 339.000 L 213.521 343.000 230.315 343.104 L 247.110 343.209 249.208 337.304 C 250.362 334.057,251.572 330.680,251.897 329.800 C 252.222 328.920,253.092 326.490,253.831 324.400 C 254.569 322.310,256.362 317.360,257.815 313.400 C 259.268 309.440,261.076 304.404,261.832 302.210 C 262.589 300.015,263.824 296.595,264.576 294.610 C 265.329 292.624,267.222 287.400,268.782 283.000 C 270.342 278.600,272.151 273.560,272.801 271.800 C 275.065 265.669,277.936 257.743,280.987 249.200 C 282.676 244.470,284.667 238.980,285.411 237.000 C 286.155 235.020,287.596 231.060,288.613 228.200 C 292.109 218.367,294.327 212.189,296.362 206.617 C 297.483 203.546,298.400 200.981,298.400 200.917 C 298.400 200.852,290.435 200.805,280.700 200.810 L 263.000 200.821 246.821 249.510 C 237.922 276.290,230.577 298.285,230.499 298.388 C 230.206 298.776,229.561 297.242,227.645 291.600 C 225.742 285.995,224.668 282.894,218.989 266.600 C 216.354 259.040,210.063 240.887,206.375 230.200 C 205.312 227.120,203.336 221.450,201.983 217.600 C 200.631 213.750,198.780 208.395,197.872 205.700 L 196.220 200.800 179.117 200.800 L 162.014 200.800 163.355 204.500 \"\n stroke=\"none\"\n fill=\"#53daea\"\n fillRule=\"evenodd\"\n />\n <path\n d=\"M0.000 200.000 L 0.000 400.000 200.000 400.000 L 400.000 400.000 400.000 200.000 L 400.000 0.000 200.000 0.000 L 0.000 0.000 0.000 200.000 M194.857 61.600 C 195.493 63.250,196.754 66.670,197.660 69.200 C 198.566 71.730,199.540 74.430,199.825 75.200 C 200.110 75.970,201.052 78.580,201.918 81.000 C 202.785 83.420,204.407 87.920,205.524 91.000 C 206.641 94.080,208.645 99.615,209.977 103.300 C 211.310 106.985,213.490 113.015,214.823 116.700 C 216.155 120.385,217.880 125.200,218.657 127.400 C 219.433 129.600,220.486 132.480,220.998 133.800 C 221.509 135.120,223.306 140.070,224.992 144.800 C 226.678 149.530,228.667 155.020,229.412 157.000 C 230.157 158.980,231.597 162.940,232.611 165.800 C 236.564 176.942,238.332 181.863,238.934 183.400 C 240.792 188.148,244.800 199.596,244.800 200.157 C 244.800 200.751,243.297 200.799,227.951 200.704 L 211.103 200.600 209.329 195.600 C 207.482 190.398,204.896 182.965,201.602 173.400 C 199.300 166.715,196.597 158.921,192.999 148.600 C 188.965 137.023,182.527 118.417,180.544 112.600 C 177.946 104.978,177.125 103.031,176.779 103.661 C 176.617 103.957,169.234 125.935,160.374 152.500 L 144.264 200.800 126.689 200.800 L 109.113 200.800 109.388 199.700 C 109.660 198.612,116.325 179.903,117.404 177.200 C 118.113 175.422,121.976 164.755,123.995 159.000 C 124.843 156.580,126.289 152.530,127.207 150.000 C 128.126 147.470,129.852 142.700,131.044 139.400 C 132.237 136.100,134.005 131.240,134.973 128.600 C 135.942 125.960,138.031 120.200,139.616 115.800 C 141.201 111.400,143.668 104.560,145.098 100.600 C 146.529 96.640,148.766 90.430,150.070 86.800 C 151.373 83.170,153.316 77.770,154.387 74.800 C 155.457 71.830,157.165 67.076,158.182 64.236 C 159.199 61.396,160.126 58.919,160.242 58.732 C 160.358 58.545,167.933 58.438,177.077 58.496 L 193.701 58.600 194.857 61.600 M197.872 205.700 C 198.780 208.395,200.631 213.750,201.983 217.600 C 203.336 221.450,205.312 227.120,206.375 230.200 C 210.063 240.887,216.354 259.040,218.989 266.600 C 224.668 282.894,225.742 285.995,227.645 291.600 C 229.561 297.242,230.206 298.776,230.499 298.388 C 230.577 298.285,237.922 276.290,246.821 249.510 L 263.000 200.821 280.700 200.810 C 290.435 200.805,298.400 200.852,298.400 200.917 C 298.400 200.981,297.483 203.546,296.362 206.617 C 294.327 212.189,292.109 218.367,288.613 228.200 C 287.596 231.060,286.155 235.020,285.411 237.000 C 284.667 238.980,282.676 244.470,280.987 249.200 C 277.936 257.743,275.065 265.669,272.801 271.800 C 272.151 273.560,270.342 278.600,268.782 283.000 C 267.222 287.400,265.329 292.624,264.576 294.610 C 263.824 296.595,262.589 300.015,261.832 302.210 C 261.076 304.404,259.268 309.440,257.815 313.400 C 256.362 317.360,254.569 322.310,253.831 324.400 C 253.092 326.490,252.222 328.920,251.897 329.800 C 251.572 330.680,250.362 334.057,249.208 337.304 L 247.110 343.209 230.315 343.104 L 213.521 343.000 212.033 339.000 C 209.835 333.086,206.949 325.129,202.385 312.400 C 201.320 309.430,199.071 303.220,197.386 298.600 C 195.702 293.980,193.725 288.490,192.994 286.400 C 192.262 284.310,190.469 279.360,189.009 275.400 C 187.549 271.440,185.751 266.490,185.014 264.400 C 184.277 262.310,183.401 259.880,183.068 259.000 C 182.164 256.615,177.757 244.376,176.153 239.800 C 175.382 237.600,174.148 234.180,173.411 232.200 C 172.674 230.220,171.591 227.250,171.006 225.600 C 170.420 223.950,169.695 221.970,169.396 221.200 C 169.096 220.430,167.916 217.190,166.774 214.000 C 165.631 210.810,164.093 206.535,163.355 204.500 L 162.014 200.800 179.117 200.800 L 196.220 200.800 197.872 205.700 \"\n stroke=\"none\"\n fill=\"#242c3c\"\n fillRule=\"evenodd\"\n />\n </g>\n </svg>\n );\n}\n\nexport default IconDark;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Wordmark from './Wordmark';\nimport IconDark from './IconDark';\n// MTS - Most instances of this component will require a \"height\" prop\n// Add additional logos here as they are used in the app. You can find them\n// in this Slack post:\n//https://impactiveinc.slack.com/archives/G014GQF3P1B/p1646238867660549?thread_ts=1646168308.890539&cid=G014GQF3P1B\n\n// If you do add a logo, please optimize it first using this tool:\n// https://jakearchibald.github.io/svgomg/\n\nfunction Logo({ variant, ...rest }) {\n switch (variant) {\n case 'wordmark':\n return <Wordmark {...rest} />;\n case 'IconDark':\n return <IconDark {...rest} />;\n default:\n return <Wordmark {...rest} />;\n }\n}\n\nLogo.propTypes = {\n variant: PropTypes.oneOf(['wordmark']),\n};\n\nLogo.defaultProps = {\n variant: 'wordmark',\n};\n\nexport default Logo;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport { useModal, useOneCampaign } from '@web/hooks';\nimport styled, { css } from 'styled-components';\nimport CampaignAndCharityModal from '@web/components/common/CampaignAndCharityModal';\nimport OneCampaignLoading from '@web/components/common/OneCampaignLoading';\nimport { replaceDefaultCampaignImage } from '@web/utils/string';\nimport JoinCampaignModal from './JoinCampaignModal';\n\nimport { DownOutlined } from '@ant-design/icons';\n\nimport SvgLogo from '@web/components/Logo';\n\nconst Wrapper = styled.div`\n width: 100%;\n padding: 1rem;\n`;\n\nconst Content = styled.div`\n box-shadow: 4px 4px 20px rgba(0, 16, 72, 0.06);\n border-radius: 16px;\n padding: 13px;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst ChangeCampaignButton = styled.button`\n display: flex;\n border: none;\n align-items: center;\n justify-content: space-between;\n font-family: ${({ theme }) => theme.fonts.bold};\n background: ${({ theme }) => theme.colors.teal10};\n font-size: 1rem;\n border-radius: 7px;\n width: 100%;\n padding: 11px;\n cursor: pointer;\n`;\n\nconst Logo = styled.img`\n border-radius: 50%;\n border: 2px solid #222222;\n margin-bottom: 11px;\n object-fit: cover;\n ${({ $mini }) => css`\n height: ${$mini ? '52px' : '100px'};\n width: ${$mini ? '52px' : '100px'};\n `}\n`;\n\nconst StyledSvgLogo = styled(SvgLogo)`\n border-radius: 50%;\n border: 2px solid #222222;\n margin-bottom: 11px;\n object-fit: cover;\n\n ${({ $mini }) => css`\n height: ${$mini ? '52px' : '100px'};\n width: ${$mini ? '52px' : '100px'};\n `}\n`;\n\nconst CampaignSelect = ({ mini }) => {\n const { selectedCampaign: campaign, joinedCampaigns: campaigns } = useSelector(\n state => state.oneCampaign,\n );\n const { t } = useTranslation();\n\n useOneCampaign();\n\n const [openCampaignAndCharityModal, closeCampaignAndCharityModal] =\n useModal(CampaignAndCharityModal);\n const [openJoinCampaignModal] = useModal(JoinCampaignModal);\n\n const pageTitle = `${t('common.your')} ${t('titles.campaigns')}`;\n\n const handleJoinCampaign = useCallback(() => {\n closeCampaignAndCharityModal();\n openJoinCampaignModal();\n }, [openJoinCampaignModal, closeCampaignAndCharityModal]);\n\n const handleSeeAll = useCallback(() => {\n openCampaignAndCharityModal({\n list: campaigns,\n onJoinCampaign: handleJoinCampaign,\n title: pageTitle,\n });\n }, [pageTitle, openCampaignAndCharityModal, campaigns, handleJoinCampaign]);\n\n const buildLogo = () => {\n return campaign ? (\n <Logo $mini={mini} src={replaceDefaultCampaignImage(campaign?.url_profile_img)} />\n ) : (\n <StyledSvgLogo $mini={mini} variant=\"IconDark\" height={25} />\n );\n };\n\n if (mini) {\n return (\n <OneCampaignLoading centered={false} ignoreNullCampaign>\n {buildLogo()}\n </OneCampaignLoading>\n );\n }\n\n return (\n <Wrapper>\n <Content>\n <OneCampaignLoading centered={false} ignoreNullCampaign>\n {buildLogo()}\n <ChangeCampaignButton onClick={handleSeeAll}>\n {campaign ? campaign?.name : t('placeholders.select_campaign')} <DownOutlined />\n </ChangeCampaignButton>\n </OneCampaignLoading>\n </Content>\n </Wrapper>\n );\n};\n\nCampaignSelect.propTypes = {\n mini: PropTypes.bool,\n};\n\nCampaignSelect.defaultProps = {\n mini: false,\n};\n\nexport default CampaignSelect;\n","import {\n ContactsOutlined,\n FileTextOutlined,\n TrophyOutlined,\n HomeOutlined,\n InboxOutlined,\n LoginOutlined,\n LogoutOutlined,\n UserOutlined,\n DoubleLeftOutlined,\n DoubleRightOutlined,\n} from '@ant-design/icons';\nimport { Layout, Menu } from 'antd';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { NavLink, Redirect, useLocation } from 'react-router-dom';\nimport styled, { css } from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport { auth } from '../../../services/api';\nimport theme, { colors } from '../../../styles/theme';\nimport { AuthContext, StateContext } from '@web/utils/context';\n\nimport poweredByImpactive from '@assets/images/logo/Impactive_Primary.png';\nimport poweredByImpactiveIcon from '@assets/images/logo/Impactive_Icon_Primary.png';\nimport CampaignSelect from './CampaignSelect';\n\nconst { Sider } = Layout;\nconst { Item } = Menu;\n\nconst Flex = styled.div`\n display: flex;\n flex-direction: column;\n align-self: flex-start;\n`;\n\nconst MenuWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n`;\n\nconst ToggleIconWrapper = styled.div`\n z-index: 3;\n cursor: pointer;\n\n > span {\n width: 20px;\n height: 20px;\n margin-bottom: 10px;\n color: ${theme.colors.black};\n }\n\n ${({ $open }) =>\n !$open &&\n css`\n position: absolute;\n left: 230px;\n top: 16px;\n width: 32px;\n height: 32px;\n background: white;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n box-shadow: 4px 4px 20px rgba(0, 16, 72, 0.06);\n > span {\n margin-bottom: 0px;\n }\n `}\n`;\n\nconst TransparentBackground = styled.div`\n position: absolute;\n width: 100vw;\n height: 100vh;\n background: black;\n opacity: 0.3;\n z-index: 2;\n`;\n\n// Changed Menu from adnd to div because antd Menu should have Menu.Item children (there were a lot of console errors)\n// but we are using links so not to rewrite styles I prefer to change it to div\nconst CustomMenu = styled.div`\n background-color: ${colors.background};\n align-items: center;\n`;\n\nconst MenuItem = styled(Item)`\n &&& {\n background: ${({ theme }) => theme.colors.background};\n font-family: ${({ theme }) => theme.fonts.black};\n color: ${({ theme, $goToAdmin }) => ($goToAdmin ? theme.colors.coral : 'unset')};\n font-size: 13px;\n letter-spacing: 1.15px;\n margin: 0 !important;\n text-transform: uppercase;\n text-decoration: none;\n width: 100%;\n padding: ${({ $logo }) => ($logo ? 'unset' : '0 16px 0 24px')};\n margin: 0 -16px 0 -24px;\n height: unset;\n display: flex;\n align-items: center;\n &:hover {\n background: ${({ theme, $logo }) => ($logo ? 'unset' : theme.colors.teal20)};\n cursor: ${({ $logo }) => ($logo ? 'unset' : 'pointer')};\n }\n :after {\n border-right: none !important;\n }\n .anticon {\n margin-right: 10px !important;\n }\n\n svg {\n width: 18px;\n height: 18px;\n }\n\n ${({ $open }) =>\n $open &&\n css`\n width: 48px;\n height: 48px;\n padding: 15px;\n justify-content: center;\n border-radius: 4px;\n .anticon {\n margin-right: 0 !important;\n svg {\n width: 18px;\n height: 18px;\n }\n }\n `}\n }\n`;\n\nconst MenuLink = styled(NavLink)`\n &&& {\n font-family: ${({ theme }) => theme.fonts.black};\n color: ${({ theme }) => theme.colors.blue};\n font-size: 13px;\n letter-spacing: 1.15px;\n margin: 0 !important;\n text-transform: uppercase;\n width: 100%;\n padding: 16px 16px 16px 24px;\n margin: 0 -16px 0 -24px;\n display: flex;\n align-items: center;\n .anticon {\n margin-right: 10px !important;\n }\n &.active {\n color: ${({ theme }) => theme.colors.coral};\n background: ${({ theme }) => theme.colors.teal20};\n }\n &:hover {\n background: ${({ theme }) => theme.colors.teal20};\n color: ${({ theme }) => theme.colors.coral};\n text-decoration: none;\n }\n\n svg {\n width: 18px;\n height: 18px;\n }\n\n ${({ $open }) =>\n $open &&\n css`\n width: 48px;\n height: 48px;\n padding: 15px;\n justify-content: center;\n border-radius: 4px;\n .anticon {\n margin-right: 0 !important;\n svg {\n width: 18px;\n height: 18px;\n }\n }\n `}\n }\n`;\n\nconst PoweredByImpactive = styled.img`\n ${({ $open }) =>\n $open\n ? css`\n height: 48px;\n width: 48px;\n margin: 24px;\n `\n : css`\n width: 70%;\n margin: 0 16px 24px 24px;\n `}\n`;\n\nconst PoweredByText = styled.div`\n margin-left: 24px;\n`;\n\nconst StyledSider = styled(Sider)`\n &&& {\n border-right: ${({ theme }) => `3px solid ${theme.colors.borderGray}`};\n background-color: ${colors.background};\n height: 100vh;\n left: 0;\n overflow: auto;\n padding: ${({ $open }) => ($open ? '7px 0' : 'unset')};\n position: fixed;\n z-index: 2;\n }\n`;\n\nconst StyledMenu = styled(Menu)`\n &&& {\n display: flex;\n align-items: center;\n flex-direction: column;\n }\n`;\n\nconst Sidebar = props => {\n const { t } = useTranslation();\n const { pathname } = useLocation();\n const { token, setAuth, user, setUser } = useContext(AuthContext);\n const { unreadMessagesCount } = useContext(StateContext);\n const [loggedOut, setLoggedOut] = useState(false);\n const [redirectURL, setRedirectURL] = useState(null);\n const [open, setOpen] = useState(props.mini);\n\n const doLogout = () => {\n auth.signOut().then(() => {\n // set logout flag so we can cleanup in useEffects\n setLoggedOut(true);\n setUser(null);\n setRedirectURL('/auth');\n });\n };\n\n const goToAdmin = () => {\n window.open('/admin', '_self');\n };\n\n useEffect(() => {\n // Unset Authentication on component cleanup, otherwise there are memory leaks.\n return () => {\n if (loggedOut) setAuth(null);\n };\n });\n\n if (redirectURL) return <Redirect to={redirectURL} />;\n\n const canAccessAdmin = user && (user.is_campaign_admin || user.can_admin_accounts);\n\n return (\n <>\n {props.mini && !open && (\n <>\n <ToggleIconWrapper onClick={() => setOpen(!open)}>\n {open ? <DoubleRightOutlined /> : <DoubleLeftOutlined />}\n </ToggleIconWrapper>\n <TransparentBackground />\n </>\n )}\n <StyledSider width={open ? '80' : '240'} $open={open} {...props}>\n {token ? (\n // Logged in\n <>\n <MenuWrapper>\n <CustomMenu theme=\"light\" mode=\"inline\" className=\"d-flex flex-column\">\n {props.mini && open && (\n <ToggleIconWrapper onClick={() => setOpen(!open)} $open>\n {open ? <DoubleRightOutlined /> : <DoubleLeftOutlined />}\n </ToggleIconWrapper>\n )}\n\n <CampaignSelect mini={open} />\n\n <MenuLink\n $open={open}\n to=\"/frontline\"\n isActive={(match, location) => match && !location.search.match(/charities/g)}\n >\n <HomeOutlined /> {!open && t('menu.actions')}\n </MenuLink>\n\n <MenuLink $open={open} to={'/leaderboard'}>\n <TrophyOutlined /> {!open && t('menu.leaderboard')}\n </MenuLink>\n\n <MenuLink $open={open} to=\"/messages\">\n <InboxOutlined /> {!open && t('menu.inbox')}\n {!open && unreadMessagesCount ? ` (${unreadMessagesCount})` : null}\n </MenuLink>\n\n <MenuLink $open={open} to=\"/contacts\">\n <ContactsOutlined /> {!open && t('menu.contacts')}\n </MenuLink>\n\n <MenuLink $open={open} to=\"/add-report\">\n <FileTextOutlined /> {!open && t('menu.add_report')}\n </MenuLink>\n\n <MenuLink $open={open} to=\"/headquarters\">\n <UserOutlined /> {!open && t('menu.my_profile')}\n </MenuLink>\n </CustomMenu>\n\n <StyledMenu>\n {canAccessAdmin && (\n <MenuItem $open={open} $goToAdmin onClick={goToAdmin}>\n <LogoutOutlined\n style={{\n color: '#f3766b',\n transform: 'rotate(180deg)',\n }}\n />\n {!open && t('menu.admin')}\n </MenuItem>\n )}\n <MenuItem $open={open} data-testid=\"logout-button\" onClick={doLogout}>\n <LogoutOutlined /> {!open && t('menu.logout')}\n </MenuItem>\n <MenuItem $open={open} style={open && { height: 'unstet' }} $logo>\n {open ? (\n <PoweredByImpactive\n $open\n src={poweredByImpactiveIcon}\n alt=\"Powered by Impactive\"\n />\n ) : (\n <Flex>\n <PoweredByText>{t('menu.powered_by')}</PoweredByText>\n <PoweredByImpactive src={poweredByImpactive} alt=\"Powered by Impactive\" />\n </Flex>\n )}\n </MenuItem>\n </StyledMenu>\n </MenuWrapper>\n </>\n ) : (\n <Menu theme=\"light\" mode=\"inline\" style={{ width: '100%' }} selectedKeys={[pathname]}>\n <MenuLink to=\"/auth\">\n <LoginOutlined /> {t('menu.sign_in')}\n </MenuLink>\n </Menu>\n )}\n </StyledSider>\n </>\n );\n};\n\nSidebar.propTypes = {\n mini: PropTypes.bool,\n};\n\nSidebar.defaultProps = {\n mini: false,\n};\n\nexport default Sidebar;\n","import { Layout } from 'antd';\nimport PropTypes from 'prop-types';\nimport queryString from 'query-string';\nimport React from 'react';\nimport { useLocation } from 'react-router-dom';\nimport styled from 'styled-components';\nimport { useMedia } from '@web/hooks';\n\nimport { track } from '../../services/analytics';\nimport { media } from '../../styles/theme';\nimport Sidebar from './Sidebar';\n\nconst { Content } = Layout;\n\n// Added a temporary grayBackground param because we're going to change the background to gray everywhere, but step by step.\n// So I added this param until we change it everywhere to make the interface look good on other pages.\nconst StyledContent = styled(Content)`\n background-color: ${({ theme, $grayBackground }) =>\n $grayBackground ? theme.colors.snow : theme.colors.white};\n min-height: 100vh !important;\n ${media.ns} {\n margin-left: 240px;\n }\n`;\n\nconst StyledSidebar = styled(Sidebar)`\n // We use the hamburger menu in AppHeader on mobile\n display: none;\n ${media.ns} {\n display: block;\n }\n`;\n\n/**\n * AppContainer is wrapper component used in all standard page-like components.\n */\nconst AppContainer = ({ children, grayBackground, ...rest }) => {\n const notSmall = useMedia('(max-width: 600px)');\n const { search } = useLocation();\n const { utm_campaign, utm_source, utm_medium } = queryString.parse(search);\n if (!!utm_campaign || !!utm_source || !!utm_medium) {\n track('UTM_REFERRAL', {\n utm_campaign: utm_campaign,\n utm_medium: utm_medium,\n utm_source: utm_source,\n });\n }\n\n return (\n <div {...rest}>\n <Layout>\n {!notSmall && <StyledSidebar data-testid=\"sidebar-menu\" />}\n <StyledContent $grayBackground={grayBackground}>{children}</StyledContent>\n </Layout>\n </div>\n );\n};\n\nAppContainer.propTypes = {\n // eslint-disable-next-line\n children: PropTypes.any.isRequired,\n grayBackground: PropTypes.bool,\n};\n\nAppContainer.defaultProps = {\n grayBackground: false,\n};\n\nexport default AppContainer;\n","import { MenuOutlined } from '@ant-design/icons';\nimport React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { useMedia } from '../../hooks';\nimport { media } from '../../styles/theme';\n\nimport Sidebar from '../AppContainer/Sidebar';\n\nconst StyledSidebar = styled(Sidebar)`\n height: 100% !important;\n margin-right: 0 !important;\n max-width: initial !important;\n min-width: initial !important;\n width: 100% !important;\n`;\n\nconst MenuButton = styled.button`\n background-color: transparent;\n border: none;\n outline: 0;\n // We add padding so we meet a11y standards for tappable areas\n padding: 12px 16px;\n position: absolute;\n right: 0px;\n top: 7px;\n`;\n\nconst MenuWrapper = styled.nav`\n ${media.ns} {\n display: none;\n }\n background-color: #fff;\n position: fixed;\n top: 61px;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n transform: translateX(${({ menuOpen }) => (menuOpen ? 0 : '-100vw')});\n transition: transform 250ms ease-out;\n`;\n\nconst StyledHamburgerMenu = styled.div`\n ${media.ns} {\n display: none;\n }\n`;\n\nfunction HamburgerMenu() {\n const notSmall = useMedia('(max-width: 600px)');\n const [menuOpen, setMenuOpen] = useState(false);\n\n useEffect(() => {\n if (notSmall) {\n document.body.style.overflow = 'initial';\n } else {\n document.body.style.overflow = menuOpen ? 'hidden' : 'initial';\n }\n }, [notSmall, menuOpen]);\n\n if (!notSmall) return null;\n\n return (\n <StyledHamburgerMenu>\n <MenuButton\n aria-label={`${menuOpen ? 'close' : 'open'} menu`}\n onClick={() => setMenuOpen(!menuOpen)}\n type=\"button\"\n >\n <MenuOutlined />\n </MenuButton>\n <MenuWrapper menuOpen={menuOpen}>\n <StyledSidebar />\n </MenuWrapper>\n </StyledHamburgerMenu>\n );\n}\n\nHamburgerMenu.propTypes = {};\n\nHamburgerMenu.defaultProps = {};\n\nexport default HamburgerMenu;\n","import { node, string } from 'prop-types';\nimport React from 'react';\nimport { NavLink } from 'react-router-dom';\nimport styled from 'styled-components';\nimport icon from '../../images/outvote-logo.png';\nimport { media, colors } from '../../styles/theme';\nimport MaxWidthContainer from '../common/MaxWidthContainer';\n\nimport HamburgerMenu from './HamburgerMenu';\n\nconst StyledAppHeader = styled.nav`\n background-color: ${({ theme }) => theme.colors.background};\n box-shadow: 0px 3px 3px 0px ${({ theme }) => theme.colors.boxShadow};\n display: flex;\n flex-direction: row;\n align-items: center;\n border-bottom: 1px solid ${colors.borderGray};\n padding: 1em;\n height: 63px;\n position: sticky;\n max-height: 63px;\n top: 0;\n z-index: 4;\n ${media.ns} {\n display: none;\n }\n`;\n\nconst TitleWrapper = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst StyledIcon = styled.img`\n display: block;\n height: 30px;\n margin-right: 10px;\n`;\n\nconst Title = styled.h2`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.bold};\n text-transform: uppercase;\n margin-bottom: 0;\n font-size: 16px;\n ${media.ns} {\n font-size: 20px;\n }\n`;\n\nconst Extra = styled.div`\n display: flex;\n flex: 1;\n padding-left: 1em;\n align-items: center;\n`;\n\nconst AppHeader = ({ extra, title }) => (\n <StyledAppHeader>\n <MaxWidthContainer className=\"flexbox\">\n <TitleWrapper>\n <div>\n <NavLink style={{ display: 'flex' }} to=\"/frontline\">\n <StyledIcon src={icon} alt=\"\" />\n </NavLink>\n </div>\n <Title>{title}</Title>\n </TitleWrapper>\n <Extra>{extra}</Extra>\n {/* only shows up in mobile */}\n <HamburgerMenu />\n </MaxWidthContainer>\n </StyledAppHeader>\n);\n\nAppHeader.propTypes = {\n extra: node,\n title: string,\n};\n\nAppHeader.defaultProps = {\n extra: null,\n};\n\nexport default AppHeader;\n","import React, { useContext, useState, useEffect } from 'react';\n\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport { getLocalizedOnboardingData } from '@web/utils/other';\nimport { setCampaign } from '@web/reducers/oneCampaign';\nimport { users as userAPI } from '@web/services/api';\nimport { AuthContext } from '@web/utils/context';\nimport ImpactiveButton from '@web/components/ImpactiveButton';\nimport { Alert, message } from 'antd';\n\nconst Flex = styled.div`\n display: flex;\n align-items: center;\n white-space: pre-wrap;\n gap: 60px;\n > button {\n white-space: nowrap;\n }\n`;\n\nconst StyledAlert = styled(Alert)`\n &&& {\n background-color: #fa8c161a;\n border-color: #fa8c1680;\n border-radius: 6px;\n padding: 13px 16px;\n\n .anticon {\n color: #fa8c16;\n }\n }\n`;\n\n/**\n * This alert is shown when the user is viewing content for a campaign, that is not currently selected in oneCampaign.\n * For example, when being redirected from a share link.\n */\nconst SwitchCampaignAlert = ({ campaign, onSwitchCampaign }) => {\n const [firstShown, setFirstShown] = useState(false);\n\n const { t } = useTranslation();\n const user = useContext(AuthContext);\n const selectedCampaign = useSelector(state => state.oneCampaign.selectedCampaign);\n\n const joined = campaign?.user_campaign?.joined;\n\n const dispatch = useDispatch();\n\n const changeCampaign = data => {\n dispatch(setCampaign(data));\n setFirstShown(true);\n };\n\n const onSwitchClick = () => {\n const localizedCampaign = getLocalizedOnboardingData(campaign);\n\n if (!joined) {\n userAPI\n .followCampaign({\n campaign_id: campaign?.id,\n campaign_name: campaign?.name,\n campaign_slug: campaign?.slug,\n })\n .then(() => {\n const joinedCampaign = {\n ...localizedCampaign,\n user_campaign: {\n ...localizedCampaign.user_campaign,\n joined: true,\n },\n };\n changeCampaign(joinedCampaign);\n onSwitchCampaign && onSwitchCampaign(joinedCampaign);\n })\n .catch(err => message.error(err.message || t('common.something_went_wrong')));\n } else {\n changeCampaign(localizedCampaign);\n onSwitchCampaign && onSwitchCampaign(localizedCampaign);\n }\n\n setFirstShown(true);\n };\n\n const [showModal, setShowModal] = useState(true);\n useEffect(() => {\n //if a userr was on that campaign in the first place, or switches to it, we do not need to show the alert anymore\n if (selectedCampaign?.id === campaign?.id) {\n setShowModal(false);\n setFirstShown(true);\n }\n //do not show the alert if the user has already seen it, or if something did not load yet\n else if (firstShown || !user || !selectedCampaign || !campaign || !campaign?.active) {\n setShowModal(false);\n } else {\n setShowModal(true);\n }\n }, [user, selectedCampaign, campaign, firstShown, showModal]);\n\n if (!showModal) return null;\n\n return (\n <StyledAlert\n type=\"warning\"\n showIcon\n message={\n <Flex>\n {t(\n joined\n ? 'campaign.switch_alert.message_switch'\n : 'campaign.switch_alert.message_switch_and_join',\n { campaign: campaign?.name },\n )}\n <ImpactiveButton onClick={onSwitchClick}>\n {t('campaign.switch_alert.switch')}\n </ImpactiveButton>\n </Flex>\n }\n onClose={() => setFirstShown(true)}\n closable\n />\n );\n};\n\nSwitchCampaignAlert.propTypes = {\n campaign: PropTypes.object,\n onSwitchCampaign: PropTypes.func,\n};\n\nexport default SwitchCampaignAlert;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\nimport CampaignRightSidebar from 'web/components/common/CampaignRightSidebar';\nimport { media } from 'web/styles/theme';\nimport Activity from '../Activity';\nimport AppContainer from '../AppContainer';\nimport AppHeader from '../AppHeader';\nimport Loading from '../common/Loading';\nimport SwitchCampaignAlert from '../common/SwitchCampaignAlert';\n\nconst ActivityContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n padding-top: 10px;\n ${media.ns} {\n width: 700px;\n height: 100%;\n }\n`;\n\nconst ActivityAndCampaign = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n ${media.ns} {\n align-items: normal;\n flex-direction: row;\n }\n`;\n\nconst ActivityDetailCore = ({\n title,\n appContainerDataTestId,\n activity,\n completed,\n headerTitle,\n userActivity,\n campaign,\n setCampaign,\n onActivityActionButtonPress,\n loading,\n}) => {\n return (\n <>\n <AppHeader title={title} />\n <AppContainer data-testid={appContainerDataTestId}>\n {loading && (\n <div className=\"flex-row justify-content-center mt-4\">\n <Loading />\n </div>\n )}\n {!loading && (\n <>\n <ActivityAndCampaign>\n <ActivityContainer>\n <SwitchCampaignAlert campaign={campaign} onSwitchCampaign={setCampaign} />\n <Activity\n activity={activity}\n completed={completed}\n detailedView\n headerTitle={headerTitle}\n userActivity={userActivity}\n onActivityActionButtonPress={onActivityActionButtonPress}\n />\n </ActivityContainer>\n <CampaignRightSidebar campaignId={campaign.id} />\n </ActivityAndCampaign>\n </>\n )}\n </AppContainer>\n </>\n );\n};\n\nActivityDetailCore.propTypes = {\n activity: PropTypes.object,\n appContainerDataTestId: PropTypes.string,\n campaign: PropTypes.object,\n completed: PropTypes.bool,\n headerTitle: PropTypes.string,\n loading: PropTypes.bool,\n onActivityActionButtonPress: PropTypes.func,\n setCampaign: PropTypes.func,\n title: PropTypes.string,\n userActivity: PropTypes.object,\n};\n\nexport default ActivityDetailCore;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Error(props) {\n return (\n <svg viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M7 0.875C3.61758 0.875 0.875 3.61758 0.875 7C0.875 10.3824 3.61758 13.125 7 13.125C10.3824 13.125 13.125 10.3824 13.125 7C13.125 3.61758 10.3824 0.875 7 0.875ZM7 12.0859C4.1918 12.0859 1.91406 9.8082 1.91406 7C1.91406 4.1918 4.1918 1.91406 7 1.91406C9.8082 1.91406 12.0859 4.1918 12.0859 7C12.0859 9.8082 9.8082 12.0859 7 12.0859Z\"\n fill=\"#F5222D\"\n />\n <path\n d=\"M6.34354 9.40625C6.34354 9.5803 6.41268 9.74722 6.53575 9.87029C6.65882 9.99336 6.82574 10.0625 6.99979 10.0625C7.17383 10.0625 7.34075 9.99336 7.46382 9.87029C7.5869 9.74722 7.65604 9.5803 7.65604 9.40625C7.65604 9.2322 7.5869 9.06528 7.46382 8.94221C7.34075 8.81914 7.17383 8.75 6.99979 8.75C6.82574 8.75 6.65882 8.81914 6.53575 8.94221C6.41268 9.06528 6.34354 9.2322 6.34354 9.40625ZM6.67166 7.875H7.32791C7.38807 7.875 7.43729 7.82578 7.43729 7.76562V4.04688C7.43729 3.98672 7.38807 3.9375 7.32791 3.9375H6.67166C6.61151 3.9375 6.56229 3.98672 6.56229 4.04688V7.76562C6.56229 7.82578 6.61151 7.875 6.67166 7.875Z\"\n fill=\"#F5222D\"\n />\n </svg>\n );\n}\n\nError.propTypes = {\n height: PropTypes.number,\n};\n\nError.defaultProps = {\n height: 12,\n};\n\nexport default Error;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Error from '../icons/Error';\nimport theme from '@web/styles/theme';\n\nconst StyledErrorText = styled.p`\n align-items: center;\n color: ${theme.colors.red};\n display: flex;\n font-size: 14px;\n margin-bottom: 0;\n`;\n\nfunction ErrorText({ children }) {\n return (\n <StyledErrorText>\n <Error height={12} style={{ marginRight: 5 }} />\n <span>{children}</span>\n </StyledErrorText>\n );\n}\n\nErrorText.propTypes = {\n children: PropTypes.any.isRequired,\n};\n\nErrorText.defaultProps = {};\n\nexport default ErrorText;\n","import theme from '@web/styles/theme';\nimport { ErrorMessage, getIn } from 'formik';\nimport { bool, func, node, object, string, shape } from 'prop-types';\nimport React, { useCallback, useState } from 'react';\nimport PhoneInput from 'react-phone-input-2';\nimport styled, { css } from 'styled-components';\nimport 'react-phone-input-2/lib/style.css';\n\nimport ErrorText from '@web/components/VoterRegistration/newComponents/Input/ErrorText';\n\nconst Wrapper = styled.div``;\n\nconst PrefixWrapper = styled.div`\n position: absolute;\n margin-top: auto;\n margin-bottom: auto;\n top: 0;\n bottom: 0;\n left: 14px;\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n color: ${({ $focused, $outlineColor, $focusedColor }) => {\n if ($focused) {\n return $focusedColor ?? 'black';\n }\n\n if ($focusedColor) {\n return `${$outlineColor}80`;\n }\n\n return $outlineColor ?? theme.colors.gray;\n }};\n }\n`;\n\nexport const Label = styled.div`\n margin-bottom: 5px;\n text-transform: ${({ $textTransform }) => $textTransform ?? 'uppercase'};\n font-size: 0.875rem;\n ${({ theme, $labelFontColor }) => css`\n color: ${$labelFontColor ?? theme.colors.black};\n font-family: ${theme.fonts.bold};\n `}\n`;\n\nconst Required = styled.span`\n color: red;\n margin-left: 3px;\n`;\n\nexport const StyledErrorMessage = styled(ErrorMessage).attrs({ component: 'div' })`\n color: #ea5156;\n font-size: 12px;\n margin-top: 4px;\n`;\n\nconst StyledField = styled(PhoneInput)`\n &&& {\n font-family: unset;\n input {\n border: 1px solid\n ${({ $outlineColor, $hasError }) =>\n $hasError ? theme.colors.red : $outlineColor ?? theme.colors.gray};\n background-color: ${({ $backgroundColor }) => $backgroundColor ?? theme.colors.alabaster};\n border-radius: 6px;\n padding: 10px 14px 12px;\n padding-left: ${({ $withPrefix }) => ($withPrefix ? '40px' : '10px')};\n color: ${({ $fontColor }) => $fontColor ?? theme.colors.black};\n width: 100%;\n height: 42px;\n font-size: 14px;\n\n -webkit-background-clip: text !important;\n background-clip: text !important;\n &:-webkit-autofill:first-line {\n color: ${({ $fontColor }) => $fontColor ?? theme.colors.black};\n }\n &:-webkit-autofill {\n color: ${({ $fontColor }) => $fontColor ?? theme.colors.black};\n -webkit-text-fill-color: ${({ $fontColor }) => $fontColor ?? theme.colors.black};\n }\n box-shadow: 0 0 0 30px ${({ $backgroundColor }) => $backgroundColor ?? theme.colors.alabaster}\n inset !important;\n -webkit-box-shadow: 0 0 0 30px\n ${({ $backgroundColor }) => $backgroundColor ?? theme.colors.alabaster} inset !important;\n\n :hover {\n border: 1px solid\n ${({ theme, $outlineColor, $isSurvey }) =>\n $isSurvey ? theme.colors.dodgerBlue : $outlineColor ?? theme.colors.dodgerBlue};\n }\n\n &:focus-visible {\n outline: 0;\n border-right-width: 1px !important;\n border: 1px solid\n ${({ $hasError, theme, $outlineColor, $isSurvey }) =>\n $hasError\n ? theme.colors.red\n : $isSurvey\n ? theme.colors.dodgerBlue\n : $outlineColor ?? theme.colors.dodgerBlue};\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n }\n\n ::placeholder {\n color: ${({ $outlineColor }) => $outlineColor ?? theme.colors.blackL72};\n }\n\n ${({ $isFanOut }) =>\n $isFanOut &&\n css`\n margin-top: 2rem;\n border-radius: 4px;\n `}\n\n .ant-input-prefix {\n margin-right: 12px;\n }\n }\n }\n`;\n\nconst PhoneNumberInput = ({\n name,\n value,\n label,\n placeholder,\n onChange,\n prefixIcon,\n shouldFocusIcon,\n isRequired,\n labelStyles,\n isFanOut,\n isSurvey,\n formik,\n backgroundColor,\n fontColor,\n labelFontColor,\n outlineColor,\n textTransform,\n focusedColor,\n withoutLabel,\n country,\n ...rest\n}) => {\n const [focused, setFocused] = useState(false);\n const handleChange = useCallback(\n (val, _, event) => {\n const valWithMask = event.target.value;\n if (valWithMask.startsWith('+1')) {\n onChange(val);\n } else {\n onChange(`1${val}`);\n }\n },\n [onChange],\n );\n const error = getIn(formik?.errors, name);\n const touched = getIn(formik?.touched, name);\n const hasError = touched && error;\n\n return (\n <Wrapper>\n {!withoutLabel && (\n <Label $labelFontColor={labelFontColor} $textTransform={textTransform} style={labelStyles}>\n {label}\n {isRequired && <Required>*</Required>}\n </Label>\n )}\n <div style={{ position: 'relative' }}>\n <StyledField\n country={country ?? 'us'}\n inputProps={{ name }}\n placeholder={placeholder}\n onlyCountries={['us']}\n value={value}\n buttonStyle={{ display: 'none' }}\n defaultMask=\"+1 (...) ...-....\"\n onChange={handleChange}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n $withPrefix={!!prefixIcon}\n $outlineColor={outlineColor}\n $backgroundColor={backgroundColor}\n $fontColor={fontColor}\n $isFanOut={isFanOut}\n $isSurvey={isSurvey}\n $hasError={hasError}\n {...rest}\n />\n {prefixIcon && (\n <PrefixWrapper\n $focusedColor={focusedColor}\n $outlineColor={outlineColor}\n $focused={shouldFocusIcon ? focused : false}\n >\n {prefixIcon}\n </PrefixWrapper>\n )}\n </div>\n {isFanOut ? (\n hasError && <ErrorText children={error} />\n ) : (\n <StyledErrorMessage data-testid={`${name}-error`} name={name} />\n )}\n </Wrapper>\n );\n};\n\nPhoneNumberInput.propTypes = {\n backgroundColor: string,\n country: string,\n focusedColor: string,\n fontColor: string,\n formik: shape({\n errors: object,\n handleBlur: func,\n isSubmitting: bool,\n setFieldTouched: func,\n setFieldValue: func,\n touched: bool,\n values: object,\n }),\n isFanOut: bool,\n isRequired: bool,\n isSurvey: bool,\n label: string,\n labelFontColor: string,\n labelStyles: object,\n name: string.isRequired,\n onChange: func,\n outlineColor: string,\n placeholder: string,\n prefixIcon: node,\n shouldFocusIcon: bool,\n textTransform: string,\n value: string,\n withoutLabel: bool,\n};\n\nexport default PhoneNumberInput;\n","import theme from '@web/styles/theme';\nimport { Input } from 'antd';\nimport { ErrorMessage } from 'formik';\nimport { string, bool } from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nconst Wrapper = styled.div``;\n\nexport const Label = styled.div`\n margin-bottom: 5px;\n text-transform: ${({ $textTransform }) => $textTransform ?? 'uppercase'};\n font-size: 0.875rem;\n\n color: ${({ $labelFontColor }) => $labelFontColor ?? theme.colors.black};\n font-family: ${theme.fonts.bold};\n`;\n\nexport const StyledErrorMessage = styled(ErrorMessage).attrs({ component: 'div' })`\n color: #ea5156;\n font-size: 12px;\n margin-top: 4px;\n`;\n\nconst StyledField = styled(Input)`\n &&& {\n border: 1px solid ${({ $outlineColor }) => $outlineColor ?? theme.colors.gray};\n background-color: ${({ $backgroundColor }) => $backgroundColor ?? theme.colors.alabaster};\n border-radius: 6px;\n padding: 10px 14px 12px;\n color: ${({ $fontColor }) => $fontColor ?? theme.colors.black};\n width: 100%;\n height: 42px;\n\n &:hover {\n border: 1px solid #40a9ff;\n }\n\n &:focus-visible {\n outline: 0;\n border-right-width: 1px !important;\n border: 1px solid #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n }\n\n svg {\n color: ${({ $outlineColor }) => $outlineColor ?? theme.colors.gray};\n }\n\n ::placeholder {\n color: ${({ $outlineColor }) => $outlineColor ?? theme.colors.blackL72};\n }\n\n input {\n background-color: ${({ $backgroundColor }) => $backgroundColor ?? theme.colors.alabaster};\n color: ${({ $fontColor }) => $fontColor ?? theme.colors.black};\n\n ::placeholder {\n color: ${({ $outlineColor }) => $outlineColor ?? theme.colors.blackL72};\n }\n\n -webkit-background-clip: text !important;\n background-clip: text !important;\n -webkit-autofill:first-line {\n color: ${({ $fontColor }) => $fontColor ?? theme.colors.black};\n }\n\n box-shadow: 0 0 0 30px ${({ $backgroundColor }) => $backgroundColor ?? theme.colors.alabaster}\n inset !important;\n -webkit-box-shadow: 0 0 0 30px\n ${({ $backgroundColor }) => $backgroundColor ?? theme.colors.alabaster} inset !important;\n }\n\n .ant-input-prefix {\n margin-right: 12px;\n }\n }\n`;\n\nconst FormInput = ({\n name,\n value,\n label,\n placeholder,\n backgroundColor,\n fontColor,\n labelFontColor,\n outlineColor,\n textTransform,\n withoutLabel,\n ...rest\n}) => {\n return (\n <Wrapper>\n {!withoutLabel && (\n <Label $textTransform={textTransform} $labelFontColor={labelFontColor}>\n {label}\n </Label>\n )}\n <StyledField\n {...rest}\n $outlineColor={outlineColor}\n $backgroundColor={backgroundColor}\n $fontColor={fontColor}\n name={name}\n value={value}\n placeholder={placeholder}\n />\n <StyledErrorMessage data-testid={`${name}-error`} name={name} />\n </Wrapper>\n );\n};\n\nFormInput.propTypes = {\n backgroundColor: string,\n fontColor: string,\n label: string,\n labelFontColor: string,\n name: string.isRequired,\n outlineColor: string,\n placeholder: string,\n textTransform: string,\n value: string,\n withoutLabel: bool,\n};\n\nexport default FormInput;\n","import React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport * as yup from 'yup';\nimport { Formik, Form } from 'formik';\n\nimport ImpactiveButton from '../../ImpactiveButton';\nimport { setAppLanguage } from '../../i18n';\nimport i18n from '@web/components/i18n';\nimport PhoneNumberInput from '@web/components/common/shared/PhoneNumberInput';\nimport FormInput from '@web/components/common/shared/FormInput';\nimport ImpactiveSelect from '@admin/components/helpers/ImpactiveSelect';\nimport theme from '@web/styles/theme';\n\nconst { t: translate } = i18n;\n\nconst StyledForm = styled(Form)`\n display: flex;\n flex-direction: column;\n width: 100%;\n gap: 20px;\n`;\n\nconst StyledImpactiveSelect = styled(ImpactiveSelect)`\n &&& {\n .ant-select-selector {\n border-radius: 6px;\n background-color: ${theme.colors.alabaster};\n }\n }\n`;\n\nconst statuses = [\n { label: 'English', value: 'en' },\n { label: 'Español', value: 'es' },\n { label: 'í•œêµì–´', value: 'ko' },\n];\n\nconst validationSchema = yup.object().shape({\n first_name: yup.string().nullable().required(translate('auth.complete_auth.errors.first_name')),\n last_name: yup.string().nullable().required(translate('auth.complete_auth.errors.last_name')),\n locale: yup.string().required('Language is required'),\n phone: yup\n .string()\n .nullable()\n .matches(/^(\\1)?[0-9]{11}$/, translate('auth.complete_auth.errors.invalid_phone'))\n .required(translate('auth.complete_auth.errors.phone')),\n zip: yup\n .string()\n .nullable()\n .matches(/^\\d{5}$/, translate('auth.complete_auth.errors.invalid_zip'))\n .required(translate('auth.complete_auth.errors.zip')),\n});\n\nconst UserDetails = ({ onSubmit, user }) => {\n const { t } = useTranslation();\n\n const initialValues = useMemo(\n () => ({\n first_name: user?.first_name,\n last_name: user?.last_name,\n locale: user?.locale || 'en',\n phone: user?.phone,\n zip: user?.supplied_zip_code,\n }),\n [user],\n );\n\n const handleSubmit = useCallback(\n (values, { setSubmitting }) => {\n onSubmit(values, setSubmitting);\n },\n [onSubmit],\n );\n\n return (\n <Formik\n onSubmit={handleSubmit}\n validationSchema={validationSchema}\n initialValues={initialValues}\n render={({ values, isSubmitting, handleChange, setFieldValue, errors, touched }) => {\n return (\n <StyledForm>\n <div className=\"h3 text-center\">{t('campaign.onboarding.welcome')}</div>\n\n <div className=\"text-center\">{t('campaign.onboarding.know_better')}</div>\n\n <FormInput\n name=\"first_name\"\n label={t('placeholders.first_name')}\n placeholder={t('placeholders.first_name')}\n withoutLabel\n value={values.first_name}\n onChange={handleChange}\n />\n\n <FormInput\n name=\"last_name\"\n label={t('placeholders.last_name')}\n placeholder={t('placeholders.last_name')}\n withoutLabel\n value={values.last_name}\n onChange={handleChange}\n />\n\n <PhoneNumberInput\n name=\"phone\"\n label={t('placeholders.phone_number')}\n placeholder={t('placeholders.phone_number')}\n isRequired\n withoutLabel\n value={values.phone}\n onChange={e => setFieldValue('phone', e)}\n />\n\n <FormInput\n name=\"zip\"\n formik={{ errors, touched, values }}\n label={t('placeholders.zip')}\n placeholder={t('placeholders.zip')}\n withoutLabel\n value={values.zip}\n onChange={handleChange}\n maxLength={5}\n />\n\n <StyledImpactiveSelect\n name=\"locale\"\n placeholder=\"Language\"\n options={statuses}\n allowClear={false}\n onChange={e => {\n setFieldValue('locale', e);\n setAppLanguage(e);\n }}\n value={values.locale}\n />\n\n <div className=\"d-flex flex-row align-items-center justify-content-center text-center\">\n <ImpactiveButton size=\"large\" htmlType=\"submit\" disabled={isSubmitting}>\n {t('common.continue')}\n </ImpactiveButton>\n </div>\n </StyledForm>\n );\n }}\n />\n );\n};\n\nUserDetails.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n user: PropTypes.object,\n};\n\nexport default UserDetails;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\n\nimport ImpactiveButton from '@web/components/ImpactiveButton';\n\nconst HeaderMedia = styled.div`\n display: flex;\n justify-content: center;\n flex-direction: column;\n align-items: center;\n margin-bottom: 2em;\n`;\n\nconst DescriptionText = styled.div`\n display: flex;\n white-space: pre-wrap;\n margin-bottom: 2em;\n text-align: center;\n`;\n\nconst Instructions = ({ campaign, onInstructionsFinish }) => {\n const { t } = useTranslation();\n\n return (\n <>\n <HeaderMedia>\n <h1>{t('campaign.onboarding.welcome')}</h1>\n {campaign?.instructions_video_url && (\n <video controls width=\"100%\" height=\"320\">\n <source src={campaign.instructions_video_url} />\n <p>\n {t('campaign.onboarding.video_not_supported')}\n <a href={campaign.instructions_video_url}>{t('common.link')}</a>\n </p>\n </video>\n )}\n </HeaderMedia>\n\n {campaign?.instructions_text && (\n <DescriptionText>{campaign?.instructions_text}</DescriptionText>\n )}\n\n <ImpactiveButton size=\"large\" onClick={onInstructionsFinish}>\n {t('common.continue')}\n </ImpactiveButton>\n </>\n );\n};\n\nInstructions.propTypes = {\n campaign: PropTypes.object,\n onInstructionsFinish: PropTypes.func.isRequired,\n};\n\nexport default Instructions;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { Radio } from 'antd';\nimport TextArea from 'antd/lib/input/TextArea';\nimport styled from 'styled-components';\n\nconst SectionTitle = styled.div`\n font-family: ${({ theme, regular }) => (regular ? theme.fonts.regular : theme.fonts.semibold)};\n color: ${({ theme }) => theme.colors.black};\n font-size: 1rem;\n`;\n\nconst Customization = styled.div`\n width: 100%;\n`;\n\nconst TextFieldContainer = styled.div``;\n\nconst SelectionFieldRadio = styled.div``;\n\nconst RadioStyled = styled(Radio)`\n &&& {\n margin: 10px 5px 10px 0;\n font-family: ${({ theme, regular }) => (regular ? theme.fonts.regular : theme.fonts.semibold)};\n color: ${({ theme }) => theme.colors.black};\n font-size: 1rem;\n }\n`;\n\nconst StyledRadioGroup = styled(Radio.Group)`\n &&& {\n display: flex;\n flex-direction: column;\n }\n`;\n\nconst CustomFieldsList = ({ customizations, setUserReportCustomizations }) => {\n const onCustomFieldTextUpdate = useCallback(\n (selectedSlug, e) => {\n const updatedFields = customizations.map(field => {\n if (field.slug !== selectedSlug) {\n return field;\n }\n return {\n ...field,\n // When the report is empty, the field's default value is null,\n // so if the user has filled in something and then cleared the field,\n // we'll need the same value as the initial to disable the button\n value: e.target.value !== '' ? e.target.value : null,\n };\n });\n setUserReportCustomizations(updatedFields);\n },\n [customizations, setUserReportCustomizations],\n );\n\n const onCustomFieldSelectUpdate = useCallback(\n (selectedSlug, val) => {\n const updatedFields = customizations.map(field => {\n if (field.slug !== selectedSlug) {\n return field;\n }\n return {\n ...field,\n value: val,\n };\n });\n setUserReportCustomizations(updatedFields);\n },\n [customizations, setUserReportCustomizations],\n );\n\n const handleRadioClick = useCallback(\n (field, value) => {\n onCustomFieldSelectUpdate(field.slug, field.value === value ? null : value);\n },\n [onCustomFieldSelectUpdate],\n );\n\n return customizations.map(field => {\n if (\n (field.type === 'SelectionField' && field.available_values.length > 0) ||\n field.type === 'TextField'\n ) {\n return (\n <Customization className=\"py-3\" key={field.slug}>\n {field.type === 'TextField' && (\n <TextFieldContainer>\n <SectionTitle className=\"pb-2\">{field.prompt || field.name}</SectionTitle>\n\n <TextArea\n name={field.slug}\n value={field.value}\n autoSize={{ minRows: 4 }}\n onChange={e => onCustomFieldTextUpdate(field.slug, e)}\n />\n </TextFieldContainer>\n )}\n\n {field.type === 'SelectionField' && (\n <SelectionFieldRadio>\n <SectionTitle className=\"pb-2\">{field.prompt || field.name}</SectionTitle>\n <StyledRadioGroup value={field.value}>\n {field.available_values.map((val, fieldIndex) => (\n <RadioStyled\n key={fieldIndex}\n onClick={() => handleRadioClick(field, val)}\n regular={field.value !== val}\n value={val}\n >\n {val}\n </RadioStyled>\n ))}\n </StyledRadioGroup>\n </SelectionFieldRadio>\n )}\n </Customization>\n );\n }\n return null;\n });\n};\n\nCustomFieldsList.propTypes = {\n customizations: PropTypes.array.isRequired,\n setUserReportCustomizations: PropTypes.func.isRequired,\n};\n\nexport default CustomFieldsList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport CustomFieldsList from '@web/components/common/CustomFieldsList';\nimport ImpactiveButton from '@web/components/ImpactiveButton';\n\nconst CustomFields = ({ campaign, CFs, setCFs, handleSubmitReport }) => {\n const { t } = useTranslation();\n\n return (\n <>\n <div className=\"d-flex flex-column align-items-center\">\n <h1>{t('campaign.onboarding.welcome')}</h1>\n <p>{t('campaign.onboarding.answer_questions', { name: campaign?.name })}</p>\n </div>\n <CustomFieldsList\n customizations={CFs}\n setUserReportCustomizations={updatedCustomFields => setCFs(updatedCustomFields)}\n />\n <ImpactiveButton size=\"large\" onClick={handleSubmitReport}>\n {t('common.continue')}\n </ImpactiveButton>\n </>\n );\n};\n\nCustomFields.propTypes = {\n campaign: PropTypes.object,\n CFs: PropTypes.array.isRequired,\n handleSubmitReport: PropTypes.func.isRequired,\n setCFs: PropTypes.func.isRequired,\n};\n\nexport default CustomFields;\n","import React, { useContext, useEffect, useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { message } from 'antd';\nimport queryString from 'query-string';\n\nimport { getLocalizedOnboardingData, sortByDisplayOrderFn } from 'web/utils/other';\nimport { track } from '../../../services/analytics';\nimport { campaigns, users as usersApi } from '../../../services/api';\nimport { AuthContext } from '../../../utils/context';\nimport { isAuthFinished, isShowCampaignOnboarding } from '@web/utils/other';\nimport ImpactiveModal from '../ImpactiveModal';\nimport UserDetails from './UserDetails';\nimport Instructions from './Instructions';\nimport CustomFields from './CustomFields';\nimport { useLocation, useHistory } from 'react-router-dom';\n\nconst USER_DETAIL_SCREEN = 'user_detail_screen';\nconst INSTRUCTIONS_SCREEN = 'instructions_screen';\nconst CUSTOM_FIELDS_SCREEN = 'custom_fields_screen';\n\n/**\n * Modal dialog that shows welcome instructions when user intially logs in/signs up\n */\nconst OnboardingModal = ({ onCloseCallback }) => {\n const { search } = useLocation();\n const { showOnboarding } = queryString.parse(search);\n const { t } = useTranslation();\n const { token, user, setUser, isLockedToCampaign } = useContext(AuthContext);\n const [displayModal, setDisplayModal] = useState(true);\n const [campaign, setCampaign] = useState(null);\n const [CFs, setCFs] = useState([]);\n const history = useHistory();\n\n const [screen, setScreen] = useState(null);\n\n const clearSearch = useCallback(() => {\n if (showOnboarding) {\n history.replace({\n search: '',\n });\n }\n }, [history, showOnboarding]);\n\n const closeModal = useCallback(() => {\n clearSearch();\n track('CLOSED_ONBOARDING_MODAL');\n usersApi.updateMe({ onboarding_viewed: true }).then(res => {\n const {\n data: { data: current_user },\n } = res;\n setUser(current_user);\n setDisplayModal(false);\n onCloseCallback();\n });\n }, [setUser, onCloseCallback, clearSearch]);\n\n useEffect(() => {\n track('VIEW_INSTRUCTIONS_SCREEN');\n }, []);\n\n useEffect(() => {\n // We only care about onboarding instructions for logged in users\n if (!token || !user) return;\n\n const { onboarding_viewed } = user;\n\n // Only continue if user has not seen welcome instructions yet\n // Or if user joined a new campaign via join code\n if (onboarding_viewed && !showOnboarding) return;\n\n const campaignId = user.locked_campaign_id || user.last_campaign_id;\n\n if (!campaignId) {\n // Fetch campaign if locked in or coming from campaign screen, otherwise just display default welcome screen\n if (isAuthFinished(user)) {\n return;\n } else {\n setScreen(USER_DETAIL_SCREEN);\n setDisplayModal(true);\n }\n return;\n }\n\n campaigns.getCampaign({ id: campaignId }).then(({ data: { data } }) => {\n const localizedData = getLocalizedOnboardingData(data);\n const onboardingCFs =\n data.custom_fields?.filter(cf => cf.onboarding_question)?.sort(sortByDisplayOrderFn) || [];\n\n setCampaign(localizedData);\n setCFs(onboardingCFs);\n\n if (isShowCampaignOnboarding(localizedData) || !!onboardingCFs?.length) {\n setScreen(isShowCampaignOnboarding(data) ? INSTRUCTIONS_SCREEN : CUSTOM_FIELDS_SCREEN);\n setDisplayModal(true);\n }\n });\n\n // Retrigger effect whenever context flags are updated\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLockedToCampaign, user, showOnboarding]);\n\n const onUserDetailSubmit = useCallback(\n (values, setSubmitting) => {\n clearSearch();\n setSubmitting(true);\n const { first_name, last_name, phone, zip, locale } = values;\n\n usersApi\n .updateMe({\n first_name,\n last_name,\n locale,\n phone: `+${phone}`,\n supplied_zip_code: zip,\n })\n .then(() => {\n if (isShowCampaignOnboarding(campaign)) {\n setScreen(INSTRUCTIONS_SCREEN);\n return;\n }\n if (CFs?.length) {\n setScreen(CUSTOM_FIELDS_SCREEN);\n return;\n }\n closeModal();\n })\n .catch(error => {\n message.error(\n error?.response?.data?.message || error?.message || t('common.something_went_wrong'),\n );\n })\n .finally(() => setSubmitting(false));\n },\n [CFs, campaign, closeModal, clearSearch, t],\n );\n\n const onInstructionsFinish = useCallback(() => {\n if (CFs?.length) {\n clearSearch();\n setScreen(CUSTOM_FIELDS_SCREEN);\n } else {\n closeModal();\n }\n }, [CFs, closeModal, clearSearch]);\n\n const handleSubmitReport = useCallback(() => {\n if (!campaign || !user || !CFs?.length) {\n return;\n }\n\n const userReportBody = {\n campaign_id: campaign.id,\n customizations_attributes: CFs.map(c => {\n return {\n custom_field_id: c.id,\n value: c.value || '',\n };\n }),\n reportable_id: user.id,\n reportable_type: 'User',\n };\n\n campaigns.submitOnboardingReport({ campaign_id: campaign.id }, userReportBody).then(() => {\n closeModal();\n });\n }, [campaign, user, CFs, closeModal]);\n\n return (\n <ImpactiveModal visible={displayModal && screen} closable={false} footer={null} width={700}>\n <div className=\"d-flex flex-column align-items-center\">\n {screen === USER_DETAIL_SCREEN ? (\n <UserDetails onSubmit={onUserDetailSubmit} user={user} />\n ) : screen === INSTRUCTIONS_SCREEN ? (\n <Instructions campaign={campaign} onInstructionsFinish={onInstructionsFinish} />\n ) : screen === CUSTOM_FIELDS_SCREEN ? (\n <CustomFields\n campaign={campaign}\n CFs={CFs}\n setCFs={setCFs}\n handleSubmitReport={handleSubmitReport}\n />\n ) : (\n <div />\n )}\n </div>\n </ImpactiveModal>\n );\n};\n\nOnboardingModal.propTypes = {\n onCloseCallback: PropTypes.func,\n};\n\nOnboardingModal.defaultProps = {\n onCloseCallback: () => {},\n};\n\nexport default OnboardingModal;\n","import React, { useState, useCallback, useEffect } from 'react';\n\nimport ActivityDetailCore from './ActivityDetailCore';\nimport OnboardingModal from 'web/components/common/OnboardingModal';\n\nimport { useParams } from 'react-router-dom';\nimport { useDocumentTitle } from '../../hooks/useDocumentTitle';\nimport { useTranslation } from 'react-i18next';\nimport { user, campaigns as campaignAPI } from '../../services/api';\n\nimport './activity-detail.scss';\n\nconst ActivityDetail = () => {\n const { t } = useTranslation();\n\n // Extract userActivityId from params as a number\n const { userActivityId: userActivityIdParam } = useParams();\n const userActivityId = parseInt(userActivityIdParam);\n\n const [userActivity, setUserActivity] = useState({});\n const [campaign, setCampaign] = useState(null); // Used for showing welcome modal\n\n const [loading, setLoading] = useState(true);\n\n const loadActivity = useCallback(() => {\n setLoading(true);\n user.getUserActivity(userActivityId).then(({ data: { data: userActivityData } }) => {\n const {\n activity: { campaign: campaignData },\n } = userActivityData;\n\n setUserActivity(userActivityData);\n campaignAPI.getCampaign({ id: campaignData.id }).then(res => {\n setCampaign(res.data.data);\n setLoading(false);\n });\n });\n }, [userActivityId]);\n\n // load activity on init\n useEffect(() => {\n loadActivity();\n }, [loadActivity]);\n\n // Extract relevant info\n const {\n activity,\n activity: { campaign: { name: campaignName = '' } = {} } = {},\n completed,\n header_title: headerTitle,\n } = userActivity;\n\n // Set document title based on campaign name\n useDocumentTitle(campaignName);\n\n return (\n <>\n <ActivityDetailCore\n activity={activity}\n appContainerDataTestId={'logged_in_activity_detail'}\n campaign={campaign}\n completed={completed}\n headerTitle={headerTitle}\n loading={loading}\n title={t('activity.header_title')}\n setCampaign={setCampaign}\n userActivity={userActivity}\n />\n <OnboardingModal campaign={campaign} />\n </>\n );\n};\n\nActivityDetail.propTypes = {};\n\nexport default ActivityDetail;\n","import i18n from '../../components/i18n';\n\nconst authErrorMessage = error => {\n const GENERIC_ERROR_MESSAGE = i18n.t('auth.google.login_failed');\n const ACCESS_DENIED_MESSAGE = i18n.t('auth.google.access_denied');\n\n switch (error) {\n case 'popup_closed_by_user':\n return GENERIC_ERROR_MESSAGE;\n case 'access_denied':\n return ACCESS_DENIED_MESSAGE;\n case 'immediate_failed':\n return GENERIC_ERROR_MESSAGE;\n case 'idpiframe_initialization_failed':\n return null;\n default:\n return GENERIC_ERROR_MESSAGE;\n }\n};\n\nexport { authErrorMessage };\n","import { Button, message } from 'antd';\nimport { bool, func, string } from 'prop-types';\nimport React from 'react';\nimport GoogleLogin from 'react-google-login';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport { authErrorMessage as googleAuthErrorMessage } from 'web/services/google/auth';\n\nimport googleIconImage from '../../../../../assets/images/web/google-icon.png';\nimport ImpactiveButton from '../../ImpactiveButton';\n\nconst GmailButon = styled(Button)`\n width: 100%;\n margin-bottom: 15px;\n margin-top: 15px;\n`;\n\nconst Google = () => (\n <img\n src={googleIconImage}\n width={25}\n height={25}\n alt=\"google-icon\"\n style={{ marginRight: '8px' }}\n />\n);\n\n// TODO: move to AuthHelpers\nconst AuthMenu = ({\n onPasswordlessLogin,\n onGoogleLogin,\n onEmailLogIn,\n passwordlessButtonText,\n includePasswordOption,\n includeOrBreak,\n passwordlessExplainText,\n hidePasswordLessText,\n}) => {\n const { t } = useTranslation();\n\n // const { t } = useTranslation();\n const handleGoogleSuccess = response => {\n const { googleId, profileObj, tokenId } = response;\n const { email } = profileObj;\n onGoogleLogin(email, tokenId, googleId);\n };\n\n const handleGoogleFailure = response => {\n const { error } = response;\n const errorMessage = googleAuthErrorMessage(error);\n\n if (errorMessage) {\n message.error(errorMessage);\n }\n };\n\n return (\n <div className=\"d-flex flex-column align-items-center\">\n <ImpactiveButton size=\"large\" onClick={onPasswordlessLogin}>\n {passwordlessButtonText}\n </ImpactiveButton>\n\n <div className={`${hidePasswordLessText ? 'p-2' : 'p-3'}`}>\n {!hidePasswordLessText && (\n <div className=\"text-center\">\n {passwordlessExplainText || t('auth.auth_modal.one_time_link')}\n </div>\n )}\n {!!includePasswordOption && (\n <div className=\"d-flex flex-row align-items-center justify-content-center\">\n <div className=\"mr-1\">{t('common.or')}</div>\n <div onClick={onEmailLogIn} className=\"text-underline pointer\">\n {t('auth.auth_modal.with_email')}\n </div>\n </div>\n )}\n </div>\n\n {includeOrBreak && (\n <div className=\"flex-row align-items-center w-100\">\n <div className=\"line-break flex1\"></div>\n <div className=\"text-muted mx-1\">{t('common.or')}</div>\n <div className=\"line-break flex1\"></div>\n </div>\n )}\n\n <GoogleLogin\n clientId={process.env.GOOGLE_CLIENT_ID}\n theme=\"dark\"\n onSuccess={handleGoogleSuccess}\n onFailure={handleGoogleFailure}\n cookiePolicy=\"single_host_origin\"\n render={renderProps => (\n <GmailButon type=\"default\" onClick={renderProps.onClick} disabled={renderProps.disabled}>\n {Google()} {t('auth.auth_modal.continue_with_google')}\n </GmailButon>\n )}\n />\n </div>\n );\n};\n\nAuthMenu.propTypes = {\n hidePasswordLessText: bool,\n includeOrBreak: bool,\n includePasswordOption: bool,\n onEmailLogIn: func,\n onGoogleLogin: func,\n onPasswordlessLogin: func,\n passwordlessButtonText: string,\n passwordlessExplainText: string,\n};\n\nAuthMenu.defaultProps = {\n hidePasswordLessText: false,\n includeOrBreak: true,\n includePasswordOption: true,\n passwordlessButtonText: 'Sign in with Email',\n passwordlessExplainText: null, //t('auth.auth_modal.one_time_link')\n};\n\nexport default AuthMenu;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { bool, oneOf } from 'prop-types';\nimport darkLogo from '../../../images/app-logo-primary.png';\nimport lightLogo from '../../../images/app-logo-secondary.png';\n\nconst LogoContainer = styled.div`\n display: flex;\n justify-content: center;\n margin: ${({ $isPoweredBy }) => ($isPoweredBy ? '0px' : '1.875rem 0')};\n`;\n\nconst Logo = styled.img`\n height: ${({ $isPoweredBy }) => ($isPoweredBy ? '1.5rem' : '27px')};\n width: auto;\n`;\n\nconst ImpactiveLogo = ({ type, isPoweredBy }) => {\n return (\n <LogoContainer $isPoweredBy={isPoweredBy}>\n <Logo\n $isPoweredBy={isPoweredBy}\n src={type === 'light' ? lightLogo : darkLogo}\n alt=\"Impactive logo\"\n />\n </LogoContainer>\n );\n};\n\nImpactiveLogo.propTypes = {\n isPoweredBy: bool,\n type: oneOf(['dark', 'light']),\n};\n\nImpactiveLogo.defaultProps = {\n isPoweredBy: false,\n type: 'dark',\n};\n\nexport default ImpactiveLogo;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport ImpactiveLogo from './ImpactiveLogo';\nimport { replaceDefaultCampaignImage } from '@web/utils/string';\n\nconst LogoContainer = styled.div`\n display: flex;\n flex-direction: column;\n margin-bottom: 1.875rem;\n align-items: center;\n\n @media (max-height: 850px) {\n margin-bottom: 1rem;\n }\n @media (max-height: 750px) {\n margin-bottom: 0.5rem;\n }\n`;\n\nconst CampaignLogo = styled.img`\n height: 10rem;\n width: 10rem;\n border-radius: 50%;\n object-fit: cover;\n\n @media (max-height: 850px) {\n height: 8rem;\n width: 8rem;\n }\n @media (max-height: 750px) {\n height: 6rem;\n width: 6rem;\n }\n`;\n\nconst CampaignName = styled.div`\n margin-top: 0.5rem;\n font-size: 1.5rem;\n color: ${({ theme }) => theme.colors.blue};\n\n @media (max-height: 850px) {\n margin-top: 0.5rem;\n font-size: 1.25rem;\n }\n @media (max-height: 750px) {\n margin-top: 0.125rem;\n font-size: 1rem;\n }\n`;\n\nconst ImpactiveOrCampaignLogo = ({ campaign }) => {\n return campaign ? (\n <LogoContainer>\n <CampaignLogo\n source={{ uri: replaceDefaultCampaignImage(campaign.url_profile_img) }}\n src={replaceDefaultCampaignImage(campaign.url_profile_img)}\n alt={campaign.name}\n />\n <CampaignName>{campaign.name}</CampaignName>\n </LogoContainer>\n ) : (\n <ImpactiveLogo />\n );\n};\n\nImpactiveOrCampaignLogo.propTypes = {\n campaign: PropTypes.object,\n};\n\nexport default ImpactiveOrCampaignLogo;\n","import React from 'react';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\n\nimport ImpactiveLogo from './ImpactiveLogo';\n\nimport poweredBy from '../../../images/powered-by.png';\n\nconst PoweredByContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n margin: 1.875rem 0;\n padding: 0.875rem;\n\n @media (max-height: 850px) {\n margin: 0.5rem 0 0;\n }\n @media (max-height: 750px) {\n margin: 0;\n }\n`;\n\nconst PoweredByLogo = styled.img`\n width: 1.5rem;\n height: 1.5rem;\n`;\n\nconst PoweredByText = styled.div`\n text-transform: uppercase;\n font-style: italic;\n margin-right: 0.3rem;\n font-size: 1.125rem;\n color: ${({ theme }) => theme.colors.blue};\n`;\n\nconst PoweredByImpactive = () => {\n const { t } = useTranslation();\n\n return (\n <PoweredByContainer>\n <PoweredByLogo src={poweredBy} alt=\"powered by\" />\n <PoweredByText>{t('common.by')}</PoweredByText>\n <ImpactiveLogo isPoweredBy type=\"dark\" />\n </PoweredByContainer>\n );\n};\n\nexport default PoweredByImpactive;\n","import PropTypes from 'prop-types';\nimport React, { useCallback, useContext, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useParams } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { useDocumentTitle } from '../../hooks/useDocumentTitle';\nimport { track } from '../../services/analytics';\nimport { users } from '../../services/api';\nimport { AuthContext } from '../../utils/context';\nimport Loading from '../common/Loading';\nimport { setAppLanguage } from '../i18n';\nimport ImpactiveOrCampaignLogo from './Components/ImpactiveOrCampaignLogo';\nimport PoweredByImpactive from './Components/PoweredByImpactive';\nimport ImpactiveButton from '../ImpactiveButton';\n\nconst LanguageContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 1rem;\n align-items: center;\n justify-content: center;\n margin-top: 3rem;\n text-align: center;\n`;\n\nconst LanguageSelect = () => {\n const { t } = useTranslation();\n const history = useHistory();\n const { campaign_slug } = useParams();\n\n useDocumentTitle(t('auth.language.choose_language'));\n const { onboardingData, setOnboardingData, campaign, isLoading, setCampaignSlug, user, setUser } =\n useContext(AuthContext);\n\n useEffect(() => {\n // Track the page view\n track('VIEW_LANGUAGE_SELECT_SCREEN');\n setCampaignSlug(campaign_slug);\n }, [campaign_slug, setCampaignSlug]);\n\n useEffect(() => {\n // wait for all the data to be loaded\n if (isLoading) {\n return;\n }\n\n // set onboarding language if user has locale\n if (!onboardingData.language && user?.locale) {\n setAppLanguage(user?.locale);\n setOnboardingData({ ...onboardingData, language: user?.locale });\n }\n }, [isLoading, user, onboardingData, setOnboardingData]);\n\n const setLanguage = useCallback(\n language => {\n setAppLanguage(language);\n setOnboardingData({ ...onboardingData, language });\n if (user) {\n users.updateMe({ locale: language }).then(({ data }) => {\n setUser(data.data);\n });\n }\n\n if (history.location.pathname.includes('/auth/language')) {\n if (campaign_slug) {\n history.push(`/auth/signup/${campaign_slug}`);\n } else {\n history.push(`/auth/login`);\n }\n }\n },\n [campaign_slug, history, onboardingData, setOnboardingData, setUser, user],\n );\n\n if (isLoading) {\n return (\n <div className=\"d-flex flex-row justify-content-center\">\n <Loading />\n </div>\n );\n }\n\n return (\n <div\n className={`h-100 bg-auth-cyan d-flex flex-column align-items-center justify-content-center`}\n >\n <ImpactiveOrCampaignLogo campaign={campaign} />\n\n <div className=\"card fixed-auth\">\n <div className={`card-title bolder ${campaign ? '' : 'mb-4'}`}>\n {t('auth.language.choose_language')}\n </div>\n <LanguageContainer>\n <ImpactiveButton size=\"full-width\" onClick={() => setLanguage('en')}>\n {t('auth.language.english')}\n </ImpactiveButton>\n <ImpactiveButton size=\"full-width\" onClick={() => setLanguage('es')}>\n {t('auth.language.spanish')}\n </ImpactiveButton>\n </LanguageContainer>\n </div>\n\n {campaign && <PoweredByImpactive />}\n </div>\n );\n};\n\nLanguageSelect.propTypes = {\n isSignup: PropTypes.bool,\n};\n\nexport default LanguageSelect;\n","import PropTypes from 'prop-types';\nimport React, { useContext, useEffect, useMemo, useCallback } from 'react';\nimport { message } from 'antd';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useParams } from 'react-router-dom';\n\nimport { useDocumentTitle } from '../../hooks/useDocumentTitle';\nimport { identify, track } from '../../services/analytics';\nimport { auth, users } from '../../services/api';\nimport { AuthContext } from '../../utils/context';\nimport { isAuthFinished } from '@web/utils/other';\nimport { getRedirectAfterLoginURL, getAndClearRedirectAfterLoginURL } from 'web/services/session';\nimport Loading from '../common/Loading';\nimport { setAppLanguage } from '../i18n';\nimport AuthMenu from './Components/AuthMenu';\nimport ImpactiveOrCampaignLogo from './Components/ImpactiveOrCampaignLogo';\nimport PoweredByImpactive from './Components/PoweredByImpactive';\nimport LanguageSelect from './LanguageSelect';\n\nconst AuthPage = () => {\n const { t } = useTranslation();\n const history = useHistory();\n const { campaign_slug } = useParams();\n\n const title = useMemo(\n () => (campaign_slug ? t('auth.sign_up') : t('auth.login')),\n [campaign_slug, t],\n );\n useDocumentTitle(title);\n\n const { setAuth, setUser, onboardingData, campaign, isLoading, setCampaignSlug } =\n useContext(AuthContext);\n\n useEffect(() => {\n // Track the page view\n track('VIEW_AUTH_SCREEN');\n setCampaignSlug(campaign_slug);\n }, [campaign_slug, setCampaignSlug]);\n\n // In the case of google auth we need to perform additional actions\n // to join the campaign if user came from any of the campaign signup pages\n const onGoogleAuthSuccess = useCallback(\n async data => {\n const { token, user } = data;\n setAuth(token);\n setUser(user);\n setAppLanguage(onboardingData.language || user.locale);\n identify(user.id);\n\n if (onboardingData.language !== user.locale) {\n users.updateMe({ locale: onboardingData.language || user.locale }).then(({ data }) => {\n setUser(data.data);\n });\n }\n\n const canViewAdmin = user.is_campaign_admin || user.can_admin_accounts;\n // If the user can access admin and no redirectURL is set - go to admin\n const hasRedirectURL = !!getRedirectAfterLoginURL();\n if (canViewAdmin && !hasRedirectURL) {\n // hard reload (switch to) admin react app\n window.location.href = '/admin';\n return;\n }\n\n // Join the campaign if auth happened on campaign screen\n if (campaign_slug && campaign) {\n await users.followCampaign({\n campaign_id: campaign.id,\n campaign_name: campaign.name,\n campaign_slug: campaign.slug,\n });\n\n users.updateMe({ last_campaign_id: campaign.id }).then(({ data: { data } }) => {\n setUser(data);\n });\n\n if (isAuthFinished(user)) {\n const redirectURL = getAndClearRedirectAfterLoginURL();\n if (redirectURL) {\n history.push(redirectURL);\n }\n } else {\n history.push(`/auth/join-campaign/${campaign.slug}`);\n }\n return;\n }\n\n // Fallback throw the user to /frontline\n history.push(isAuthFinished(user) ? `/frontline` : `/auth/join-campaign`);\n },\n [campaign, campaign_slug, history, onboardingData.language, setAuth, setUser],\n );\n\n const unsetAuthHandler = useCallback(\n ({ response }) => {\n // unset auth token\n setAuth(null);\n\n // display error message\n const { data: { error, message: errorMessage } = {} } = response;\n message.error(errorMessage || error || t('errors.action_failed'));\n },\n [setAuth, t],\n );\n\n const onLogInWithGoogle = useCallback(\n async (email, accessToken, googleId) => {\n return auth\n .signInWithGoogle(email, accessToken, googleId, onboardingData.language)\n .then(res => onGoogleAuthSuccess(res))\n .catch(unsetAuthHandler);\n },\n [onGoogleAuthSuccess, unsetAuthHandler, onboardingData.language],\n );\n\n const onPasswordLoginClick = useCallback(() => {\n history.push(campaign_slug ? `/auth/login/${campaign_slug}/email` : '/auth/login/email');\n }, [campaign_slug, history]);\n\n const onPasswordlessClick = useCallback(() => {\n history.push(\n campaign_slug ? `/auth/signup/${campaign_slug}/passwordless` : '/auth/login/passwordless',\n );\n }, [campaign_slug, history]);\n\n if (isLoading) {\n return (\n <div className=\"d-flex flex-row justify-content-center\">\n <Loading />\n </div>\n );\n }\n\n if (!onboardingData.language) {\n return <LanguageSelect />;\n }\n\n return (\n <div\n className={`h-100 bg-auth-cyan d-flex flex-column align-items-center justify-content-center`}\n >\n <ImpactiveOrCampaignLogo campaign={campaign} />\n\n <div className=\"card fixed-auth\">\n <div className={`card-title bolder mb-5`}>{t('auth.sign_in_or_sign_up')}</div>\n\n <AuthMenu\n onGoogleLogin={onLogInWithGoogle}\n onEmailLogIn={onPasswordLoginClick}\n onPasswordlessLogin={onPasswordlessClick}\n passwordlessButtonText={t('auth.enter_email')}\n includePasswordOption={false}\n hidePasswordLessText\n />\n\n <div className=\"d-flex flex-row align-items-center justify-content-center mt-5 text-center\">\n <div className=\"text-underline pointer\" onClick={onPasswordLoginClick}>\n {t('auth.sign_in_with_password')}\n </div>\n </div>\n </div>\n\n {campaign && <PoweredByImpactive />}\n </div>\n );\n};\n\nAuthPage.propTypes = {\n isLanguageSelect: PropTypes.bool,\n isSignup: PropTypes.bool,\n};\n\nexport default AuthPage;\n","import { Input, message } from 'antd';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\n\nimport { track } from '../../../services/analytics';\nimport { isValidEmail } from '../../../utils/string';\nimport ImpactiveButton from '../../ImpactiveButton';\n\nconst StyledButton = styled(ImpactiveButton)`\n text-transform: none;\n`;\n\nconst EmailAuth = ({ onSubmitClick, buttonText }) => {\n const { t } = useTranslation();\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n\n // Track the page view\n useEffect(() => {\n track('VIEW_EMAIL_AUTH_SCREEN');\n }, []);\n\n const hasErrors = () => {\n // validate input, only submit for valid email addresses\n if (!isValidEmail(email)) {\n message.error(t('auth.email.invalid'));\n return true;\n }\n // validate password\n if (!password) {\n message.error(t('auth.email.enter_password'));\n return true;\n }\n return false;\n };\n\n const handleSubmit = e => {\n track('CLICK_LOGIN');\n e.preventDefault();\n\n if (hasErrors()) {\n return;\n }\n onSubmitClick(email, password);\n };\n\n return (\n <form\n data-testid=\"auth-form\"\n onSubmit={handleSubmit}\n className=\"d-flex flex-column align-items-center w-100\"\n >\n <Input\n autoFocus\n type=\"email\"\n name=\"email\"\n placeholder={t('placeholders.email')}\n onChange={e => setEmail(e.target.value)}\n />\n <Input\n type=\"password\"\n placeholder={t('placeholders.password')}\n className=\"my-3\"\n onChange={e => setPassword(e.target.value)}\n />\n\n <StyledButton size=\"large\" htmlType=\"submit\">\n {buttonText}\n </StyledButton>\n </form>\n );\n};\n\nEmailAuth.propTypes = {\n buttonText: PropTypes.string,\n onSubmitClick: PropTypes.func.isRequired,\n};\n\nEmailAuth.defaultProps = {\n buttonText: 'Sign In',\n};\n\nexport default EmailAuth;\n","import { message } from 'antd';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useContext, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { useDocumentTitle } from '../../hooks/useDocumentTitle';\nimport { identify } from '../../services/analytics';\nimport { auth, users } from '../../services/api';\nimport { AuthContext } from '../../utils/context';\nimport Loading from '../common/Loading';\nimport { setAppLanguage } from '../i18n';\nimport { getRedirectAfterLoginURL, getAndClearRedirectAfterLoginURL } from 'web/services/session';\nimport ImpactiveOrCampaignLogo from './Components/ImpactiveOrCampaignLogo';\nimport PoweredByImpactive from './Components/PoweredByImpactive';\nimport LanguageSelect from './LanguageSelect';\n\nimport EmailAuth from './Components/EmailAuth';\nimport './auth.scss';\n\nconst EmailAuthPage = () => {\n const { t } = useTranslation();\n const history = useHistory();\n const { campaign_slug } = useParams();\n\n const title = campaign_slug ? t('titles.sign_up') : t('titles.sign_in');\n useDocumentTitle(title);\n\n const { setAuth, onboardingData, campaign, isLoading, setCampaignSlug } = useContext(AuthContext);\n\n const provider = 'email';\n\n useEffect(() => {\n setCampaignSlug(campaign_slug);\n }, [campaign_slug, setCampaignSlug]);\n\n const handleRedirection = async user => {\n const canViewAdmin = user.is_campaign_admin || user.can_admin_accounts;\n // If the user can access admin and no redirectURL is set - go to admin\n const hasRedirectURL = !!getRedirectAfterLoginURL();\n if (canViewAdmin && !hasRedirectURL) {\n // hard reload (switch to) admin react app\n window.location.href = '/admin';\n return;\n }\n\n // Join the campaign if auth happened on campaign screen\n // this will only be relevant for signup action that is currently disabled\n if (campaign_slug && campaign) {\n await users.followCampaign({\n campaign_id: campaign.id,\n campaign_name: campaign.name,\n campaign_slug: campaign.slug,\n });\n }\n\n // redirect after login if URL is stored\n const redirectURL = getAndClearRedirectAfterLoginURL();\n if (redirectURL) {\n history.push(redirectURL);\n return;\n }\n\n // Fallback - throw them to frontline\n history.push('/frontline');\n };\n\n const onLogInHandler = (email, password) => {\n return auth\n .signIn(email, password, provider)\n .then(data => {\n const { token, user } = data;\n setAuth(token);\n setAppLanguage(user.locale);\n identify(user.id);\n\n // Redirect after email/password based login\n return handleRedirection(user);\n })\n .catch(unsetAuthHandler);\n };\n\n // Signup with email/password isn't surfaced in the web UI anymore\n // this is kept for reference and will be removed when signup is re-enabled\n // const onSignUpHandler = (email, password) => {\n // // throw new Error('Unsupported email/password signup');\n // return auth\n // .signUp(email, password, provider)\n // .then(data => {\n // const { token, user } = data;\n // setAuth(token);\n // setAppLanguage(user.locale);\n // identify(user.id);\n\n // // Redirect after email/password based signup\n // // TODO: validate redirection logic when/if this is no longer hidden in the UI\n // return handleRedirection(user);\n // })\n // .catch(unsetAuthHandler);\n // };\n\n const onSubmitClick = (email, password) => {\n // use only onLogInHandler for now, but keep onSignUpHandler for reference\n onLogInHandler(email, password);\n };\n\n const unsetAuthHandler = ({ response }) => {\n // unset auth token\n setAuth(null);\n\n // display error message\n const { data: { error, message: errorMessage } = {} } = response;\n message.error(errorMessage || error || t('errors.action_failed'));\n };\n\n const onBackClick = useCallback(() => {\n if (campaign_slug) {\n history.push(`/auth/signup/${campaign_slug}`);\n } else {\n history.push('/auth/login');\n }\n }, [history, campaign_slug]);\n\n if (isLoading) {\n return (\n <div className=\"d-flex flex-row justify-content-center\">\n <Loading />\n </div>\n );\n }\n\n if (!onboardingData.language) {\n return <LanguageSelect />;\n }\n\n return (\n <div className=\"h-100 bg-auth-cyan d-flex flex-column align-items-center justify-content-center\">\n <ImpactiveOrCampaignLogo campaign={campaign} />\n\n <div className=\"card fixed-auth\">\n <div className=\"card-title bolder mb-4\">{t('auth.login')}</div>\n\n <div className=\"my-4\">\n <EmailAuth onSubmitClick={onSubmitClick} buttonText={t('auth.login')} />\n </div>\n\n <div className=\"d-flex flex-row align-items-center justify-content-center mt-5 text-center\">\n <div className=\"text-underline pointer\" onClick={onBackClick}>\n {t('auth.back')}\n </div>\n </div>\n </div>\n\n {campaign && <PoweredByImpactive />}\n </div>\n );\n};\n\nEmailAuthPage.propTypes = {\n isSignup: PropTypes.bool,\n};\n\nEmailAuthPage.defaultProps = {};\n\nexport default EmailAuthPage;\n","import { Button, Input } from 'antd';\nimport styled from 'styled-components';\nimport { colors, fonts } from './../../styles/theme';\n\nconst Wrapper = styled.div`\n display: block;\n margin: 0 auto;\n padding: 2em 0 1em 0;\n max-width: 420px;\n text-align: center;\n`;\n\nconst Header = styled.h2`\n text-align: center;\n color: ${colors.black};\n font-size: 1.7em;\n margin: 1em 0 1em 0;\n`;\n\nconst SubHeader = styled.h3`\n text-align: center;\n font-family: ${fonts.bold};\n font-size: 0.8em;\n text-transform: uppercase;\n color: ${colors.black};\n opacity: 0.8;\n`;\n\nconst FooterText = styled.h4`\n color: ${colors.black};\n font-size: 0.8em;\n line-height: 1.4em;\n opacity: 0.55;\n padding: 2em 4em;\n text-align: center;\n`;\n\nconst StyledInput = styled(Input)`\n && {\n background-color: transparent;\n border: none;\n border-bottom: 1px solid gray;\n border-radius: 0;\n margin: 1em 0 1em 0;\n outline: none;\n box-shadow: none !important;\n }\n`;\n\nconst StyledButton = styled(Button)`\n font-family: ${fonts.bold};\n text-transform: uppercase;\n margin: 1em 0 1em 0;\n && {\n display: block;\n font-size: 1em;\n margin-left: auto;\n margin-right: auto;\n }\n`;\n\nconst LocaleInput = styled.div`\n text-align: start;\n margin: 0.8em 0;\n`;\n\nexport { Wrapper, Header, SubHeader, FooterText, StyledInput, StyledButton, LocaleInput };\n","import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Wrapper, Header, StyledButton, StyledInput } from '../Shared';\n\nconst Confirmation = ({ onCodeSubmit }) => {\n const { t } = useTranslation();\n const [code, setCode] = useState('');\n\n const onSubmitHandler = e => {\n if (e) e.preventDefault();\n\n onCodeSubmit(code);\n };\n\n return (\n <Wrapper>\n <Header>{t('auth.forgot.confirmation_header')}</Header>\n <form data-testid=\"form\" onSubmit={onSubmitHandler}>\n <StyledInput\n autoFocus\n placeholder={t('auth.forgot.confirmation_code')}\n onChange={e => setCode(e.target.value)}\n value={code}\n />\n <StyledButton type=\"primary\" htmlType=\"submit\" disabled={!code}>\n {t('common.submit')}\n </StyledButton>\n </form>\n </Wrapper>\n );\n};\n\nConfirmation.propTypes = {\n onCodeSubmit: PropTypes.func.isRequired,\n};\n\nexport default Confirmation;\n","import { message } from 'antd';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Wrapper, Header, StyledButton, StyledInput } from '../Shared';\n\nconst PasswordEntry = ({ onPasswordSubmit }) => {\n const { t } = useTranslation();\n const [password, setPassword] = useState('');\n const [passwordConfirmation, setPasswordConfirmation] = useState('');\n\n const onSubmitHandler = e => {\n if (e) e.preventDefault();\n\n if (password.length === 0) {\n message.error(t('auth.forgot.enter_new_password'));\n return;\n }\n\n if (password !== passwordConfirmation) {\n message.error(t('auth.forgot.password_mismatch'));\n return;\n }\n\n onPasswordSubmit(password);\n };\n\n return (\n <Wrapper>\n <Header>{t('auth.forgot.entry_header')}</Header>\n <form data-testid=\"form\" onSubmit={onSubmitHandler}>\n <StyledInput\n autoFocus\n type=\"password\"\n placeholder={t('placeholders.new_password')}\n onChange={e => setPassword(e.target.value)}\n value={password}\n />\n <StyledInput\n placeholder={t('placeholders.confirm_password')}\n type=\"password\"\n onChange={e => setPasswordConfirmation(e.target.value)}\n value={passwordConfirmation}\n />\n <StyledButton type=\"primary\" htmlType=\"submit\" disabled={!password}>\n {t('common.submit')}\n </StyledButton>\n </form>\n </Wrapper>\n );\n};\n\nPasswordEntry.propTypes = {\n onPasswordSubmit: PropTypes.func.isRequired,\n};\n\nexport default PasswordEntry;\n","import { message } from 'antd';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Redirect, useLocation } from 'react-router-dom';\nimport emailIconImage from '../../../../../assets/images/web/email-icon.png';\nimport { track } from '../../../services/analytics';\nimport { users } from '../../../services/api';\nimport { isValidEmail } from '../../../utils/string';\nimport { Wrapper, Header, StyledButton, StyledInput } from '../Shared';\nimport Confirmation from './Confirmation';\nimport PasswordEntry from './PasswordEntry';\n\nconst PasswordReset = () => {\n const { t } = useTranslation();\n const { state } = useLocation();\n const { email: _email } = state || {};\n\n const [email, setEmail] = useState(_email);\n const [passwordResetAuthToken, setPasswordResetAuthToken] = useState(null);\n const [showConfirmation, setShowConfirmation] = useState(false);\n const [showPasswordEntry, setShowPasswordEntry] = useState(false);\n const [redirectToLogin, setRedirectToLogin] = useState(false);\n\n // Track the page view\n useEffect(() => {\n track('VIEW_RESET_PASSWORD_SCREEN');\n }, []);\n\n const onEmailSubmitHandler = e => {\n if (e) e.preventDefault(); // prevent html form from being submitted\n\n // validate input, only submit for valid email addresses\n if (!isValidEmail(email)) {\n message.error(t('auth.email.invalid'));\n return;\n }\n\n users\n .requestEmailCode(email)\n .then(() => setShowConfirmation(true))\n .catch(() => {\n // TODO: decide if user should be notified that the email doesn't exist?\n });\n };\n\n const onCodeSubmitHandler = code => {\n users\n .sendConfirmationCode(code, email)\n .then(({ headers: { authorization } }) => {\n setPasswordResetAuthToken(authorization);\n setShowConfirmation(false);\n setShowPasswordEntry(true);\n })\n .catch(\n ({\n response: {\n data: { error },\n },\n }) => {\n message.error(error);\n },\n );\n };\n\n const onPasswordSubmitHandler = password => {\n users\n .changePassword(password, passwordResetAuthToken)\n .then(() => {\n setShowPasswordEntry(false);\n setRedirectToLogin(true);\n message.success(t('auth.forgot.password_updated'));\n })\n .catch(\n ({\n response: {\n data: { error },\n },\n }) => {\n message.error(error);\n },\n );\n };\n\n if (showConfirmation) {\n return <Confirmation onCodeSubmit={onCodeSubmitHandler} />;\n }\n\n if (showPasswordEntry) {\n return <PasswordEntry onPasswordSubmit={onPasswordSubmitHandler} />;\n }\n\n if (redirectToLogin) {\n return <Redirect to=\"/auth/email\" />;\n }\n\n // Email entry form\n return (\n <Wrapper>\n <img src={emailIconImage} width={84} height={56} alt=\"email-icon\" />\n <Header>{t('auth.forgot.header')}</Header>\n <form data-testid=\"form\" onSubmit={onEmailSubmitHandler}>\n <StyledInput\n autoFocus\n type=\"email\"\n placeholder={t('placeholders.email')}\n onChange={e => setEmail(e.target.value)}\n value={email}\n />\n <StyledButton type=\"primary\" htmlType=\"submit\" disabled={!email}>\n {t('auth.forgot.reset')}\n </StyledButton>\n </form>\n </Wrapper>\n );\n};\n\nPasswordReset.propTypes = {};\n\nexport default PasswordReset;\n","import PropTypes from 'prop-types';\nimport React, { useEffect, useContext, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useParams } from 'react-router-dom';\n\nimport { useDocumentTitle } from '../../hooks/useDocumentTitle';\nimport { AuthContext } from '../../utils/context';\nimport ImpactiveButton from '../ImpactiveButton';\nimport Loading from '../common/Loading';\nimport ImpactiveOrCampaignLogo from './Components/ImpactiveOrCampaignLogo';\nimport PoweredByImpactive from './Components/PoweredByImpactive';\nimport LanguageSelect from './LanguageSelect';\n\nconst PasswordlessConfirmPage = () => {\n const { t } = useTranslation();\n const history = useHistory();\n const { campaign_slug } = useParams();\n const { onboardingData, campaign, isLoading, setCampaignSlug } = useContext(AuthContext);\n\n const title = campaign_slug ? t('titles.sign_up') : t('titles.sign_in');\n useDocumentTitle(title);\n\n const {\n location: { state },\n } = history;\n const email = state && state.email;\n\n useEffect(() => {\n setCampaignSlug(campaign_slug);\n }, [campaign_slug, setCampaignSlug]);\n\n const onResendClick = useCallback(() => {\n if (campaign_slug) {\n history.push(`/auth/signup/${campaign_slug}/passwordless`);\n } else {\n history.push('/auth/login/passwordless');\n }\n }, [history, campaign_slug]);\n\n const onBackClick = useCallback(() => {\n if (campaign_slug) {\n history.push(`/auth/signup/${campaign_slug}`);\n } else {\n history.push('/auth/login');\n }\n }, [history, campaign_slug]);\n\n if (isLoading) {\n return (\n <div className=\"d-flex flex-row justify-content-center\">\n <Loading />\n </div>\n );\n }\n\n if (!onboardingData.language) {\n return <LanguageSelect />;\n }\n\n return (\n <div className=\"h-100 bg-auth-cyan d-flex flex-column align-items-center justify-content-center\">\n <ImpactiveOrCampaignLogo campaign={campaign} />\n\n <div className=\"card fixed-auth\">\n <div className=\"card-title bolder\">{t('auth.check-your-inbox')}</div>\n\n <div className=\"text-center\">{t('auth.one_time_link_sent', { email })}</div>\n <div className=\"text-center\">{t('auth.click_link')}</div>\n\n <div className=\"text-center mb-3 mt-4\">{t('auth.didnt_get_email')}</div>\n\n <div className=\"flex-row flex-column align-items-center\">\n <ImpactiveButton htmlType=\"submit\" size=\"large\" onClick={onResendClick}>\n {t('auth.resend')}\n </ImpactiveButton>\n </div>\n\n <div className=\"d-flex flex-row align-items-center justify-content-center text-center mt-5\">\n <div className=\"text-underline pointer\" onClick={onBackClick}>\n {t('auth.back')}\n </div>\n </div>\n </div>\n\n {campaign && <PoweredByImpactive />}\n </div>\n );\n};\n\nPasswordlessConfirmPage.propTypes = {\n isSignup: PropTypes.bool,\n};\n\nexport default PasswordlessConfirmPage;\n","import { Input, message } from 'antd';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { track } from '../../../services/analytics';\nimport { isValidEmail } from '../../../utils/string';\nimport ImpactiveButton from '../../ImpactiveButton';\n\nconst PasswordlessAuth = ({ onSubmitClick, buttonText, isSubmitting, setIsSubmitting }) => {\n const { t } = useTranslation();\n const [email, setEmail] = useState('');\n\n // Track the page view\n useEffect(() => {\n track('VIEW_PASSWORDLESS_INPUT_SCREEN');\n }, []);\n\n const hasErrors = () => {\n // validate input, only submit for valid email addresses\n if (!isValidEmail(email)) {\n message.error(t('auth.email.invalid'));\n setIsSubmitting(false);\n return true;\n }\n\n return false;\n };\n\n const handleLogin = e => {\n track('CLICK_LOGIN');\n setIsSubmitting(true);\n e.preventDefault();\n\n if (hasErrors()) {\n return;\n }\n onSubmitClick(email);\n };\n\n return (\n <form\n data-testid=\"auth-form\"\n onSubmit={handleLogin}\n className=\"flex-row flex-column align-items-center\"\n >\n <Input\n autoFocus\n type=\"email\"\n name=\"email\"\n placeholder={t('placeholders.email')}\n className=\"mb-3\"\n onChange={e => setEmail(e.target.value)}\n />\n\n <ImpactiveButton htmlType=\"submit\" size=\"large\" disabled={isSubmitting}>\n {buttonText}\n </ImpactiveButton>\n </form>\n );\n};\n\nPasswordlessAuth.propTypes = {\n buttonText: PropTypes.string,\n isSubmitting: PropTypes.bool,\n onSubmitClick: PropTypes.func.isRequired,\n setIsSubmitting: PropTypes.func.isRequired,\n};\n\nPasswordlessAuth.defaultProps = {\n buttonText: 'Continue',\n includeFooter: true,\n};\n\nexport default PasswordlessAuth;\n","import PropTypes from 'prop-types';\nimport React, { useContext, useEffect, useCallback, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { message } from 'antd';\n\nimport { useDocumentTitle } from '../../hooks/useDocumentTitle';\nimport { auth } from '../../services/api';\nimport { AuthContext } from '../../utils/context';\nimport Loading from '../common/Loading';\nimport PasswordlessAuth from './Components/PasswordlessAuth';\nimport ImpactiveOrCampaignLogo from './Components/ImpactiveOrCampaignLogo';\nimport PoweredByImpactive from './Components/PoweredByImpactive';\nimport LanguageSelect from './LanguageSelect';\n\nconst PasswordlessPage = () => {\n const { t } = useTranslation();\n const history = useHistory();\n const { campaign_slug } = useParams();\n const { onboardingData, campaign, isLoading, setCampaignSlug } = useContext(AuthContext);\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const title = campaign_slug ? t('titles.sign_up') : t('titles.sign_in');\n useDocumentTitle(title);\n\n useEffect(() => {\n setCampaignSlug(campaign_slug);\n }, [campaign_slug, setCampaignSlug]);\n\n const onError = useCallback(\n error => {\n message.error(\n error?.response?.data?.message || error?.message || t('common.something_went_wrong'),\n );\n setIsSubmitting(false);\n },\n [t],\n );\n\n const onEmailSubmit = useCallback(\n email => {\n if (campaign_slug && campaign) {\n auth\n .sendMagicLinkEmail(email, campaign_slug, campaign_slug)\n .then(() => {\n history.push(`/auth/signup/${campaign_slug}/passwordless/confirm`, { email });\n })\n .catch(err => onError(err));\n return;\n } else {\n auth\n .sendMagicLinkEmail(email, 'signup')\n .then(() => {\n history.push('/auth/login/passwordless/confirm', { email });\n })\n .catch(err => onError(err));\n return;\n }\n },\n [campaign, campaign_slug, history, onError],\n );\n\n const onBackClick = useCallback(() => {\n if (campaign_slug) {\n history.push(`/auth/signup/${campaign_slug}`);\n } else {\n history.push('/auth/login');\n }\n }, [history, campaign_slug]);\n\n if (isLoading) {\n return (\n <div className=\"d-flex flex-row justify-content-center\">\n <Loading />\n </div>\n );\n }\n\n if (!onboardingData.language) {\n return <LanguageSelect />;\n }\n\n return (\n <div className=\"h-100 bg-auth-cyan d-flex flex-column align-items-center justify-content-center\">\n <ImpactiveOrCampaignLogo campaign={campaign} />\n\n <div className=\"card fixed-auth\">\n <div className=\"card-title bolder\">{t('auth.auth_modal.enter_your_email')}</div>\n\n <div className=\"pb-4 text-center\">{t('auth.auth_modal.receive_link')}</div>\n\n <div className=\"my-3\">\n <PasswordlessAuth\n onSubmitClick={onEmailSubmit}\n setIsSubmitting={setIsSubmitting}\n isSubmitting={isSubmitting}\n buttonText={t('auth.auth_modal.continue')}\n />\n </div>\n\n <div className=\"d-flex flex-row align-items-center justify-content-center mt-5 text-center\">\n <div className=\"text-underline pointer\" onClick={onBackClick}>\n {t('auth.back')}\n </div>\n </div>\n </div>\n\n {campaign && <PoweredByImpactive />}\n </div>\n );\n};\n\nPasswordlessPage.propTypes = {\n isSignup: PropTypes.bool,\n};\n\nPasswordlessPage.propTypes = {};\n\nexport default PasswordlessPage;\n","import React, { useContext, useEffect } from 'react';\nimport { isMobile } from 'react-device-detect';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { useDocumentTitle } from '../../hooks/useDocumentTitle';\nimport { getAndClearRedirectAfterLoginURL } from 'web/services/session';\nimport { identify } from '../../services/analytics';\nimport { auth } from '../../services/api';\nimport { AuthContext } from '../../utils/context';\nimport Loading from '../common/Loading';\nimport { setAppLanguage } from '../i18n';\nimport { ImpactiveButton } from '@admin/components/helpers/ImpactiveButtons';\nimport styled from 'styled-components';\nimport { isAuthFinished } from '@web/utils/other';\n\nconst MobileLoginWrapper = styled.div`\n padding: 4em;\n text-align: center;\n`;\n\nconst Spacer = styled.div`\n margin: 8px 0;\n`;\n\nconst ContinueLink = styled.span`\n cursor: pointer;\n :hover {\n text-decoration: underline;\n }\n`;\n\n/**\n * Magic link claim page. This is where user lands upon clicking on magic links.\n *\n * Special case: for iOS devices we render a small \"Open in Impactive App\" button so that\n * they can be redirected to use mobile app instead of being logged into Safari or other browser.\n *\n */\nconst PasswordlessTokenLoginPage = () => {\n const { t } = useTranslation();\n const history = useHistory();\n const { token } = useParams();\n const [loading, setLoading] = React.useState(true);\n\n useDocumentTitle(t('titles.sign_in'));\n const { setAuth } = useContext(AuthContext);\n\n useEffect(() => {\n if (!token) {\n history.push('/auth/login/email');\n return;\n }\n\n // This condition fixes a bug where token from path is stringified to 'null'\n // I didn't find any obvious reason why this is happening, probably a combination of race conditions\n // and route redirects all over the place that'd require further debugging.\n // Relevant issue here: https://github.com/outvote/web-app/issues/7516\n if (token === 'null') return;\n\n // Unless we are on a mobile device, proceed with login\n if (!isMobile) {\n handleToken(token);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleToken = token => {\n auth\n .verifyMagicLink(token)\n .then(res => {\n const {\n headers: { authorization: bearerHeader },\n data: { data: user },\n } = res;\n const { locale, destination, is_campaign_admin, can_admin_accounts } = user;\n\n setAuth(bearerHeader);\n setAppLanguage(locale);\n identify(user.id);\n\n const canViewAdmin = is_campaign_admin || can_admin_accounts;\n\n switch (destination) {\n case 'login':\n case 'signup':\n if (canViewAdmin) {\n window.location.href = '/admin';\n } else {\n // Fallback throw the user to /frontline\n history.push(isAuthFinished(user) ? `/frontline` : `/auth/join-campaign`);\n }\n break;\n\n // New signup flow\n case 'campaign-signup':\n history.push('/new-campaign');\n break;\n\n default:\n if (!isAuthFinished(user)) {\n history.push(`/auth/join-campaign/${destination}`);\n } else {\n // If it's none of the above, use the `redirectAfterLoginURL` or fallback to the campaign slug\n const redirectURL = getAndClearRedirectAfterLoginURL();\n history.push(redirectURL || `/campaigns/${destination}`);\n }\n break;\n }\n })\n .catch(() => {\n // Catching failed auth requests here so that they don't get reported to sentry\n // NOTE: It's fine to fail silently here because the error will be handled by the\n // axios.interceptor 401 handler that will display the \"Session expired\" message\n })\n .finally(() => setLoading(false));\n };\n\n // Use following schema/host for expo (simulator) debugging. If you want to debug on a physical device\n // you'll need to change the IP address to your local network IP address instead.\n // const hostname = \"exp://127.0.0.1:19000/--\";\n const hostname = `outvote://${document.location.hostname}`;\n\n return (\n <div className=\"d-flex flex-row justify-content-center\">\n {isMobile ? (\n <MobileLoginWrapper>\n <ImpactiveButton href={`${hostname}/auth/magic-link/${token}`}>\n Open in Impactive App\n </ImpactiveButton>\n <Spacer>or</Spacer>\n <ContinueLink onClick={() => handleToken(token)}>continue in browser</ContinueLink>\n </MobileLoginWrapper>\n ) : (\n loading && <Loading />\n )}\n </div>\n );\n};\n\nPasswordlessTokenLoginPage.propTypes = {};\n\nexport default PasswordlessTokenLoginPage;\n","import { ErrorMessage, Field } from 'formik';\nimport { object, string } from 'prop-types';\nimport React from 'react';\nimport styled, { css } from 'styled-components';\n\nconst Wrapper = styled.div``;\n\nexport const Label = styled.div`\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 0.875rem;\n ${({ theme }) => css`\n color: ${theme.colors.blue60};\n font-family: ${theme.fonts.bold};\n `}\n\n ${({ bold, theme }) =>\n bold &&\n css`\n font-weight: 600;\n text-transform: none;\n color: ${theme.colors.black};\n `}\n\n ${({ required, theme }) =>\n required &&\n css`\n ::after {\n content: '*';\n color: ${theme.colors.coral};\n }\n `}\n`;\n\nconst StyledErrorMessage = styled(ErrorMessage).attrs({ component: 'div' })`\n color: #ea5156;\n font-size: 12px;\n`;\n\nconst StyledField = styled(Field)`\n &&& {\n border: 1px solid #d9d9d9;\n border-radius: 6px;\n padding: 10px 14px 12px;\n color: ${({ theme }) => theme.colors.blue};\n width: 100%;\n height: 42px;\n background-color: transparent;\n\n &:hover {\n border: 1px solid #40a9ff;\n }\n\n &:focus-visible {\n outline: 0;\n border-right-width: 1px !important;\n border: 1px solid #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n }\n }\n`;\n\nconst FormField = ({ name, value, label, placeholder, labelProps, ...rest }) => (\n <Wrapper>\n <Label {...labelProps}>{label}</Label>\n <StyledField {...rest} name={name} value={value} placeholder={placeholder} />\n <StyledErrorMessage data-testid={`${name}-error`} name={name} />\n </Wrapper>\n);\n\nFormField.propTypes = {\n label: string,\n labelProps: object,\n name: string.isRequired,\n placeholder: string,\n value: string,\n};\n\nFormField.defaultProps = {\n labelProps: {},\n};\n\nexport default FormField;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, message } from 'antd';\nimport * as yup from 'yup';\n\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\n\nimport GoogleLogin from 'react-google-login';\nimport { authErrorMessage as googleAuthErrorMessage } from 'web/services/google/auth';\n\nimport googleIconImage from '@assets/images/web/google-icon.png';\nimport ImpactiveButton from '@web/components/ImpactiveButton';\nimport { Form, Formik } from 'formik';\nimport FormField from '@web/components/common/shared/FormField';\nimport theme from '@web/styles/theme';\nimport { useMedia } from '@web/hooks';\nimport { GrayText } from './Components/TextComponents';\n\nconst GmailButton = styled(Button)`\n width: 100%;\n margin-top: ${({ isMobile }) => (isMobile ? '0' : '15px')};\n height: 52px;\n\n font-weight: 600;\n`;\n\nconst Flex = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 15px;\n`;\n\nconst HorFlex = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n\nconst Divider = styled.div`\n width: 100%;\n height: 1px;\n background-color: ${theme.colors.blue06};\n`;\n\nconst Google = () => (\n <img\n src={googleIconImage}\n width={25}\n height={25}\n alt=\"google-icon\"\n style={{ marginRight: '8px' }}\n />\n);\n\nconst validationSchema = yup.object().shape({\n email: yup.string().email().required(),\n});\n\nconst AuthMenu = ({ onGoogleLogin, onPasswordlessLogin }) => {\n const { t } = useTranslation();\n const isMobile = useMedia('(max-width: 1000px)');\n\n const handleGoogleSuccess = response => {\n const { googleId, profileObj, tokenId } = response;\n const { email } = profileObj;\n onGoogleLogin(email, tokenId, googleId);\n };\n\n const handleGoogleFailure = response => {\n const { error } = response;\n const errorMessage = googleAuthErrorMessage(error);\n\n if (errorMessage) {\n message.error(errorMessage);\n }\n };\n\n return (\n <>\n <Flex>\n <Formik\n onSubmit={onPasswordlessLogin}\n validateOnBlur\n validationSchema={validationSchema}\n render={({ values, isSubmitting, isValid, handleChange }) => (\n <Form>\n <Flex>\n <FormField\n label={t('auth.email.email_address')}\n placeholder={t('placeholders.default_email')}\n name=\"email\"\n type=\"email\"\n value={values.email}\n onChange={handleChange}\n labelProps={{ bold: true }}\n />\n <ImpactiveButton\n size=\"full-width\"\n htmlType=\"submit\"\n disabled={!isValid || isSubmitting}\n >\n {t('auth.sign_up')}\n </ImpactiveButton>\n </Flex>\n </Form>\n )}\n />\n {isMobile && (\n <HorFlex>\n <Divider />\n <GrayText>{t('common.or')}</GrayText>\n <Divider />\n </HorFlex>\n )}\n <GoogleLogin\n clientId={process.env.GOOGLE_CLIENT_ID}\n theme=\"dark\"\n onSuccess={handleGoogleSuccess}\n onFailure={handleGoogleFailure}\n cookiePolicy=\"single_host_origin\"\n render={renderProps => (\n <GmailButton\n type=\"default\"\n onClick={renderProps.onClick}\n disabled={renderProps.disabled}\n isMobile={isMobile}\n >\n {Google()} {t('auth.auth_modal.continue_with_google')}\n </GmailButton>\n )}\n />\n <GrayText>\n <p>\n {t('auth.existing_account_question')} <a href=\"/auth/login\">Sign In</a>\n </p>\n </GrayText>\n </Flex>\n </>\n );\n};\n\nAuthMenu.propTypes = {\n onGoogleLogin: PropTypes.func.isRequired,\n onPasswordlessLogin: PropTypes.func.isRequired,\n};\n\nAuthMenu.defaultProps = {};\n\nexport default AuthMenu;\n","import React from 'react';\n\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nconst Flex = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst VerticalFlex = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n gap: 70px;\n margin: 0 auto;\n max-width: 700px;\n padding: 40px;\n\n width: 100%;\n height: 100%;\n`;\n\nconst CoverImage = styled.img`\n max-width: 50%;\n max-height: 100vh;\n height: 100%;\n object-fit: cover;\n object-position: right;\n\n // hide on mobile\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nconst LayoutWithCover = ({ coverUrl, children }) => {\n return (\n <Flex>\n <CoverImage src={coverUrl} alt=\"auth cover\" />\n <VerticalFlex>{children}</VerticalFlex>\n </Flex>\n );\n};\n\nLayoutWithCover.propTypes = {\n children: PropTypes.node.isRequired,\n coverUrl: PropTypes.string.isRequired,\n};\n\nexport default LayoutWithCover;\n","import React from 'react';\n\nimport styled from 'styled-components';\nimport logo from '@assets/images/logo/Impactive_Primary.png';\n\nconst LogoImage = styled.img`\n padding: 11px;\n max-width: 200px;\n`;\n\nconst ImpactiveLogo = () => <LogoImage src={logo} alt=\"Impactive logo\" />;\n\nexport default ImpactiveLogo;\n","import React from 'react';\nimport { message } from 'antd';\nimport { useTranslation } from 'react-i18next';\n\nimport AuthMenu from '../AdminAuthMenu';\nimport LayoutWithCover from '../Components/LayoutWithCover';\nimport ImpactiveLogo from '../Components/ImpactiveLogo';\n\nimport coverImage from '@assets/images/AdminAuth/laptop.png';\nimport { useHistory } from 'react-router-dom';\nimport { GrayText, Header } from '../Components/TextComponents';\n\nimport { AuthContext } from '@web/utils/context';\nimport { auth } from '@web/services/api';\n\nconst AdminPasswordless = () => {\n const { t } = useTranslation();\n const { setAuth } = React.useContext(AuthContext);\n\n const history = useHistory();\n\n // Passwordless login happens on the \"redirected\" page so that we can handle retries\n const onPasswordlessSignup = async email => {\n history.push({ pathname: '/auth/campaign-signup/confirm', state: { email } });\n };\n\n // Google auth handler\n const onGoogleSignup = async (email, accessToken, googleId) => {\n return auth\n .signInWithGoogle(email, accessToken, googleId)\n .then(res => onGoogleAuthSuccess(res))\n .catch(unsetAuthHandler);\n };\n\n const onGoogleAuthSuccess = async data => {\n const { token } = data;\n setAuth(token);\n\n // We only handle campaign signups using this ui path\n history.push('/new-campaign');\n };\n\n const unsetAuthHandler = ({ response }) => {\n // unset auth token\n setAuth(null);\n\n // display error message\n const { data: { error, message: errorMessage } = {} } = response;\n message.error(errorMessage || error || t('errors.action_failed'));\n };\n\n return (\n <LayoutWithCover coverUrl={coverImage}>\n <ImpactiveLogo />\n <Header>Sign Up To Create a Campaign</Header>\n <AuthMenu\n onGoogleLogin={onGoogleSignup}\n onPasswordlessLogin={values => onPasswordlessSignup(values.email)}\n />\n <GrayText>\n <span>By signing up, you agree to Impactive's </span>\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://www.impactive.io/privacy-policy\">\n Privacy Policy\n </a>\n {' and '}\n <a\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href=\"https://www.impactive.io/terms-conditions\"\n >\n Terms & Conditions\n </a>\n .\n </GrayText>\n </LayoutWithCover>\n );\n};\n\nexport default AdminPasswordless;\n","import React from 'react';\nimport { message } from 'antd';\nimport styled from 'styled-components';\nimport { useHistory } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport throttle from 'lodash/throttle';\n\nimport theme from '@web/styles/theme';\nimport coverImage from '@assets/images/AdminAuth/laptop.png';\n\nimport LayoutWithCover from '../Components/LayoutWithCover';\nimport ImpactiveLogo from '../Components/ImpactiveLogo';\nimport { BoldLabel, GrayText, Header, PrimaryText } from '../Components/TextComponents';\nimport GeneralCardWrapper from '@web/components/common/Cards/GeneralCardWrapper';\nimport { ImpactiveTextButton } from '@web/components/ImpactiveButton';\nimport { auth } from '@web/services/api';\n\nconst FlexWithGap = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n`;\n\nconst Flex = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n`;\n\nconst AdminLinkSent = () => {\n const history = useHistory();\n const { t } = useTranslation();\n const { email } = history.location.state;\n\n const requestMagicAuthEmail = React.useCallback(() => {\n auth.sendMagicLinkEmail(email, 'campaign-signup').catch(err => {\n message.error('Failed to send the activation link');\n });\n }, [email]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const requestMagicAuthEmailThrottled = React.useCallback(\n throttle(requestMagicAuthEmail, 5000),\n [],\n );\n\n // We're redirected to this with an email address to try passwordless signup with\n React.useEffect(() => {\n if (!history.location.state?.email) return history.push('/auth/campaign-signup');\n\n requestMagicAuthEmail();\n }, [email, history, requestMagicAuthEmail]);\n\n return (\n <LayoutWithCover coverUrl={coverImage}>\n <ImpactiveLogo />\n <div>\n <Header>{t('auth.check-your-inbox')} 📩</Header>\n <PrimaryText>\n We've sent a message to <strong>{email}</strong> with a link to activate your account.\n </PrimaryText>\n </div>\n <GeneralCardWrapper color={theme.colors.whiteSmoke}>\n <FlexWithGap>\n <BoldLabel>Didn't get an email?</BoldLabel>\n <GrayText>\n If you don't see an email from us within a few minutes, a few things might've happened:\n </GrayText>\n <GrayText>\n <ul>\n <li>The email is in your spam folder.</li>\n <li>The email address you entered had a mistake or typo.</li>\n <li>\n You accidentally gave us another email address, like a separate work or personal\n account.\n </li>\n <li>We can't deliver to this email address due to firewalls or filtering.</li>\n </ul>\n </GrayText>\n </FlexWithGap>\n </GeneralCardWrapper>\n <Flex>\n <ImpactiveTextButton onClick={history.goBack} htmlType=\"button\">\n Re-enter email and try again\n </ImpactiveTextButton>\n <ImpactiveTextButton onClick={requestMagicAuthEmailThrottled} htmlType=\"button\">\n Resend\n </ImpactiveTextButton>\n </Flex>\n </LayoutWithCover>\n );\n};\n\nexport default AdminLinkSent;\n","import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { message } from 'antd';\nimport VerificationInput from 'react-verification-input';\n\nimport { useDocumentTitle } from '../../hooks/useDocumentTitle';\nimport { users, campaigns } from '../../services/api';\nimport { AuthContext } from '../../utils/context';\nimport { teamJoinCodeError } from '../../utils/errorHandler';\nimport Loading from '../common/Loading';\nimport ImpactiveOrCampaignLogo from './Components/ImpactiveOrCampaignLogo';\nimport PoweredByImpactive from './Components/PoweredByImpactive';\nimport LanguageSelect from './LanguageSelect';\nimport ImpactiveButton from '../ImpactiveButton';\n\nconst JoinCampaign = () => {\n const { t } = useTranslation();\n const history = useHistory();\n const { campaign_slug } = useParams();\n const inputRef = useRef();\n const [code, setCode] = useState('');\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [isCampaignSetting, setIsCampaignSetting] = useState(false);\n\n const title = campaign_slug ? t('auth.sign_up') : t('auth.login');\n useDocumentTitle(title);\n\n const { user, onboardingData, campaign, isLoading, setCampaignSlug, setUser } =\n useContext(AuthContext);\n\n const setLastCampaignToUser = useCallback(\n id => {\n setIsCampaignSetting(true);\n // if id is present, get the campaign and follow it\n if (id) {\n campaigns.getCampaign({ id }).then(({ data: { data } }) => {\n users.followCampaign({\n campaign_id: data.id,\n campaign_name: data.name,\n campaign_slug: data.slug,\n });\n users.updateMe({ last_campaign_id: id }).then(({ data: { data } }) => {\n setUser(data);\n });\n setIsCampaignSetting(false);\n history.push(`/auth/complete-auth/${data.slug}`);\n setCampaignSlug(data.slug);\n });\n // else get the first campaign that user is following\n } else {\n users.getUserCampaigns(1, 200).then(({ data: { data } }) => {\n if (data?.length) {\n users.updateMe({ last_campaign_id: data[0].campaign.id }).then(({ data: { data } }) => {\n setUser(data);\n });\n setIsCampaignSetting(false);\n history.push(`/auth/complete-auth/${data[0].campaign.slug}`);\n setCampaignSlug(data[0].campaign.slug);\n } else {\n setIsCampaignSetting(false);\n }\n });\n }\n },\n [setCampaignSlug, setUser, history],\n );\n\n useEffect(() => {\n // wait for all the data to be loaded\n if (isLoading) {\n return;\n }\n\n // return to the previous page if no user is set\n if (!user) {\n history.goBack();\n } else {\n // navigate to complete the signup process if campaign_slug is present\n if (campaign_slug) {\n history.push(`/auth/complete-auth/${campaign_slug}`);\n // navigate to complete the signup process if user has last_campaign_id\n } else {\n // try to set last campaign id or locked campaign id or find the first campaign that user is following\n setLastCampaignToUser(user?.last_campaign_id || user?.locked_campaign_id);\n }\n }\n setCampaignSlug(campaign_slug);\n }, [campaign_slug, setCampaignSlug, user, isLoading, history, setLastCampaignToUser]);\n\n const joinCampaign = useCallback(\n async campaignFromCode => {\n users.followCampaign({\n campaign_id: campaignFromCode.id,\n campaign_name: campaignFromCode.name,\n campaign_slug: campaignFromCode.slug,\n });\n\n setCampaignSlug(campaignFromCode.slug);\n setIsSubmitting(false);\n\n users.updateMe({ last_campaign_id: campaignFromCode.id }).then(({ data: { data } }) => {\n setUser(data);\n });\n\n history.push(`/auth/complete-auth/${campaignFromCode.slug}`);\n },\n [setCampaignSlug, history, setUser],\n );\n\n const onSubmit = useCallback(() => {\n if (code?.length !== 6) {\n message.error(t('auth.join.invalid_code'));\n } else {\n setIsSubmitting(true);\n campaigns\n .findCampaign(code)\n .then(({ data }) => {\n if (!data) {\n setIsSubmitting(false);\n message.error(t('explore.join_code.error'));\n } else {\n // success\n joinCampaign(data.data);\n }\n })\n .catch(error => {\n setIsSubmitting(false);\n teamJoinCodeError(error);\n });\n }\n }, [code, t, joinCampaign]);\n\n const onChange = useCallback(value => {\n setCode(value);\n }, []);\n\n const onComplete = useCallback(value => {\n setCode(value);\n inputRef.current?.blur();\n }, []);\n\n const onFocus = useCallback(() => {\n if (code?.length === 6) {\n setCode(code.slice(0, 5));\n }\n }, [code]);\n\n if (isLoading || isCampaignSetting) {\n return (\n <div className=\"d-flex flex-row justify-content-center\">\n <Loading />\n </div>\n );\n }\n\n if (!onboardingData.language) {\n return <LanguageSelect />;\n }\n\n return (\n <div\n className={`h-100 bg-auth-cyan d-flex flex-column align-items-center justify-content-center`}\n >\n <ImpactiveOrCampaignLogo campaign={campaign} />\n\n <div className=\"card fixed-auth\">\n <div className={`card-title bolder mb-4`}>{t('auth.join.header')}</div>\n\n <div className=\"text-center\">{t('auth.join.enter')}</div>\n <div className=\"text-center\">{t('auth.join.dont_have_code')}</div>\n\n <VerificationInput\n ref={inputRef}\n value={code}\n classNames={{\n character: 'character',\n characterFilled: 'character--filled',\n characterInactive: 'character--inactive',\n characterSelected: 'character--selected',\n container: 'container',\n }}\n inputProps={{ disabled: isSubmitting, inputMode: 'numeric' }}\n validChars=\"0-9\"\n placeholder=\"__\"\n autoFocus\n length={6}\n onChange={onChange}\n onFocus={onFocus}\n onComplete={onComplete}\n />\n\n <div className=\"d-flex flex-row align-items-center justify-content-center mt-5 text-center\">\n <ImpactiveButton size=\"large\" disabled={isSubmitting} onClick={onSubmit}>\n {isSubmitting ? t('auth.join.joining') : t('common.submit')}\n </ImpactiveButton>\n </div>\n </div>\n\n {campaign && <PoweredByImpactive />}\n </div>\n );\n};\n\nJoinCampaign.propTypes = {};\n\nexport default JoinCampaign;\n","import React, { useCallback, useContext, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { Formik, Form } from 'formik';\nimport * as yup from 'yup';\n\nimport i18n from '@web/components/i18n';\nimport { AuthContext } from '@web/utils/context';\nimport PhoneNumberInput from '@web/components/common/shared/PhoneNumberInput';\nimport FormInput from '@web/components/common/shared/FormInput';\nimport ImpactiveButton from '../../ImpactiveButton';\n\nconst { t: translate } = i18n;\n\nconst StyledForm = styled(Form)`\n display: flex;\n flex-direction: column;\n width: 100%;\n gap: 14px;\n`;\n\nconst validationSchema = yup.object().shape({\n first_name: yup.string().nullable().required(translate('auth.complete_auth.errors.first_name')),\n last_name: yup.string().nullable().required(translate('auth.complete_auth.errors.last_name')),\n phone: yup\n .string()\n .nullable()\n .matches(/^(\\1)?[0-9]{11}$/, translate('auth.complete_auth.errors.invalid_phone'))\n .required(translate('auth.complete_auth.errors.phone')),\n zip: yup\n .string()\n .nullable()\n .matches(/^\\d{5}$/, translate('auth.complete_auth.errors.invalid_zip'))\n .required(translate('auth.complete_auth.errors.zip')),\n});\n\nconst CompleteAuthForm = ({ onSubmit }) => {\n const { t } = useTranslation();\n const { user } = useContext(AuthContext);\n\n const initialValues = useMemo(\n () => ({\n first_name: user?.first_name,\n last_name: user?.last_name,\n phone: user?.phone,\n zip: user?.supplied_zip_code,\n }),\n [user],\n );\n\n const handleSubmit = useCallback(\n (values, { setSubmitting }) => {\n onSubmit(values, setSubmitting);\n },\n [onSubmit],\n );\n\n return (\n <Formik\n onSubmit={handleSubmit}\n validationSchema={validationSchema}\n initialValues={initialValues}\n render={({\n values,\n isSubmitting,\n handleChange,\n submitForm,\n setFieldValue,\n errors,\n touched,\n }) => {\n return (\n <StyledForm>\n <FormInput\n name=\"first_name\"\n label={t('auth.complete_auth.placeholders.first_name')}\n placeholder={t('auth.complete_auth.placeholders.first_name')}\n withoutLabel\n value={values.first_name}\n onChange={handleChange}\n />\n <FormInput\n name=\"last_name\"\n label={t('auth.complete_auth.placeholders.last_name')}\n placeholder={t('auth.complete_auth.placeholders.last_name')}\n withoutLabel\n value={values.last_name}\n onChange={handleChange}\n />\n <PhoneNumberInput\n name=\"phone\"\n label={t('auth.complete_auth.placeholders.phone')}\n placeholder={t('auth.complete_auth.placeholders.phone')}\n isRequired\n withoutLabel\n // remove country code from phone number at the very beginning\n country={''}\n value={values.phone}\n onChange={e => setFieldValue('phone', e)}\n />\n <FormInput\n name=\"zip\"\n formik={{ errors, touched, values }}\n label={t('auth.complete_auth.placeholders.zip')}\n placeholder={t('auth.complete_auth.placeholders.zip')}\n withoutLabel\n value={values.zip}\n onChange={handleChange}\n maxLength={5}\n />\n <div className=\"d-flex flex-row align-items-center justify-content-center mt-5 text-center\">\n <ImpactiveButton size=\"large\" htmlType=\"submit\" disabled={isSubmitting}>\n {t('common.submit')}\n </ImpactiveButton>\n </div>\n </StyledForm>\n );\n }}\n />\n );\n};\n\nCompleteAuthForm.propTypes = {\n onSubmit: PropTypes.func.isRequired,\n};\n\nexport default CompleteAuthForm;\n","import React, { useCallback, useContext, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { message } from 'antd';\n\nimport { useDocumentTitle } from '../../hooks/useDocumentTitle';\nimport { users } from '../../services/api';\nimport { AuthContext } from '../../utils/context';\nimport { isAuthFinished } from '@web/utils/other';\nimport { getAndClearRedirectAfterLoginURL } from 'web/services/session';\nimport Loading from '../common/Loading';\nimport ImpactiveOrCampaignLogo from './Components/ImpactiveOrCampaignLogo';\nimport PoweredByImpactive from './Components/PoweredByImpactive';\nimport LanguageSelect from './LanguageSelect';\nimport CompleteAuthForm from './Components/CompleteAuthForm';\n\nconst CompleteAuth = () => {\n const { t } = useTranslation();\n const history = useHistory();\n const { campaign_slug } = useParams();\n\n const title = campaign_slug ? t('auth.sign_up') : t('auth.login');\n useDocumentTitle(title);\n\n const { user, onboardingData, campaign, isLoading, setCampaignSlug, setUser } =\n useContext(AuthContext);\n\n useEffect(() => {\n // wait for all the data to be loaded\n if (isLoading) {\n return;\n }\n\n if (!user) {\n history.goBack();\n } else {\n if (isAuthFinished(user)) {\n const redirectURL = getAndClearRedirectAfterLoginURL();\n\n history.push(redirectURL || '/frontline');\n }\n }\n }, [campaign_slug, setCampaignSlug, user, isLoading, history]);\n\n const onSubmit = useCallback(\n (values, setSubmitting) => {\n setSubmitting(true);\n const { first_name, last_name, phone, zip } = values;\n\n users\n .updateMe({ first_name, last_name, phone: `+${phone}`, supplied_zip_code: zip })\n .then(({ data: { data } }) => {\n setUser(data);\n const redirectURL = getAndClearRedirectAfterLoginURL();\n\n history.push(redirectURL || '/frontline');\n })\n .catch(error => {\n message.error(\n error?.response?.data?.message || error?.message || t('common.something_went_wrong'),\n );\n })\n .finally(() => {\n setSubmitting(false);\n });\n },\n [setUser, history, t],\n );\n\n if (isLoading) {\n return (\n <div className=\"d-flex flex-row justify-content-center\">\n <Loading />\n </div>\n );\n }\n\n if (!onboardingData.language) {\n return <LanguageSelect />;\n }\n\n return (\n <div\n className={`h-100 bg-auth-cyan d-flex flex-column align-items-center justify-content-center`}\n >\n <ImpactiveOrCampaignLogo campaign={campaign} />\n\n <div className=\"card fixed-auth\">\n <div className={`card-title bolder mb-4`}>{t('auth.complete_auth.header')}</div>\n\n <CompleteAuthForm onSubmit={onSubmit} />\n </div>\n\n {campaign && <PoweredByImpactive />}\n </div>\n );\n};\n\nCompleteAuth.propTypes = {};\n\nexport default CompleteAuth;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Redirect, Route, Switch, withRouter } from 'react-router-dom';\n\nimport AuthPage from './AuthPage';\nimport EmailAuthPage from './EmailAuthPage';\nimport PasswordReset from './PasswordReset';\nimport PasswordlessConfirmPage from './PasswordlessConfirmPage';\nimport PasswordlessPage from './PasswordlessPage';\nimport PasswordlessTokenLoginPage from './PasswordlessTokenLoginPage';\nimport './auth.scss';\nimport AdminPasswordless from './AdminSignup/pages/AdminPasswordless';\nimport AdminLinkSent from './AdminSignup/pages/AdminLinkSent';\nimport LanguageSelect from './LanguageSelect';\nimport JoinCampaign from './JoinCampaign';\nimport CompleteAuth from './CompleteAuth';\n\nconst Auth = ({ match }) => {\n if (match.path === '/auth' && match.isExact === true) {\n return <Redirect to={`/auth/login`} />;\n }\n\n return (\n <div className=\"bg-auth-cyan\" style={{ height: '100%', width: '100%' }}>\n <Switch>\n <Route exact path=\"/auth/language\" component={() => <LanguageSelect />} />\n <Route exact path=\"/auth/language/:campaign_slug\" component={() => <LanguageSelect />} />\n\n <Route exact path=\"/auth/magic-link/:token\" component={PasswordlessTokenLoginPage} />\n <Route exact path=\"/auth/forgot-password\" component={PasswordReset} />\n\n <Route exact path=\"/auth/login\" component={() => <AuthPage />} />\n <Route exact path=\"/auth/login/email\" component={() => <EmailAuthPage />} />\n <Route exact path=\"/auth/login/passwordless\" component={() => <PasswordlessPage />} />\n <Route\n exact\n path=\"/auth/login/:campaign_slug/passwordless\"\n component={() => <PasswordlessPage />}\n />\n <Route\n exact\n path=\"/auth/login/passwordless/confirm\"\n component={() => <PasswordlessConfirmPage />}\n />\n <Route\n exact\n path=\"/auth/login/:campaign_slug/passwordless/confirm\"\n component={() => <PasswordlessConfirmPage />}\n />\n\n <Route exact path=\"/auth/signup\" component={() => <AuthPage isSignup />} />\n <Route exact path=\"/auth/signup/email\" component={() => <EmailAuthPage isSignup />} />\n <Route exact path=\"/auth/login/email\" component={() => <EmailAuthPage isSignup />} />\n <Route\n exact\n path=\"/auth/login/:campaign_slug/email\"\n component={() => <EmailAuthPage isSignup />}\n />\n <Route\n exact\n path=\"/auth/signup/passwordless\"\n component={() => <PasswordlessPage isSignup />}\n />\n <Route\n exact\n path=\"/auth/signup/passwordless/confirm\"\n component={() => <PasswordlessConfirmPage isSignup />}\n />\n\n <Route exact path=\"/auth/signup/:campaign_slug\" component={() => <AuthPage isSignup />} />\n <Route\n exact\n path=\"/auth/signup/:campaign_slug/email\"\n component={() => <EmailAuthPage isSignup />}\n />\n <Route\n exact\n path=\"/auth/signup/:campaign_slug/passwordless\"\n component={() => <PasswordlessPage isSignup />}\n />\n <Route\n exact\n path=\"/auth/signup/:campaign_slug/passwordless/confirm\"\n component={() => <PasswordlessConfirmPage isSignup />}\n />\n\n <Route exact path=\"/auth/join-campaign/:campaign_slug\" component={() => <JoinCampaign />} />\n <Route exact path=\"/auth/join-campaign\" component={() => <JoinCampaign />} />\n <Route exact path=\"/auth/complete-auth/:campaign_slug\" component={() => <CompleteAuth />} />\n <Route exact path=\"/auth/complete-auth\" component={() => <CompleteAuth />} />\n\n {/* New signup flow */}\n <Route exact path=\"/auth/campaign-signup\" component={() => <AdminPasswordless />} />\n <Route exact path=\"/auth/campaign-signup/confirm\" component={() => <AdminLinkSent />} />\n\n <Route path=\"*\" component={() => <AuthPage />} />\n </Switch>\n </div>\n );\n};\n\nAuth.propTypes = {\n match: PropTypes.shape({\n isExact: PropTypes.bool,\n path: PropTypes.string,\n }),\n};\n\nexport default withRouter(Auth);\n","import { string } from 'prop-types';\nimport React, { useContext } from 'react';\nimport { Redirect, Route } from 'react-router-dom';\n\nimport { AuthContext } from '../../utils/context';\nimport OnboardingModal from '../common/OnboardingModal';\n\nconst AuthenticatedRoute = props => {\n const { token } = useContext(AuthContext);\n\n const { path } = props;\n\n const isUnauthenticatedRoute = path.includes('auth');\n // don't show onboarding modal for admin campaign signup\n const isAdminCampaignSignup = path.includes('/new-campaign');\n\n if (!token && !isUnauthenticatedRoute) {\n return <Redirect to=\"/auth\" />;\n }\n\n return (\n <>\n <Route {...props} />\n {!isAdminCampaignSignup && <OnboardingModal />}\n </>\n );\n};\n\nAuthenticatedRoute.propTypes = {\n path: string.isRequired,\n};\n\nexport default AuthenticatedRoute;\n","import { shape } from 'prop-types';\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { user as userAPI, campaigns } from 'web/services/api';\nimport { maybeGetToken, removeToken, storeToken } from '../services/session';\nimport { AuthContext } from '../utils/context';\n\nconst AuthProvider = ({ children }) => {\n // Logged in user info\n const [user, setUser] = useState(null);\n const [loading, setLoading] = useState(true);\n\n // Initial state is fethed from localStorage to achieve cross-session data persistance.\n const [token, setToken] = useState(maybeGetToken());\n const [onboardingData, setOnboardingData] = useState({\n campaignId: null,\n firstName: null,\n language: null,\n lastName: null,\n phone: null,\n zip_code: null,\n });\n\n // campaign states\n const [campaignSlug, setCampaignSlug] = useState(null);\n const [isCampaignLoading, setIsCampaignLoading] = useState(true);\n const [campaign, setCampaign] = useState(null);\n\n useEffect(() => {\n if (!campaignSlug) {\n setIsCampaignLoading(false);\n setCampaign(null);\n return;\n }\n\n campaigns\n .getPublicCampaign({ id: campaignSlug })\n .then(({ data: { data } }) => {\n setCampaign(data);\n setIsCampaignLoading(false);\n })\n .catch(() => {\n setCampaign(null);\n setIsCampaignLoading(false);\n });\n }, [campaignSlug]);\n\n useEffect(() => {\n // Fetch user info when logged in and onboarding finished (onboarding updates user profile)\n setLoading(true);\n if (token) {\n userAPI\n .getProfile()\n .then(({ data: { data } }) => setUser(data))\n .finally(() => setLoading(false));\n } else {\n setLoading(false);\n }\n }, [token]);\n\n const setAuth = useCallback(newToken => {\n if (newToken) {\n storeToken(newToken);\n setToken(newToken);\n } else {\n removeToken();\n setToken(null);\n }\n }, []);\n\n // There is a case when token gets invalidated by axios interceptor handler, we need to update it in that case\n if (token !== maybeGetToken()) {\n setAuth(maybeGetToken());\n }\n\n // NOTE: if this provider gets any bigger it would be good to convert this to store w/ simple reducer (not Redux!)\n return (\n <AuthContext.Provider\n value={{\n campaign,\n isCampaignLoading,\n isLoading: isCampaignLoading || loading,\n isLockedToCampaign: !!(user && user.locked_campaign_id),\n loading,\n onboardingData,\n setAuth,\n setCampaignSlug,\n setOnboardingData,\n setToken,\n setUser,\n token,\n user,\n }}\n >\n {children}\n </AuthContext.Provider>\n );\n};\n\nAuthProvider.propTypes = {\n children: shape({}).isRequired,\n};\n\nexport default AuthProvider;\n","import { LeftOutlined } from '@ant-design/icons';\nimport { Button } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { withRouter } from 'react-router-dom';\n\n// NOTE: We need history prop until we switch to react router v5\nconst BackButton = ({ history, children, className }) => {\n const { t } = useTranslation();\n\n // Use transparent button wrapper if children were passed\n if (children) {\n return (\n <Button type=\"link\" className={className} onClick={history.goBack}>\n {children}\n </Button>\n );\n }\n\n // Otherwise render default button\n return (\n <Button type=\"default\" className={className} onClick={history.goBack}>\n <LeftOutlined />\n {t('common.back')}\n </Button>\n );\n};\n\nBackButton.propTypes = {\n children: PropTypes.any,\n className: PropTypes.string,\n history: PropTypes.shape({\n goBack: PropTypes.func.isRequired,\n }).isRequired,\n};\n\n// TODO: remove withRouter HOC in favour of hook for router v5.x\nexport default withRouter(BackButton);\n","import Icon, { StarOutlined, StarFilled } from '@ant-design/icons';\n\n// Inactive icons\nimport democratIconImage from '@assets/images/democrat-icon-active.png';\nimport democratIconImageInactive from '@assets/images/democrat-icon-inactive.png';\nimport frequentIconImageInactive from '@assets/images/frequent-voter-emoji-inactive.png';\nimport frequentIconImage from '@assets/images/frequent-voter-emoji.png';\nimport inDistrictIconImage from '@assets/images/in-district-icon-active.png';\nimport inDistrictIconImageInactive from '@assets/images/in-district-icon-inactive.png';\nimport infrequentIconImageInactive from '@assets/images/infrequent-voter-emoji-inactive.png';\nimport infrequentIconImage from '@assets/images/infrequent-voter-emoji.png';\nimport isSuggestedIconImage from '@assets/images/is-suggested-active.png';\nimport isSuggestedIconImageInactive from '@assets/images/is-suggested-inactive.png';\nimport republicanIconImage from '@assets/images/republican-icon-active.png';\nimport republicanIconImageInactive from '@assets/images/republican-icon-inactive.png';\nimport unmatchedIconImageInactive from '@assets/images/search-icon-transparent.png';\nimport unmatchedIconImage from '@assets/images/search-icon.png';\nimport superIconImageInactive from '@assets/images/super-voter-emoji-inactive.png';\n\n// Active icons\nimport superIconImage from '@assets/images/super-voter-emoji.png';\nimport inSwingIconImage from '@assets/images/swing-district-icon-active.png';\nimport inSwingIconImageInactive from '@assets/images/swing-district-icon-inactive.png';\nimport { Button } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nimport { fonts } from '../../styles/theme';\n\n// Custom icons for filters\nconst sourceByIcon = {\n democrat: democratIconImageInactive,\n frequent: frequentIconImageInactive,\n inDistrict: inDistrictIconImageInactive,\n infrequent: infrequentIconImageInactive,\n inSwing: inSwingIconImageInactive,\n isSuggested: isSuggestedIconImageInactive,\n republican: republicanIconImageInactive,\n suggested: StarOutlined, // antd vector image\n super: superIconImageInactive,\n unmatched: unmatchedIconImageInactive,\n};\n\nconst sourceBySelectedIcon = {\n democrat: democratIconImage,\n frequent: frequentIconImage,\n inDistrict: inDistrictIconImage,\n infrequent: infrequentIconImage,\n inSwing: inSwingIconImage,\n isSuggested: isSuggestedIconImage,\n republican: republicanIconImage,\n suggested: StarFilled, // antd vector image\n super: superIconImage,\n unmatched: unmatchedIconImage,\n};\n\n// Resolves image based on passed icon parameter\nconst resolveImage = (icon, active) => {\n const resolvedIcon = active ? sourceBySelectedIcon[icon] : sourceByIcon[icon];\n\n // Do not return any icon if unrecognized\n if (!resolvedIcon) {\n return;\n }\n\n // Antd vector icons need to be wrapped with Icon\n if (typeof resolvedIcon === 'object') {\n return <Icon component={resolvedIcon} style={{ verticalAlign: 'middle' }} />;\n }\n\n // Otherwise we need to wrap normal image icon as Icon's component\n if (typeof resolvedIcon === 'string') {\n const wrappedImageComponent = () => (\n <img src={resolvedIcon} height={16} width={16} alt=\"icon\" />\n );\n return <Icon component={wrappedImageComponent} style={{ verticalAlign: 'text-bottom' }} />;\n }\n};\n\nconst FilterButtonInner = styled(Button)`\n font-family: ${fonts.italic};\n width: 175px;\n margin: 0.5em;\n`;\n\nconst FilterButton = ({ active, icon, children, ...props }) => {\n const resolvedIcon = resolveImage(icon, active);\n const buttonType = active ? 'primary' : 'default';\n return (\n <FilterButtonInner type={buttonType} icon={resolvedIcon} shape=\"round\" {...props}>\n {children}\n </FilterButtonInner>\n );\n};\n\nFilterButton.defaultProps = {\n active: false,\n icon: null,\n};\n\nFilterButton.propTypes = {\n active: PropTypes.bool,\n children: PropTypes.node.isRequired,\n icon: PropTypes.string,\n};\n\nexport default FilterButton;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Helmet } from 'react-helmet';\n\nfunction SEO({ description, image, title }) {\n const fallbackDescription = `Whether it's amplifying the national discussion on important issues, mobilizing for policy fights, or getting your favorite candidates elected, Impactive empowers progressives like you to create change both on and offline.`;\n const fallbackImage =\n 'https://s3.amazonaws.com/outvote-static-assets/development/uploads/Ll/1585241956/outvote-default.jpg';\n const fallbackTitle = 'Impactive';\n\n const seoDescription = description || fallbackDescription;\n const seoImage = image || fallbackImage;\n const seoTitle = title ? `Impactive · ${title}` : fallbackTitle;\n\n return (\n <Helmet title={seoTitle || undefined}>\n <meta name=\"description\" content={seoDescription} />\n {/* Twitter */}\n <meta name=\"twitter:card\" content=\"summary_large_image\" />\n <meta name=\"twitter:creator\" content=\"@joinimpactive\" />\n <meta name=\"twitter:domain\" content=\"impactive.io\" />\n <meta name=\"twitter:site\" content=\"@joinimpactive\" />\n <meta name=\"twitter:description\" content={seoDescription} />\n <meta name=\"twitter:image\" content={seoImage} />\n <meta name=\"twitter:title\" content={seoTitle} />\n {/* Schema.org */}\n {/* Need to define which schemas to use here in the future */}\n {/* Open Graph */}\n <meta property=\"og:description\" content={seoDescription} />\n <meta property=\"og:image\" content={seoImage} />\n <meta property=\"og:title\" content={seoTitle} />\n <meta property=\"og:url\" content={`https://impactive.io/${window.location.pathname}`} />\n </Helmet>\n );\n}\n\nSEO.propTypes = {\n description: PropTypes.string,\n image: PropTypes.string,\n title: PropTypes.string,\n};\n\nSEO.defaultProps = {\n description: null,\n image: null,\n title: null,\n};\n\nexport default SEO;\n","import styled from 'styled-components';\n\nconst Text = styled.p`\n color: ${({ color, theme }) => (color ? theme.colors[color] : theme.colors.black)};\n`;\n\nexport default Text;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport ImpactiveButton from '../ImpactiveButton';\nimport FormActivity from '../ActivityDetail/FormActivity';\nimport { Link, useHistory } from 'react-router-dom';\nimport ShareActivity from '../ActivityDetail/ShareActivity';\nimport WebActivity from '../ActivityDetail/WebActivity';\n\nimport { getButtonCopy, getStartActivityLink } from './utils';\nimport { getButtonText } from '../../utils/other';\nimport { track } from '../../services/analytics';\nimport { user } from '../../services/api';\nimport { useTranslation } from 'react-i18next';\n\nconst StyledButton = styled(ImpactiveButton)`\n &&& {\n ${({ theme, isModal }) => css`\n font-family: ${theme.fonts.blackItalic};\n width: ${isModal ? '100%' : 'unset'};\n `}\n\n ${({ $completed, disabled }) =>\n $completed &&\n !disabled &&\n `\n background-color: #949494;\n border-color: #949494;\n &:hover {\n background-color: #a9a9a9;\n border-color: #a9a9a9;\n }\n &:active {\n background-color: #808080;\n border-color: #808080;\n }\n `}\n }\n`;\n\nconst StyledLink = styled(Link)`\n &&& {\n text-decoration: none;\n }\n`;\n\nconst ActivityButton = ({\n userActivity,\n activity: {\n id: activityId,\n type: activityType,\n aasm_state,\n button_text,\n title: activityTitle,\n share_text,\n share_link,\n go_to_link,\n campaign: { id: campaignId, name: campaignName = '', slug: campaignSlug } = {},\n } = {},\n setActivityCompletedModalVisible,\n completed,\n isModal,\n onActivityActionButtonPress,\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n\n const closed = aasm_state === 'closed';\n\n const { id: userActivityId } = userActivity || {};\n\n const startLink = getStartActivityLink({\n activityId,\n activityType,\n campaignId,\n campaignSlug,\n userActivityId,\n });\n const buttonCopy = getButtonCopy({ activityType, button_text, closed, completed, t });\n\n /**\n * Call to action buttons are rendered conditionally based on activityType\n * - ShareActivity and WebActivity are custom components and are handled directly\n * - Other userActivities are simple links to corresponding handler page\n * - Campaign activities (no userActivityId) will act as 'join campaign' button\n **/\n function renderCTA() {\n // Campaign join button for campaign activity\n if (!userActivityId) {\n return (\n <StyledButton\n type=\"primary\"\n disabled={closed}\n isModal\n onClick={onActivityActionButtonPress}\n >\n {t('campaign.activity.join_to_take_action')}\n </StyledButton>\n );\n }\n\n if (activityType === 'ShareActivity') {\n return (\n <div onClick={trackClick}>\n <ShareActivity\n campaignName={campaignName}\n url={share_link}\n message={share_text}\n onShareWindowClose={() => {\n // Prompts user to confirm completed action\n setActivityCompletedModalVisible(true);\n }}\n />\n </div>\n );\n }\n\n if (activityType === 'FormActivity') {\n return <FormActivity campaignName={campaignName} userActivity={userActivity} />;\n }\n\n if (activityType === 'SurveyActivity') {\n history.push(`/campaigns/${campaignSlug}/activities/${activityId}`);\n }\n\n if (activityType === 'WebActivity') {\n return (\n <WebActivity\n goToUrl={go_to_link}\n closed={closed}\n onWebActivityCompleted={() => {\n // Prompts user to confirm completed action\n if (!completed) setActivityCompletedModalVisible(true);\n }}\n >\n <StyledButton\n data-testid=\"web-activity-start\"\n onClick={trackClick}\n type=\"primary\"\n block\n disabled={closed}\n $completed={completed}\n isModal\n >\n {getButtonText(activityType, completed)}\n </StyledButton>\n </WebActivity>\n );\n }\n\n return (\n <Link\n data-testid=\"activity-start-button\"\n disabled={closed}\n onClick={trackClick}\n style={{ color: 'white' }}\n to={startLink}\n >\n <StyledButton type=\"primary\" isModal disabled={closed} $completed={completed}>\n {buttonCopy}\n </StyledButton>\n </Link>\n );\n }\n\n const trackClick = async () => {\n track('START_ACTIVITY', {\n activity_id: activityId,\n activity_title: activityTitle,\n activity_type: activityType,\n campaign_id: campaignId,\n campaign_name: campaignName,\n });\n\n // Only track user activity when one exists\n if (userActivityId) {\n user.userActivityTrackClick(userActivityId);\n }\n };\n\n /**\n * Call to action buttons are rendered conditionally based on activityType\n * - ShareActivity and WebActivity are custom components and are handled directly\n * - Other userActivities are simple links to corresponding handler page\n * - Campaign activities (no userActivityId) will act as 'join campaign' button\n **/\n function renderPreviewCTA() {\n // Campaign join button for campaign activity\n if (!userActivityId) {\n return (\n <StyledButton\n isModal={isModal}\n type=\"primary\"\n disabled={closed}\n onClick={e => {\n e.stopPropagation();\n onActivityActionButtonPress();\n }}\n >\n {t('campaign.activity.join_to_take_action')}\n </StyledButton>\n );\n }\n\n // For Web Share and Social Share activities, we should open modal instead of redirecting to the activity page\n // There is no onClick function, because when the user click on the activity, the modal automatically appears\n if (!startLink) {\n return (\n <StyledButton type=\"primary\" disabled={closed}>\n {buttonCopy}\n </StyledButton>\n );\n }\n\n return (\n <StyledLink\n data-testid=\"activity-start-button\"\n onClick={trackClick}\n to={startLink}\n disabled={closed}\n >\n <StyledButton type=\"primary\" disabled={closed} $completed={completed}>\n {buttonCopy}\n </StyledButton>\n </StyledLink>\n );\n }\n\n return <>{isModal ? renderCTA() : renderPreviewCTA()}</>;\n};\n\nActivityButton.propTypes = {\n activity: PropTypes.shape({}),\n completed: PropTypes.bool.isRequired,\n isModal: PropTypes.bool,\n onActivityActionButtonPress: PropTypes.func,\n setActivityCompletedModalVisible: PropTypes.func,\n userActivity: PropTypes.shape({ id: PropTypes.number }),\n};\n\nexport default ActivityButton;\n","import { getButtonText } from '../../utils/other';\n\nconst getStartActivityLink = ({\n activityId,\n activityType,\n campaignId,\n campaignSlug,\n userActivityId,\n}) => {\n if (!activityType) return;\n\n switch (activityType) {\n case 'TestimonialActivity':\n // Takes user to testimonial page where they can upload photo/video and add a note.\n return `/activities/${userActivityId}/testimonial`;\n\n case 'DialerActivity':\n // Takes user to testimonial page where they can upload photo/video and add a note.\n return `/activities/${userActivityId}/phone-bank`;\n\n case 'TextAFriendActivity':\n // Opens up contacts page with select boxes, pick a template, edit the template, open 1 by 1 or bulk using mailto, manually confirm alert)\n // NOTE: on webapp we are emailing, not texting, so endpoint below will differ\n return `/activities/${userActivityId}/email_friends`;\n\n case 'TextAListActivity':\n // ListMessage - p2p texting action, you get the list of people, you hit send manually until all messages are sent.\n return `/activities/${userActivityId}/p2p`;\n\n // MTS - Added this as a bugfix on 4/13/22\n // Slack conversation: https://impactiveinc.slack.com/archives/C02PM6WH8N4/p1649879650553749\n case 'RegistrationActivity':\n return `/campaigns/${campaignSlug}/activities/${activityId}`;\n\n case 'IdVotersActivity':\n // IdVotersScreen -> takes user to the search screen, pick the person, fill out outreach report for the voter in VoterInfoScreen\n return {\n pathname: '/voters',\n state: {\n activityId,\n campaignId,\n userActivityId,\n },\n };\n\n default:\n // ShareActivity and WebActivity have their own handlers.\n return;\n }\n};\n\nconst getButtonCopy = ({ activityType, completed, closed, t, button_text }) => {\n let buttonCopy = t('button.start');\n\n if (activityType) {\n if (closed) return t('button.closed');\n\n if (completed) return getButtonText(activityType, completed);\n\n if (button_text) {\n const i18nCode = `button.${button_text.toLowerCase().replace(' ', '_')}`; // \"Visit Site\" --> \"button.visit_site\"\n const translated_button_text = t(i18nCode);\n\n return translated_button_text === i18nCode ? button_text : translated_button_text;\n }\n }\n\n return buttonCopy;\n};\n\nexport { getStartActivityLink, getButtonCopy };\n","import styled, { css } from 'styled-components';\n\nimport pxToRem from '@admin/utils/pxToRem';\n\nconst ActivityWrapper = styled.div`\n position: relative;\n width: 100%;\n height: 100%;\n background: ${({ theme }) => theme.colors.white};\n padding: 8px;\n min-height: 220px;\n display: flex;\n flex-direction: column;\n box-shadow: 0px 2px 14px rgba(0, 0, 0, 0.07);\n border-radius: 16px;\n opacity: ${({ closed }) => (closed ? '0.5' : '1')};\n cursor: pointer;\n`;\n\nconst ActivityBody = styled.div`\n display: flex;\n justify-content: space-between;\n flex: 1;\n`;\n\nconst MediaWrapper = styled.div`\n display: flex;\n justify-content: flex-end;\n align-items: center;\n width: 100%;\n height: 100%;\n`;\n\nconst ActivityType = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: ${pxToRem(12)};\n line-height: 18px;\n text-transform: uppercase;\n margin-bottom: 10px;\n`;\n\nconst Media = styled.div`\n ${({ isModal }) =>\n isModal\n ? css`\n width: 100%;\n height: 100%;\n height: 350px;\n margin-bottom: 1rem;\n `\n : css`\n width: 100%;\n height: 100%;\n max-width: 204px;\n max-height: 204px;\n `};\n\n background-image: url(${({ src }) => src});\n border-radius: 12px;\n background-size: cover;\n background-position: center;\n`;\n\nconst MediaContentWrapper = styled.div`\n position: relative;\n width: 50%;\n > span {\n position: absolute;\n right: 10px;\n top: 15px;\n background: red;\n background: rgba(0, 0, 0, 0.3);\n border-radius: 8px;\n color: white;\n padding: 10px;\n cursor: pointer;\n z-index: 1;\n }\n`;\n\nconst Body = styled.div`\n ${({ theme, isModal }) => css`\n color: ${theme.colors.blackL32};\n font-family: ${theme.fonts.regular};\n margin: ${isModal ? '2rem 0' : '0 0 3px'};\n `};\n font-size: 14px;\n line-height: 16px;\n`;\n\nconst Date = styled.div`\n color: ${({ theme }) => theme.colors.blue60};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 12px;\n padding-left: 2px;\n`;\nconst Title = styled.div`\n ${({ theme }) => css`\n color: ${theme.colors.blue};\n font-family: ${theme.fonts.semibold};\n `};\n margin-bottom: 6px;\n font-size: 18px;\n line-height: 1.25;\n`;\n\nconst GeneralActivityData = styled.div`\n padding: 16px 10px 16px 16px;\n width: 50%;\n height: 100%;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n`;\n\nexport {\n ActivityBody,\n ActivityType,\n ActivityWrapper,\n Body,\n Date,\n GeneralActivityData,\n Media,\n MediaContentWrapper,\n MediaWrapper,\n Title,\n};\n","export const friendlyTypeNameFor = type => {\n switch (type) {\n case 'DialerActivity':\n return 'Phone Bank';\n\n case 'RegistrationActivity':\n return 'Voter Registration';\n\n case 'TestimonialActivity':\n case 'stories':\n return 'Video Story';\n\n case 'TextAFriendActivity':\n case 'friend_banks':\n return 'Friend to Friend Texting';\n\n case 'TextAListActivity':\n case 'text_banks':\n return 'Peer to Peer Texting';\n\n case 'ShareActivity':\n case 'social_sharing':\n return 'Social Sharing';\n\n case 'SurveyActivity':\n case 'build_list':\n return 'Build List';\n\n case 'FormActivity':\n case 'surveys':\n return 'Surveys';\n\n case 'WebActivity':\n case 'webpage':\n return 'Open a Webpage';\n\n case 'NewsActivity':\n return 'Make an Announcement';\n\n case 'IdVotersActivity':\n case 'ReportActivity':\n case 'canvassing':\n return 'Shared List Canvassing';\n\n case 'AssignedCanvassingActivity':\n return 'Assigned List Canvassing';\n\n case 'BroadcastActivity':\n case 'broadcast':\n return 'Send a Broadcast SMS';\n\n case 'AutomatedTextActivity':\n case 'Automated Texting':\n return 'Setup an Automated Text';\n\n case 'ReminderActivity':\n case 'reminder_activities':\n return 'Push Notification';\n\n case 'EmailReminderActivity':\n case 'email_reminder_activities':\n return 'Email Reminder';\n\n case 'DirectMessageActivity':\n case 'direct_message_activities':\n return 'Direct Message';\n\n default:\n return '';\n }\n};\n","import React from 'react';\n\nimport Clipboard from 'react-clipboard.js';\nimport { message, Tooltip } from 'antd';\nimport { ShareAltOutlined } from '@ant-design/icons';\nimport ActivityButton from './ActivityButton';\nimport {\n ActivityWrapper,\n ActivityBody,\n ActivityType,\n Body,\n Date,\n GeneralActivityData,\n MediaContentWrapper,\n Media,\n MediaWrapper,\n Title,\n} from './sharedStyledComponents';\n\nimport PropTypes from 'prop-types';\nimport { dateToAge, truncate } from '../../utils/string';\nimport { useTranslation } from 'react-i18next';\nimport { friendlyTypeNameFor } from '../../constants/activityTypes';\n\nconst ActivityPreview = ({ activity, completed, userActivity, onActivityActionButtonPress }) => {\n const { t } = useTranslation();\n\n const activityDescriptionTruncated = truncate(activity.description, 50);\n const activityTitleTruncated = truncate(activity.title, 50);\n const closed = activity.aasm_state === 'closed';\n\n const shareActivityLink = `${window.location.origin}/campaigns/${activity.campaign.slug}?activityId=${userActivity?.id}`;\n\n //set it to friendly english name, if not found in translations\n\n return (\n <ActivityWrapper>\n <ActivityBody>\n <GeneralActivityData>\n <div>\n <ActivityType>\n {t(`activity.types.${activity.type}`, friendlyTypeNameFor(activity.type))}\n </ActivityType>\n <Title>{activityTitleTruncated}</Title>\n </div>\n <div>\n <Body>{activityDescriptionTruncated}</Body>\n <Date>\n {dateToAge(activity.published_at)}\n {closed && ` (${t('campaign.activity.closed')})`}\n </Date>\n </div>\n\n <ActivityButton\n activity={activity}\n completed={completed}\n onActivityActionButtonPress={onActivityActionButtonPress}\n userActivity={userActivity}\n />\n </GeneralActivityData>\n\n <MediaContentWrapper>\n <Clipboard\n component=\"span\"\n className=\"anticon\"\n onClick={e => e.stopPropagation()}\n data-clipboard-text={shareActivityLink}\n onSuccess={() => message.info(t('activity.share.copied_to_clipboard'))}\n >\n <Tooltip placement=\"top\" title={t('button.share')}>\n <ShareAltOutlined style={{ cursor: 'pointer' }} />\n </Tooltip>\n </Clipboard>\n\n {!!activity.media_url && (\n <MediaWrapper>\n <Media src={activity.media_url} />\n </MediaWrapper>\n )}\n </MediaContentWrapper>\n </ActivityBody>\n </ActivityWrapper>\n );\n};\n\nActivityPreview.propTypes = {\n activity: PropTypes.object.isRequired,\n completed: PropTypes.bool.isRequired,\n onActivityActionButtonPress: PropTypes.func,\n userActivity: PropTypes.shape({ id: PropTypes.number }),\n};\n\nexport default ActivityPreview;\n","import React, { useState } from 'react';\n\nimport ImpactiveModal from '@web/components/common/ImpactiveModal';\nimport ActivityButton from './ActivityButton';\nimport { ActivityType, Body, Media, Title, Date } from './sharedStyledComponents';\nimport ActivityCompletedModal from '../ActivityDetail/ActivityCompletedModal';\n\nimport PropTypes from 'prop-types';\nimport { friendlyTypeNameFor } from '../../constants/activityTypes';\nimport { convertLinks, dateToAge } from '../../utils/string';\nimport { useTranslation } from 'react-i18next';\n\nconst ActivityPreviewModal = ({\n activity,\n completed,\n onActivityActionButtonPress,\n onCancel,\n userActivity,\n visible,\n}) => {\n const { t } = useTranslation();\n const [activityCompletedModalVisible, setActivityCompletedModalVisible] = useState(false);\n\n if (!visible) return null;\n\n const closed = activity.aasm_state === 'closed';\n return (\n <>\n <ImpactiveModal visible={visible} onCancel={onCancel} width={700}>\n {activity.media_url && <Media src={activity.media_url} isModal />}\n\n <div>\n <ActivityType>{friendlyTypeNameFor(activity.type)}</ActivityType>\n <Title>{activity.title}</Title>\n <Date>\n {dateToAge(activity.published_at)}\n {closed && ` (${t('campaign.activity.closed')})`}\n </Date>\n </div>\n\n <Body\n isModal\n dangerouslySetInnerHTML={{\n __html: convertLinks(activity.description),\n }}\n />\n\n <ActivityButton\n activity={activity}\n setActivityCompletedModalVisible={() => {\n setActivityCompletedModalVisible(true);\n }}\n completed={completed}\n userActivity={userActivity}\n onActivityActionButtonPress={onActivityActionButtonPress}\n isModal\n />\n </ImpactiveModal>\n {/* Modal will be shown for manually confirming completion of WebActivity and ShareActivity */}\n {activityCompletedModalVisible && (\n <ActivityCompletedModal\n campaignName={activity.campaign.name}\n campaignId={activity.campaign.id}\n activityTitle={activity.title}\n activityId={activity.id}\n userActivityId={userActivity?.id}\n onModalClosedCallback={() => {\n setActivityCompletedModalVisible(false);\n }}\n />\n )}\n </>\n );\n};\n\nActivityPreviewModal.propTypes = {\n activity: PropTypes.object,\n completed: PropTypes.bool,\n isFeatured: PropTypes.bool,\n onActivityActionButtonPress: PropTypes.func,\n onCancel: PropTypes.func.isRequired,\n userActivity: PropTypes.object,\n visible: PropTypes.bool.isRequired,\n};\n\nexport default ActivityPreviewModal;\n","import i18n from 'web/components/i18n';\n\nexport const actionTypes = [\n {\n label: i18n.t('activity.types.all'),\n value: null,\n },\n {\n label: i18n.t('activity.types.text_a_list_activity'),\n value: 'TextAListActivity',\n },\n {\n label: i18n.t('activity.types.DialerActivity'),\n value: 'DialerActivity',\n },\n {\n label: i18n.t('activity.types.text_a_friend_activity'),\n value: 'TextAFriendActivity',\n },\n {\n label: i18n.t('activity.types.share_activity'),\n value: 'ShareActivity',\n },\n {\n label: i18n.t('activity.types.web_activity'),\n value: 'WebActivity',\n },\n];\n","import { Button, Form, Input, Modal } from 'antd';\nimport PropTypes from 'prop-types';\nimport React, { useContext, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled, { css } from 'styled-components';\nimport ImpactiveButton from '@web/components/ImpactiveButton';\nimport theme from '../../styles/theme';\nimport { AuthContext } from '../../utils/context';\n\nconst ModalTitle = styled.div`\n font-size: 22px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n`;\n\nconst ZipInput = styled(Input)`\n display: inline-block;\n width: 200px !important;\n height: 35px;\n`;\n\nconst Description = styled.div`\n padding-bottom: 18px;\n`;\n\nconst FormAndButton = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst Wrapper = styled.span`\n font-family: ${({ theme }) => theme.fonts.regular};\n color: ${({ theme }) => theme.colors.gray};\n`;\n\nconst SubTitle = styled.div`\n ${({ theme }) =>\n css`\n font-family: ${theme.fonts.regular};\n color: ${theme.colors.blue};\n `}\n font-size: 1rem;\n margin-left: 10px;\n`;\n\nconst SetZipButton = styled(Button)`\n background: none;\n border: none;\n padding: 0;\n`;\n\nconst ButtonText = styled.div`\n color: ${({ theme }) => theme.fonts.blue};\n font-family: ${({ theme }) => theme.fonts.blackItalic};\n`;\n\nconst ButtonsWrapper = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst ZipProvider = ({ zip, setZip }) => {\n const { t } = useTranslation();\n const { user } = useContext(AuthContext);\n\n const [showZipEntryModal, setShowZipEntryModal] = useState(false);\n const [modalZipInput, setModalZipInput] = useState('');\n const userSuppliedLocationAvailable = user && user.supplied_zip_code;\n\n const isValidZip = code => /^\\d{5}$/.test(code);\n\n const onZipInputChanged = code => {\n if (/^\\d{0,5}$/.test(code)) setModalZipInput(code);\n };\n\n const setZipCodeAndDismissModal = code => {\n setZip(code);\n setShowZipEntryModal(false);\n };\n\n const renderButton = () => {\n return userSuppliedLocationAvailable ? (\n <ImpactiveButton onClick={() => setZip(user.supplied_zip_code)}>\n {t('explore.near_me')}\n </ImpactiveButton>\n ) : (\n <ImpactiveButton onClick={() => setShowZipEntryModal(true)}>\n {t('explore.filter_by_location')}\n </ImpactiveButton>\n );\n };\n\n return (\n <Wrapper>\n {zip ? (\n <ButtonsWrapper>\n <ImpactiveButton secondary onClick={() => setShowZipEntryModal(true)}>\n {t('explore.change')}\n </ImpactiveButton>\n <SubTitle>\n {t('explore.searching_in_zip')} {zip}\n </SubTitle>\n </ButtonsWrapper>\n ) : (\n renderButton()\n )}\n\n <Modal\n visible={showZipEntryModal}\n maskClosable\n onCancel={() => setShowZipEntryModal(false)}\n bodyStyle={{ backgroundColor: theme.colors.background }}\n footer={null}\n >\n <ModalTitle>{t('explore.zip_modal.title')}</ModalTitle>\n <Form\n id=\"modalForm\"\n onFinish={() => {\n // Submit zip code only if it's valid\n if (isValidZip(modalZipInput)) {\n setZipCodeAndDismissModal(modalZipInput);\n }\n }}\n >\n <Description>{t('explore.zip_modal.description')}</Description>\n <FormAndButton>\n <ZipInput\n autoFocus\n size=\"large\"\n value={modalZipInput}\n onChange={e => onZipInputChanged(e.target.value)}\n />\n\n <div className=\"mx-3\">\n <Button\n disabled={!isValidZip(modalZipInput)}\n form=\"modalForm\"\n htmlType=\"submit\"\n key=\"submit\"\n type=\"primary\"\n >\n {t('explore.zip_modal.submit')}\n </Button>\n </div>\n\n <Button key=\"clear\" onClick={() => setZipCodeAndDismissModal(null)}>\n {t('explore.zip_modal.clear')}\n </Button>\n </FormAndButton>\n </Form>\n\n <SetZipButton\n type=\"link\"\n disabled={!userSuppliedLocationAvailable}\n onClick={() => setZipCodeAndDismissModal(user.supplied_zip_code)}\n style={{ padding: '0px' }}\n >\n <ButtonText>{t('explore.zip_modal.use_current_location')}</ButtonText>\n </SetZipButton>\n </Modal>\n </Wrapper>\n );\n};\n\nZipProvider.propTypes = {\n setZip: PropTypes.func.isRequired,\n zip: PropTypes.string,\n};\n\nexport default ZipProvider;\n","import React, { useState } from 'react';\n\nimport { Select } from 'antd';\nimport { ErrorMessage } from 'formik';\n\nimport styled, { css } from 'styled-components';\nimport PropTypes from 'prop-types';\n\nconst { Option } = Select;\n\nconst SelectWrapper = styled.div`\n margin: ${({ margin }) => margin ?? 'unset'};\n`;\n\nconst Label = styled.div`\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 0.875rem;\n ${({ theme }) => css`\n color: ${theme.colors.blue60};\n font-family: ${theme.fonts.bold};\n `}\n\n ${({ bold, theme }) =>\n bold &&\n css`\n font-weight: 600;\n text-transform: none;\n color: ${theme.colors.black};\n `}\n\n ${({ required, theme }) =>\n required &&\n css`\n ::after {\n content: '*';\n color: ${theme.colors.coral};\n }\n `}\n`;\n\nconst outlined = value => css`\n min-width: ${({ $minWidth }) => $minWidth ?? '240px'};\n > div {\n padding: 4px 11px;\n height: 42px;\n border-color: ${({ theme }) => theme.colors.gray};\n border-radius: 6px;\n }\n color: ${({ theme }) => (value ? theme.colors.black : theme.colors.blackL72)};\n font-size: 1rem;\n font-weight: 400;\n\n svg {\n color: ${({ theme }) => theme.colors.blue60};\n }\n &:hover {\n border-color: ${({ theme }) => theme.colors.teal60};\n svg {\n color: ${({ theme }) => theme.colors.blue};\n }\n }\n`;\n\nconst standard = (open, value) => css`\n .ant-select-selection-item {\n &:after {\n content: none;\n }\n }\n > div {\n display: flex;\n align-items: center;\n padding: 0 1.3rem;\n border: 0;\n height: 72px;\n font-size: 1rem;\n background: ${({ theme }) => (open ? theme.colors.teal20 : theme.colors.snow)};\n min-width: 135px;\n max-width: 250px;\n span[title] {\n color: ${({ theme }) => (value ? theme.colors.black : theme.colors.blackL72)};\n opacity: 0.6;\n }\n }\n svg {\n color: ${({ theme }) => theme.colors.blue};\n opacity: 0.6;\n }\n &:hover {\n svg {\n opacity: 1;\n }\n > div {\n background: ${({ theme }) => theme.colors.teal20};\n span[title] {\n color: ${({ theme }) => theme.colors.blue};\n opacity: 1;\n }\n }\n }\n`;\n\nconst StyledSelect = styled(Select)`\n &&& {\n ${({ type, open, value }) => `\n width: 100%;\n ${type === 'outlined' ? outlined(value) : standard(open, value)};\n `}\n\n background-color: transparent;\n\n .ant-select-selection-placeholder {\n color: #757575;\n }\n }\n`;\n\nconst StyledErrorMessage = styled(ErrorMessage).attrs({ component: 'div' })`\n color: #ea5156;\n font-size: 12px;\n`;\n\nconst OptionContent = styled.div`\n display: flex;\n align-items: center;\n svg {\n margin-right: 0.5rem;\n }\n`;\n\nconst SelectComponent = ({\n label,\n value,\n options,\n onChange,\n name,\n placeholder,\n mode,\n labelProps,\n ...rest\n}) => {\n const [visible, setVisible] = useState(false);\n\n return (\n <SelectWrapper margin={rest.margin} $minWidth={rest.minWidth}>\n {label && <Label {...labelProps}>{label}</Label>}\n <StyledSelect\n name={name}\n placeholder={placeholder}\n value={value}\n open={visible}\n onChange={onChange}\n onDropdownVisibleChange={setVisible}\n mode={mode}\n {...rest}\n >\n {options.map((item, index) => (\n <Option key={index} value={item.value} label={item.label}>\n <OptionContent>\n {item.icon}\n {item.label}\n </OptionContent>\n </Option>\n ))}\n </StyledSelect>\n {name && <StyledErrorMessage name={name} />}\n </SelectWrapper>\n );\n};\n\nSelectComponent.propTypes = {\n label: PropTypes.string,\n labelProps: PropTypes.object,\n margin: PropTypes.string,\n mode: PropTypes.string,\n name: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.node,\n label: PropTypes.string.isRequired,\n value: PropTypes.any.isRequired,\n }),\n ).isRequired,\n placeholder: PropTypes.string,\n type: PropTypes.string,\n value: PropTypes.any,\n};\n\nSelectComponent.defaultProps = { labelProps: {}, type: 'outlined' };\n\nexport default SelectComponent;\n","import PropTypes from 'prop-types';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport { actionTypes } from '../../data/utils/types';\nimport { media } from '../../styles/theme';\nimport { StateContext } from '../../utils/context';\nimport ZipProvider from './ZipProvider';\nimport SelectComponent from '@web/components/common/shared/Select';\n\nconst Wrapper = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin: 18px 0;\n ${media.nlg} {\n flex-direction: column;\n }\n`;\n\nconst StyledZipProvider = styled(ZipProvider)`\n padding-left: 0;\n`;\n\nconst FiltersContainer = styled.div`\n display: flex;\n > div {\n &:last-of-type {\n margin-left: 13px;\n }\n }\n`;\n\nconst ActivityFilters = ({ onChange }) => {\n const { t } = useTranslation();\n const { causes } = useContext(StateContext);\n const [searchWithinZip, setSearchWithinZip] = useState();\n const [issuesFilter, setIssuesFilter] = useState();\n const [actionsFilter, setActionsFilter] = useState();\n\n useEffect(() => {\n // NOTE: Terminology changed with the new design, filters are mapped to their backend model names here\n onChange({\n activity_type: actionsFilter,\n cause: issuesFilter,\n zip: searchWithinZip,\n });\n }, [onChange, searchWithinZip, issuesFilter, actionsFilter]);\n\n return (\n <Wrapper>\n <StyledZipProvider zip={searchWithinZip} setZip={setSearchWithinZip} />\n <FiltersContainer>\n <SelectComponent\n placeholder={t('frontline.filters.filter_by_issue')}\n value={issuesFilter}\n onChange={setIssuesFilter}\n options={(() => causes.map(({ id, name }) => ({ label: name, value: id })))()}\n />\n <SelectComponent\n data-testid=\"action_type_dropdown\"\n placeholder={t('frontline.filters.filter_by_action_type')}\n value={actionsFilter}\n onChange={setActionsFilter}\n options={(() => actionTypes.map(({ value, label }) => ({ label, value })))()}\n />\n </FiltersContainer>\n </Wrapper>\n );\n};\n\nActivityFilters.propTypes = {\n onChange: PropTypes.func.isRequired,\n};\n\nexport default ActivityFilters;\n","import styled from 'styled-components';\n\nconst Title = styled.div`\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 28px;\n color: ${({ theme }) => theme.colors.black};\n\n small {\n color: ${({ theme }) => theme.colors.mediumGray};\n margin-left: 12px;\n font-size: 16px;\n }\n`;\n\nexport default Title;\n","import { List } from 'antd';\nimport isEqual from 'lodash/isEqual';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport InfiniteScroll from 'react-infinite-scroller';\nimport styled from 'styled-components';\nimport { usePaginatedApi, toObject } from '../../../hooks/usePaginatedApi';\nimport { campaigns, user } from '../../../services/api';\nimport { media } from '../../../styles/theme';\nimport ActivityPreview from '../../Activity/ActivityPreview';\nimport ActivityPreviewModal from '../../Activity/ActivityPreviewModal';\nimport ActivityFilters from '../../common/ActivityFilters';\nimport Loading from '../../common/Loading';\nimport Title from '../../common/Title';\nimport { AuthContext } from '@web/utils/context';\n\nconst ActivityListContainer = styled.div`\n margin-top: 2em;\n`;\n\nconst StyledList = styled(List)`\n .ant-list-items {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n margin-right: -12px;\n }\n`;\n\nconst ActivityItem = styled(List.Item)`\n flex: 0 100%;\n &&& {\n border-bottom: 0;\n padding: 12px 12px 0px 0;\n }\n\n // Show 2 items per row on large screens\n ${media.lg} {\n flex: 0 50%;\n }\n`;\n\nconst ActivityList = ({ campaign, campaignJoined, joinCampaign, initialActivityId }) => {\n const { user: userData } = useContext(AuthContext);\n const { t } = useTranslation();\n const [filters, setFilters] = useState({\n activity_type: undefined,\n cause: undefined,\n zip: undefined,\n });\n\n // Depending on whether or not campaign is joined we use different endpoint with different parameters\n const apiEndpoint = campaignJoined ? user.getUserActivities : campaigns.getCampaignActivities;\n const resourceId = campaignJoined ? null : campaign.id;\n const params = campaignJoined ? { campaign_id: campaign.id, ...filters } : filters;\n\n const {\n hasMore,\n initialLoading,\n items,\n loading,\n loadMore: loadMoreActivities,\n resetPagination,\n } = toObject(usePaginatedApi(apiEndpoint, resourceId, params));\n\n const [selectedAction, setSelectedAction] = useState();\n\n // MTS - This is temporary code to make sure we don't render campaign activities in \"draft\" state.\n // It is going to be fixed on the backend at some point.\n const filteredItems = useMemo(\n () =>\n items\n .filter(item => !(item?.activity?.aasm_state && item?.activity?.aasm_state === 'draft'))\n // If a specific language is selected for an activity, we need to check if it matches the language selected by the user\n .filter(item => !item.activity?.locale || item.activity?.locale === userData?.locale),\n [items, userData?.locale],\n );\n\n const onlyActionItems = useMemo(\n () =>\n filteredItems.filter(\n item =>\n ![\n 'UserBroadcastActivity',\n 'IdVotersActivity',\n 'AssignedCanvassingActivity',\n 'RegistrationActivity',\n ].includes(item?.activity?.type),\n ),\n [filteredItems],\n );\n\n const [scrollRef, setScrollRef] = useState(null);\n\n useEffect(() => {\n resetPagination({ refetch: true });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [campaignJoined, campaign]);\n\n // Since we don't have a separate activity page, we need to open a activity modal on the campaign page from which this activity is\n useEffect(() => {\n if (!initialActivityId || !items) return;\n setSelectedAction(items.find(action => action.id === Number(initialActivityId)));\n }, [initialActivityId, items]);\n\n const shouldRenderInfiniteScroll = loading || (filteredItems && filteredItems.length > 0);\n const showNoResultsMessage = !shouldRenderInfiniteScroll && !initialLoading;\n\n const handleClick = item => {\n setSelectedAction({\n activity: item,\n completed: false,\n onActivityActionButtonPress: joinCampaign,\n });\n };\n\n // item will be either userActivity or activity - depending on whether campaign is joined or not\n const renderItem = item => {\n const { _type: activityType } = item;\n\n if (activityType === 'user_activities') {\n // When the campaign is joined we're dealing with user activities\n const { activity, completed } = item;\n return (\n <ActivityItem onClick={() => setSelectedAction(item)}>\n <ActivityPreview activity={activity} completed={completed} userActivity={item} />\n </ActivityItem>\n );\n } else {\n // Otherwise we're dealing with campaign activities, and render it accordingly\n return (\n <ActivityItem onClick={() => handleClick(item)}>\n <ActivityPreview\n activity={item}\n completed={false}\n onActivityActionButtonPress={joinCampaign}\n />\n </ActivityItem>\n );\n }\n };\n\n const onFilterChangeHandler = useCallback(\n newFilters => {\n if (!isEqual(filters, newFilters)) {\n setFilters(newFilters);\n resetPagination({ refetch: true });\n }\n },\n [filters, resetPagination],\n );\n\n return (\n <>\n <Title>{t('campaign.actions')}</Title>\n <ActivityFilters initialValues={filters} onChange={onFilterChangeHandler} />\n <ActivityListContainer ref={setScrollRef}>\n {shouldRenderInfiniteScroll && (\n <InfiniteScroll\n initialLoad={false}\n pageStart={0}\n threshold={0}\n loadMore={loadMoreActivities}\n hasMore={!loading && hasMore}\n useWindow\n getScrollParent={() => scrollRef}\n >\n <StyledList dataSource={onlyActionItems} renderItem={renderItem}>\n {(loading || !onlyActionItems) && <Loading centered />}\n </StyledList>\n </InfiniteScroll>\n )}\n {showNoResultsMessage && t('campaign.no_actions_found')}\n </ActivityListContainer>\n\n <ActivityPreviewModal\n visible={!!selectedAction}\n onCancel={() => setSelectedAction(null)}\n activity={selectedAction?.activity}\n completed={selectedAction?.completed}\n userActivity={selectedAction?.onActivityActionButtonPress ? null : selectedAction}\n onActivityActionButtonPress={selectedAction?.onActivityActionButtonPress}\n />\n </>\n );\n};\n\nActivityList.propTypes = {\n campaign: PropTypes.shape({\n id: PropTypes.number.isRequired,\n }).isRequired,\n campaignJoined: PropTypes.bool.isRequired,\n initialActivityId: PropTypes.string,\n joinCampaign: PropTypes.func.isRequired,\n};\n\nActivityList.defaultProps = {\n initialActivityId: null,\n};\n\nexport default ActivityList;\n","import { CheckOutlined, PlusOutlined } from '@ant-design/icons';\nimport { Avatar, Button } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport styled from 'styled-components';\nimport defaultCampaignProfile from '../../../../../assets/images/web/default-campaign-profile.png';\nimport { colors, fonts, media } from '../../../styles/theme';\nimport { kFormatter, punyEncodedURL, replaceDefaultCampaignImage } from '../../../utils/string';\n\nconst TopicsContainer = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n margin-top: 13px;\n margin-bottom: 2px;\n`;\n\nconst TopicButton = styled.div`\n margin-right: 8px;\n margin-bottom: 8px;\n justify-content: center;\n border-radius: 6px;\n color: ${colors.darkBlue};\n border: 1px solid ${colors.teal};\n font-family: ${fonts.bolditalic};\n font-size: 10px;\n line-height: 14px;\n letter-spacing: 1px;\n text-transform: uppercase;\n padding: 6px 8px;\n user-select: none;\n`;\n\nconst MetricsContainer = styled.div`\n margin-top: 12px;\n display: flex;\n flex-direction: row;\n`;\n\nconst Metric = styled.div`\n margin-right: 18px;\n`;\n\nconst MetricValue = styled.div`\n font-family: ${fonts.light};\n font-size: 28px;\n color: ${colors.black};\n text-align: left;\n line-height: 32px;\n text-align: center;\n`;\n\nconst CampaignLink = styled.a`\n font-family: ${fonts.semibolditalic};\n font-size: 12px;\n color: ${colors.coral};\n line-height: 16px;\n margin-top: 4px;\n`;\n\nconst MetricLabel = styled.div`\n font-family: ${fonts.semibold};\n font-size: 12px;\n color: ${colors.black};\n letter-spacing: 1px;\n line-height: 16px;\n text-transform: uppercase;\n text-align: center;\n`;\n\nconst CampaignName = styled(Link)`\n font-family: ${fonts.semibold};\n font-size: 28px;\n color: ${colors.black};\n line-height: 1;\n`;\n\nconst CampaignInfo = styled.div`\n display: flex;\n flex-direction: row;\n`;\n\nconst CampaignMetrics = styled.div``;\n\nconst Wrapper = styled.div`\n align-items: center;\n border-bottom: 1px solid ${colors.borderGray};\n display: flex;\n justify-content: space-between;\n padding: 1em 0;\n\n ${media.nlg} {\n flex-direction: column;\n align-items: flex-start;\n }\n`;\n\nconst StyledAvatar = styled(Avatar)`\n margin: 0 1em;\n`;\n\nconst TitleWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-evenly;\n padding: 0 1em;\n`;\n\nconst Title = styled.div`\n display: flex;\n`;\n\nconst JoinButton = styled(Button)`\n margin: 0 1em;\n cursor: ${props => (props.disabled ? 'default !important' : 'pointer')};\n\n &&& {\n color: white !important;\n background-color: gray !important;\n border-color: gray !important;\n ${media.nlg} {\n display: none;\n }\n }\n`;\n\nfunction CampaignHeader({ campaign, joined, onJoinClick }) {\n const { t } = useTranslation();\n\n if (!campaign) {\n return null;\n }\n\n const {\n name,\n slug,\n website_url: website,\n total_allies: allies,\n total_actions_performed: actions,\n url_profile_img: profileUrl,\n } = campaign;\n\n return (\n <Wrapper>\n <CampaignInfo>\n <StyledAvatar\n src={replaceDefaultCampaignImage(profileUrl) || defaultCampaignProfile}\n size={65}\n >\n {name}\n </StyledAvatar>\n <TitleWrapper>\n <Title>\n <CampaignName as={Link} to={`/campaigns/${slug}`}>\n {name}\n </CampaignName>\n <JoinButton\n data-testid=\"join-button\"\n ghost={joined}\n icon={joined ? <CheckOutlined /> : <PlusOutlined />}\n disabled={!onJoinClick}\n onClick={onJoinClick}\n type=\"primary\"\n >\n {joined ? t('campaign.joined') : t('campaign.join')}\n </JoinButton>\n </Title>\n <CampaignLink href={website}>{punyEncodedURL(website)}</CampaignLink>\n </TitleWrapper>\n </CampaignInfo>\n <CampaignMetrics>\n {allies >= 100 && actions >= 100 ? (\n <MetricsContainer>\n <Metric>\n <MetricValue>{kFormatter(allies)}</MetricValue>\n <MetricLabel>{t('campaign.allies')}</MetricLabel>\n </Metric>\n <Metric>\n <MetricValue>{kFormatter(actions)}</MetricValue>\n <MetricLabel>{t('campaign.actions')}</MetricLabel>\n </Metric>\n </MetricsContainer>\n ) : (\n <TopicsContainer>\n <TopicButton>{t('campaign.new')}</TopicButton>\n </TopicsContainer>\n )}\n </CampaignMetrics>\n </Wrapper>\n );\n}\n\nCampaignHeader.propTypes = {\n campaign: PropTypes.shape({\n description: PropTypes.string,\n name: PropTypes.string,\n slug: PropTypes.string,\n total_actions_completed: PropTypes.number,\n total_actions_performed: PropTypes.number,\n total_allies: PropTypes.number,\n url_profile_img: PropTypes.string,\n website_url: PropTypes.string,\n }).isRequired,\n joined: PropTypes.bool.isRequired,\n onJoinClick: PropTypes.func,\n};\n\nCampaignHeader.defaultProps = {\n onJoinClick: null,\n};\n\nexport default CampaignHeader;\n","import React from 'react';\n// import PropTypes from 'prop-types';\n\nfunction Google(props) {\n return (\n <svg viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.99999 3.48C10.69 3.48 11.83 4.21 12.48 4.82L15.02 2.34C13.46 0.89 11.43 0 8.99999 0C5.47999 0 2.43999 2.02 0.959991 4.96L3.86999 7.22C4.59999 5.05 6.61999 3.48 8.99999 3.48V3.48Z\"\n fill=\"#EA4335\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.64 9.19999C17.64 8.45999 17.58 7.91999 17.45 7.35999H9V10.7H13.96C13.86 11.53 13.32 12.78 12.12 13.62L14.96 15.82C16.66 14.25 17.64 11.94 17.64 9.19999V9.19999Z\"\n fill=\"#4285F4\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.88 10.78C3.69 10.22 3.58 9.62002 3.58 9.00002C3.58 8.38002 3.69 7.78002 3.87 7.22002L0.96 4.96002C0.35 6.18002 0 7.55002 0 9.00002C0 10.45 0.35 11.82 0.96 13.04L3.88 10.78V10.78Z\"\n fill=\"#FBBC05\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M9 18C11.43 18 13.47 17.2 14.96 15.82L12.12 13.62C11.36 14.15 10.34 14.52 9 14.52C6.62 14.52 4.6 12.95 3.88 10.78L0.970001 13.04C2.45 15.98 5.48 18 9 18V18Z\"\n fill=\"#34A853\"\n />\n </svg>\n );\n}\n\nGoogle.propTypes = {};\n\nGoogle.defaultProps = {};\n\nexport default Google;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction Play({ fill = '#FFFFFF', ...rest }) {\n return (\n <svg viewBox=\"0 0 55 77\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...rest}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0 6.16597C0 1.1914 5.70556 -1.62246 9.65231 1.40565L51.7956 33.7397C54.9258 36.1413 54.9258 40.8587 51.7955 43.2603L9.6523 75.5944C5.70555 78.6225 0 75.8086 0 70.834V6.16597Z\"\n fill={fill}\n />\n </svg>\n );\n}\n\nPlay.propTypes = {\n fill: PropTypes.string,\n};\n\nPlay.defaultProps = {\n fill: '#FFFFFF',\n};\n\nexport default Play;\n","import React from 'react';\n\nconst Upload = props => {\n return (\n <svg\n width=\"16\"\n height=\"19\"\n viewBox=\"0 0 16 19\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M13.5 12.625V14.875C13.5 15.5078 12.9727 16 12.375 16H3.375C2.74219 16 2.25 15.5078 2.25 14.875V12.625C2.25 12.0273 1.72266 11.5 1.125 11.5C0.492188 11.5 0 12.0273 0 12.625V14.875C0 16.7734 1.47656 18.25 3.375 18.25H12.375C14.2383 18.25 15.75 16.7734 15.75 14.875V12.625C15.75 12.0273 15.2227 11.5 14.625 11.5C13.9922 11.5 13.5 12.0273 13.5 12.625ZM7.06641 0.601562L2.56641 5.10156C2.10938 5.52344 2.10938 6.26172 2.56641 6.68359C2.98828 7.14062 3.72656 7.14062 4.14844 6.68359L6.75 4.11719V11.5C6.75 12.1328 7.24219 12.625 7.875 12.625C8.47266 12.625 9 12.1328 9 11.5V4.11719L11.5664 6.68359C11.9883 7.14062 12.7266 7.14062 13.1484 6.68359C13.6055 6.26172 13.6055 5.52344 13.1484 5.10156L8.64844 0.601562C8.22656 0.144531 7.48828 0.144531 7.06641 0.601562Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default Upload;\n","import React from 'react';\n\nconst Refresh = props => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M14.0312 1.25L12.5312 2.78125C11.3125 1.6875 9.71875 1 8 1C5.03125 1 2.4375 2.90625 1.53125 5.71875C1.375 6.25 1.65625 6.8125 2.1875 6.96875C2.71875 7.125 3.28125 6.84375 3.4375 6.3125C4.0625 4.34375 5.90625 3 8 3C9.15625 3 10.2812 3.46875 11.125 4.1875L9.71875 5.5625C9.21875 6.09375 9.5625 7 10.3125 7H14.9062C15.2188 7 15.5 6.75 15.5 6.40625V1.875C15.5 1.09375 14.5625 0.71875 14.0312 1.25ZM13.7812 9.0625C13.25 8.90625 12.6875 9.1875 12.5312 9.71875C11.9062 11.6875 10.0625 13 8 13C6.8125 13 5.71875 12.5625 4.84375 11.8438L6.25 10.4375C6.75 9.9375 6.40625 9.03125 5.65625 9H1.0625C0.75 9.03125 0.5 9.28125 0.5 9.625V14.1562C0.5 14.9375 1.40625 15.3125 1.9375 14.7812L3.4375 13.25C4.65625 14.3438 6.25 15 7.96875 15C10.9062 15 13.5 13.125 14.4062 10.3125C14.5938 9.78125 14.3125 9.21875 13.7812 9.0625Z\"\n fill=\"black\"\n />\n </svg>\n);\n\nexport default Refresh;\n","import React from 'react';\n\nconst Open = props => (\n <svg\n width=\"17\"\n height=\"16\"\n viewBox=\"0 0 17 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M12.5 10C11.9375 10 11.5 10.4688 11.5 11V14H2.5V5H5.5C6.03125 5 6.5 4.5625 6.5 4C6.5 3.46875 6.03125 3 5.5 3H2.5C1.375 3 0.5 3.90625 0.5 5V14C0.5 15.125 1.375 16 2.5 16H11.5C12.5938 16 13.5 15.125 13.5 14V11C13.5 10.4688 13.0312 10 12.5 10ZM16.1875 0.3125C16 0.125 15.75 0 15.5 0H10.5C9.9375 0 9.5 0.46875 9.5 1C9.5 1.53125 9.96875 1.96875 10.5 1.96875H13.0938L6.0625 9.09375C5.6875 9.5 5.6875 10.125 6.0625 10.5C6.46875 10.9062 7.09375 10.9062 7.5 10.5L14.5 3.4375V6C14.5 6.5625 14.9375 7 15.4688 7C15.9688 7 16.5 6.5625 16.5 6V1C16.5 0.75 16.375 0.5 16.1875 0.3125Z\"\n fill=\"black\"\n />\n </svg>\n);\n\nexport default Open;\n","import React from 'react';\n\nconst UserFilled = ({ ...props }) => {\n return (\n <svg\n width=\"14\"\n height=\"16\"\n viewBox=\"0 0 14 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M7 8C9.13047 8 10.8571 6.23735 10.8571 4.0625C10.8571 1.88765 9.13047 0.125 7 0.125C4.86953 0.125 3.14286 1.88765 3.14286 4.0625C3.14286 6.23735 4.86953 8 7 8ZM9.7 8.98438H9.19676C8.52779 9.29814 7.78348 9.47656 7 9.47656C6.21652 9.47656 5.47522 9.29814 4.80324 8.98438H4.3C2.06406 8.98438 0.25 10.8362 0.25 13.1187V14.3984C0.25 15.2136 0.897879 15.875 1.69643 15.875H12.3036C13.1021 15.875 13.75 15.2136 13.75 14.3984V13.1187C13.75 10.8362 11.9359 8.98438 9.7 8.98438Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n};\n\nexport default UserFilled;\n","import React from 'react';\n\nconst Facebook = props => (\n <svg\n width=\"9\"\n height=\"18\"\n viewBox=\"0 0 9 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M2.23333 18V9.55388H0V6.51287H2.23333V3.91545C2.23333 1.87438 3.55257 0 6.59237 0C7.82314 0 8.73324 0.11799 8.73324 0.11799L8.66153 2.95778C8.66153 2.95778 7.73337 2.94874 6.72053 2.94874C5.62433 2.94874 5.44871 3.45391 5.44871 4.29237V6.51287H8.74866L8.60508 9.55388H5.44871V18H2.23333Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Facebook;\n","import React from 'react';\n\nconst LinkedIn = props => (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 18 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M6.8588 6.47352H9.9538V8.01518C10.3996 7.12852 11.543 6.33185 13.2605 6.33185C16.553 6.33185 17.3346 8.09685 17.3346 11.3352V17.3327H14.0013V12.0727C14.0013 10.2285 13.5555 9.18852 12.4205 9.18852C10.8463 9.18852 10.1921 10.3093 10.1921 12.0718V17.3327H6.8588V6.47352ZM1.14297 17.191H4.4763V6.33185H1.14297V17.191ZM4.9538 2.79102C4.95393 3.07041 4.89852 3.34704 4.79079 3.60484C4.68307 3.86263 4.52518 4.09644 4.3263 4.29268C3.9233 4.6932 3.37781 4.91739 2.80964 4.91602C2.24246 4.91563 1.69823 4.69201 1.29464 4.29352C1.09648 4.09661 0.939124 3.86254 0.831588 3.60471C0.724053 3.34688 0.668451 3.07037 0.667969 2.79102C0.667969 2.22685 0.892969 1.68685 1.29547 1.28852C1.69871 0.889481 2.24317 0.665766 2.81047 0.666016C3.3788 0.666016 3.9238 0.890182 4.3263 1.28852C4.72797 1.68685 4.9538 2.22685 4.9538 2.79102Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default LinkedIn;\n","import React from 'react';\n\nconst Copy = props => (\n <svg\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M12.0443 8.45621C11.2252 7.63744 10.1144 7.17749 8.9563 7.17749C7.79815 7.17749 6.68741 7.63744 5.8683 8.45621L2.7793 11.5442C1.96018 12.3633 1.5 13.4743 1.5 14.6327C1.5 15.7911 1.96018 16.9021 2.7793 17.7212C3.59842 18.5403 4.70939 19.0005 5.8678 19.0005C7.02621 19.0005 8.13718 18.5403 8.9563 17.7212L10.5003 16.1772\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M8.95703 11.5443C9.77614 12.3631 10.8869 12.823 12.045 12.823C13.2032 12.823 14.3139 12.3631 15.133 11.5443L18.222 8.4563C19.0412 7.63718 19.5013 6.52621 19.5013 5.3678C19.5013 4.20939 19.0412 3.09842 18.222 2.2793C17.4029 1.46018 16.2919 1 15.1335 1C13.9751 1 12.8642 1.46018 12.045 2.2793L10.501 3.8233\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n);\n\nexport default Copy;\n","import React from 'react';\n\nconst Share = props => (\n <svg\n width=\"13\"\n height=\"14\"\n viewBox=\"0 0 13 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n opacity=\"0.851\"\n d=\"M10.2337 12.0555C9.76706 12.0555 9.45595 11.6666 9.45595 11.2777C9.45595 10.8888 9.84483 10.4999 10.2337 10.4999C10.6226 10.4999 11.0115 10.8888 11.0115 11.2777C11.0115 11.6666 10.7004 12.0555 10.2337 12.0555ZM3.38928 8.39991C2.6115 8.39991 1.98928 7.77769 1.98928 6.99991C1.98928 6.22214 2.6115 5.59991 3.38928 5.59991C4.16706 5.59991 4.78928 6.22214 4.78928 6.99991C4.78928 7.77769 4.16706 8.39991 3.38928 8.39991ZM10.2337 1.94436C10.7004 1.94436 11.0115 2.33325 11.0115 2.72214C11.0115 3.1888 10.6226 3.49991 10.2337 3.49991C9.84483 3.49991 9.45595 3.11102 9.45595 2.72214C9.45595 2.33325 9.76706 1.94436 10.2337 1.94436ZM10.2337 9.41102C9.76706 9.41102 9.37817 9.56658 9.06706 9.79991L5.80039 7.46658C5.87817 7.15547 5.87817 6.84436 5.80039 6.53325L9.06706 4.19991C9.37817 4.43325 9.76706 4.5888 10.2337 4.5888C11.2448 4.5888 12.1004 3.73325 12.1004 2.72214C12.1004 1.71102 11.2448 0.855469 10.2337 0.855469C9.22261 0.855469 8.36706 1.71102 8.36706 2.72214C8.36706 2.87769 8.36706 3.11102 8.44483 3.26658L5.33372 5.52214C4.94483 4.89991 4.16706 4.51102 3.38928 4.51102C1.98928 4.51102 0.900391 5.59991 0.900391 6.99991C0.900391 8.39991 1.98928 9.4888 3.38928 9.4888C4.24483 9.4888 4.94484 9.09991 5.4115 8.47769L8.52261 10.7332C8.44483 10.8888 8.44483 11.0444 8.44483 11.2777C8.44483 12.2888 9.30039 13.1444 10.3115 13.1444C11.3226 13.1444 12.1782 12.2888 12.1782 11.2777C12.1004 10.1888 11.3226 9.41102 10.2337 9.41102Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport default Share;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport * as Icons from './components';\n\nfunction Icon(props) {\n const { name, ...rest } = props;\n const IconComponent = Icons[name];\n return <IconComponent {...rest} />;\n}\n\nexport default Icon;\n\nIcon.propTypes = {\n name: PropTypes.string.isRequired,\n};\n\nIcon.defaultProps = {};\n","import PropTypes from 'prop-types';\nimport React, { useState, useRef } from 'react';\nimport styled from 'styled-components';\nimport { media } from '../../styles/theme';\nimport Icon from '../common/Icon';\n\nconst PlayButton = styled.button`\n font-size: 50px;\n color: #ffffff;\n\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n\n z-index: 1;\n background: none;\n outline: none;\n border: none;\n\n cursor: pointer;\n\n transition: opacity 150ms ease-out !important;\n :hover {\n opacity: 0.5 !important;\n }\n`;\n\nconst MediaContainer = styled.video`\n width: 100%;\n height: auto;\n margin-bottom: 24px;\n outline: 0;\n`;\n\nconst Picture = styled.img`\n max-height: 375px;\n max-width: 100%;\n\n box-shadow: 0px 2px 2px rgba(128, 126, 121, 0.1);\n\n margin-top: 29px;\n margin-bottom: 25px;\n border-radius: 0.5rem;\n\n ${media.lg} {\n margin-right: 20px;\n margin-bottom: 74px;\n }\n`;\n\nconst Wrapper = styled.div`\n position: relative;\n`;\n\nconst MediaPreview = ({ mediaUrl, mediaContentType }) => {\n const [showPlayButton, setPlayButton] = useState(true);\n const [showControls, setShowControls] = useState(false);\n const videoRef = useRef(null);\n\n const handlePlay = () => {\n videoRef.current.play();\n setPlayButton(false);\n setShowControls(true);\n };\n\n const mediaIsVideo = mediaUrl && mediaContentType && mediaContentType.match('video');\n const mediaIsImage = mediaUrl && mediaContentType && mediaContentType.match('image');\n\n if (mediaIsImage)\n return (\n <Wrapper>\n <Picture src={mediaUrl} alt=\"campaign-image-media\" />\n </Wrapper>\n );\n\n if (mediaIsVideo)\n return (\n <Wrapper>\n {showPlayButton && (\n <PlayButton onClick={handlePlay} aria-label=\"Play video\">\n <Icon name=\"Play\" height=\"77\" />\n </PlayButton>\n )}\n <MediaContainer ref={videoRef} controls={showControls} src={mediaUrl} type={'video/mp4'} />\n </Wrapper>\n );\n\n return null;\n};\n\nMediaPreview.propTypes = {\n mediaContentType: PropTypes.string.isRequired,\n mediaUrl: PropTypes.string.isRequired,\n};\n\nexport default MediaPreview;\n","import { Button } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport MediaPreview from 'web/components/common/MediaPreview';\nimport Title from 'web/components/common/Title';\nimport { media } from 'web/styles/theme';\nimport { truncate } from 'web/utils/string';\n\nconst Wrapper = styled.div`\n align-items: center;\n flex: 1;\n\n ${media.nxl} {\n border-bottom: ${({ theme }) => `1px solid ${theme.colors.borderGray}`};\n }\n`;\n\nconst StyledTitle = styled(Title)`\n margin-top: 24px;\n`;\n\nconst Media = styled.div`\n margin-top: 12px;\n`;\n\nconst Info = styled.div``;\n\nconst Description = styled.div`\n color: ${({ theme }) => theme.colors.black};\n`;\n\nconst SeeMoreButton = styled(Button)`\n &&& {\n padding-left: 0;\n margin-bottom: 16px;\n font-family: ${({ theme }) => theme.fonts.boldItalic};\n font-size: 16px;\n }\n`;\n\nconst Highlights = styled.div`\n margin: 16px 0;\n`;\n\nconst HighlightItem = styled.div`\n color: ${({ theme }) => theme.colors.black};\n margin-bottom: 8px;\n`;\n\nconst HighlightIcon = styled.img`\n height: 24px;\n width: 24px;\n margin-right: 12px;\n`;\n\nconst TRUNCATE_LENGTH = 250;\n\nconst CampaignAbout = ({ campaign }) => {\n const { t } = useTranslation();\n\n const { highlights, description, public_join_video_url, url_hero_img } = campaign;\n const isDescriptionLong = description && description.length > TRUNCATE_LENGTH;\n\n const [descriptionExpanded, setDescriptionExpanded] = React.useState(false);\n const handleSeeMore = () => setDescriptionExpanded(i => !i);\n\n let mediaUrl = public_join_video_url;\n let mediaContentType = 'video';\n\n if (!mediaUrl) {\n //Default to hero image\n mediaUrl = url_hero_img;\n mediaContentType = 'image';\n }\n\n return (\n <Wrapper>\n <StyledTitle>{t('campaign.about')}</StyledTitle>\n <Media>\n <MediaPreview mediaUrl={mediaUrl} mediaContentType={mediaContentType} />\n </Media>\n <Info>\n <Description>\n {descriptionExpanded ? description : truncate(description, TRUNCATE_LENGTH)}\n </Description>\n {descriptionExpanded && (\n <Highlights>\n {highlights &&\n highlights.map(({ title, img_url }) => {\n return (\n <HighlightItem key={title}>\n <HighlightIcon src={img_url} alt={title} />\n <span>{title}</span>\n </HighlightItem>\n );\n })}\n </Highlights>\n )}\n {isDescriptionLong && (\n <SeeMoreButton type=\"link\" onClick={handleSeeMore}>\n {descriptionExpanded ? t('campaign.see_less') : t('campaign.see_more')}\n </SeeMoreButton>\n )}\n </Info>\n </Wrapper>\n );\n};\n\nCampaignAbout.propTypes = {\n campaign: PropTypes.shape({\n description: PropTypes.string,\n highlights: PropTypes.array,\n public_join_video_url: PropTypes.string,\n url_hero_img: PropTypes.string,\n }).isRequired,\n};\n\nexport default CampaignAbout;\n","import moment from 'moment';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { kFormatter } from '../../utils/string';\n\nconst Wrapper = styled.div`\n margin: 12px 0;\n`;\n\nconst MetricValue = styled.div`\n font-family: ${({ theme }) => theme.fonts.light};\n font-size: ${({ large }) => (large ? '24px' : '18px')};\n color: ${({ theme }) => theme.colors.black};\n text-align: ${({ center }) => (center ? 'center' : 'left')};\n line-height: 18px;\n`;\n\nconst MetricLabel = styled.div`\n font-family: ${({ theme, large }) => (large ? theme.fonts.semibold : theme.fonts.regular)};\n font-size: 12px;\n color: ${({ theme }) => theme.colors.black};\n line-height: ${({ large }) => (large ? '14px' : '12px')};\n text-transform: ${({ large }) => (large ? 'uppercase' : 'regular')};\n padding-top: ${({ large }) => (large ? '8px' : '4px')};\n text-align: ${({ center }) => (center ? 'center' : 'left')};\n width: ${({ large }) => (large ? '82px' : '40px')};\n\n ${({ center }) => center && 'margin: auto'};\n`;\n\nconst formatValue = (value, ordinal) => {\n if (!parseInt(value, 10)) return '0';\n if (!ordinal) return kFormatter(value);\n return moment.localeData().ordinal(value);\n};\n\nconst Metric = ({ label, value, large, center, ordinal, ...rest }) => {\n return (\n <Wrapper {...rest}>\n <MetricValue center={center} large={large}>\n {formatValue(value, ordinal)}\n </MetricValue>\n <MetricLabel center={center} large={large}>\n {label}\n </MetricLabel>\n </Wrapper>\n );\n};\n\nMetric.propTypes = {\n center: PropTypes.bool,\n label: PropTypes.string.isRequired,\n large: PropTypes.bool,\n ordinal: PropTypes.bool,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n};\n\nMetric.defaultProps = {\n center: false,\n large: false,\n ordinal: false,\n};\n\nexport default React.memo(Metric);\n","import React from 'react';\n\nimport Metric from './Metric';\nimport ImpactiveLink from '../common/Link';\n// Hide for now\n// import ImpactiveButton from '@web/components/ImpactiveButton';\n\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { kFormatter } from '../../utils/string';\nimport { useTranslation } from 'react-i18next';\n\nimport top1 from '@web/../../assets/images/web/top1.png';\nimport top2 from '@web/../../assets/images/web/top2.png';\nimport top3 from '@web/../../assets/images/web/top3.png';\n\nconst Wrapper = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n background: ${({ theme }) => theme.colors.white};\n box-shadow: 0px 2px 14px rgba(0, 0, 0, 0.07);\n border-radius: 16px;\n padding: 12px;\n height: fit-content;\n`;\n\nconst TeamInfo = styled.div`\n margin: 20px;\n`;\n\n// Hide for now\n// const TeamLeader = styled.div`\n// color: ${({ theme }) => theme.colors.blackL32};\n// font-size: 0.725rem;\n// margin-right: 10px;\n// `;\n\nconst Metrics = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nconst StyledMetric = styled(Metric)`\n margin: 5px 0;\n > div {\n &:first-of-type {\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1.5rem;\n }\n &:last-of-type {\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 0.725rem;\n }\n }\n`;\n\nconst TopSection = styled.div`\n height: 115px;\n border-radius: 8px;\n position: relative;\n display: flex;\n align-items: center;\n padding: 20px;\n background: ${({ theme }) => theme.colors.blue};\n &::before {\n position: absolute;\n content: '';\n top: 0;\n left: 0;\n width: 64px;\n height: 100%;\n border-radius: 8px 0 0 8px;\n background: ${({ theme }) => theme.colors.coral};\n clip-path: polygon(0 0, 100% 0, 55% 100%, 0 100%);\n }\n`;\n\n// Hide for now\n// const LeadersWrapper = styled.div`\n// margin-top: 20px;\n// display: flex;\n// justify-content: space-between;\n// align-items: center;\n// `;\n\nconst PositionImage = styled.img`\n max-width: 75px;\n max-height: 75px;\n object-fit: contain;\n position: relative;\n z-index: 2;\n`;\n\nconst Points = styled.div`\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1.875rem;\n color: ${({ theme }) => theme.colors.white};\n line-height: 1.5rem;\n margin-left: 2rem;\n > div {\n font-size: 1.5rem;\n }\n`;\n\n/**\n * Displays Team with rank overlay flag.\n * campaignId - if provided will add campaign_id query param for TeamDetail link\n * ...rest - covers className in case Team is wrapped by a styled-component\n */\nconst Team = ({ team, campaignId, joinTeam, ...rest }) => {\n const { t } = useTranslation();\n const {\n id,\n name: teamName,\n points,\n messages,\n members,\n // joined,\n // team_leader: { first_name: leaderFirstName, last_name: leaderLastName },\n } = team;\n\n // Construct team link\n let teamLink = `/teams/${id}`;\n teamLink += campaignId ? `?campaign_id=${campaignId}` : '';\n\n const placeImgs = {\n 1: top1,\n 2: top2,\n 3: top3,\n };\n\n return (\n <Wrapper {...rest}>\n <TopSection>\n <PositionImage src={placeImgs[`${rest.place}`]} />\n <Points>\n <span>{kFormatter(points)}</span>\n <div>pts</div>\n </Points>\n </TopSection>\n\n <TeamInfo>\n <ImpactiveLink $isTitle to={teamLink}>\n {teamName}\n </ImpactiveLink>\n {/* Not ready on the backend side\n <LeadersWrapper>\n <TeamLeader>\n {t('teams.team_leader')}: {leaderFirstName} {leaderLastName}\n </TeamLeader>\n {joinTeam && (\n <ImpactiveButton disabled={joined} size=\"medium\" onClick={() => joinTeam(team)}>\n {joined ? t('campaign.joined') : t('campaign.join')}\n </ImpactiveButton>\n )}\n </LeadersWrapper> */}\n <hr />\n <Metrics>\n <StyledMetric\n large\n label={t('teams.member', { count: members })}\n value={kFormatter(members)}\n />\n {/* TODO: CHANGE TO ACTIONS VALUE\n Not ready on the backend side\n <StyledMetric\n large\n label={t('teams.actions_metric_label', { count: points })}\n value={kFormatter(points)}\n /> */}\n <StyledMetric large label={t('teams.messages_metric_label')} value={messages} />\n </Metrics>\n </TeamInfo>\n </Wrapper>\n );\n};\n\nTeam.propTypes = {\n campaignId: PropTypes.number,\n joinTeam: PropTypes.func,\n team: PropTypes.shape({\n actions: PropTypes.number,\n id: PropTypes.number,\n joined: PropTypes.bool,\n members: PropTypes.number,\n messages: PropTypes.number,\n name: PropTypes.string,\n points: PropTypes.number,\n profile_url: PropTypes.string,\n rank: PropTypes.number,\n reports: PropTypes.number,\n team_leader: PropTypes.shape({\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n }),\n }).isRequired,\n};\n\nTeam.defaultProps = {\n campaignId: null,\n};\n\nexport default React.memo(Team);\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport styled from 'styled-components';\nimport Team from 'web/components/CampaignLeaderboard/Team';\nimport Title from 'web/components/common/Title';\nimport { media } from 'web/styles/theme';\n\nconst Wrapper = styled.div`\n ${media.nxl} {\n border-bottom: ${({ theme }) => `1px solid ${theme.colors.borderGray}`};\n }\n`;\n\nconst StyledTitle = styled(Title)`\n margin-top: 24px;\n`;\n\nconst Teams = styled.div`\n margin-top: 12px;\n`;\n\nconst StyledTeam = styled(Team)`\n margin-top: 24px;\n max-width: 350px;\n`;\n\nconst StyledLink = styled(Link)`\n display: block;\n font-family: ${({ theme }) => theme.fonts.boldItalic};\n color: ${({ theme }) => theme.colors.link};\n margin: 16px 0;\n`;\n\nconst TopTeams = ({ campaign, teams }) => {\n const { t } = useTranslation();\n\n return (\n <Wrapper>\n <StyledTitle>\n {t('teams.top_teams')} <small>{t('teams.last_30_days')}</small>\n </StyledTitle>\n <Teams>\n {teams.map((team, index) => (\n <StyledTeam\n place={index + 1}\n key={team.id}\n campaignId={campaign.id}\n team={team}\n vertical\n />\n ))}\n </Teams>\n <StyledLink to={`/leaderboard?campaignId=${campaign.id}`}>\n {t('teams.see_leaderboard')}\n </StyledLink>\n </Wrapper>\n );\n};\n\nTopTeams.propTypes = {\n campaign: PropTypes.shape({\n id: PropTypes.number,\n slug: PropTypes.string,\n }).isRequired,\n teams: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n};\n\nexport default TopTeams;\n","import PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { media } from 'web/styles/theme';\nimport { campaigns } from '../../../services/api';\nimport CampaignAbout from './CampaignAbout';\nimport TopTeams from './TopTeams';\n\nconst Wrapper = styled.div`\n display: flex;\n margin-bottom: 24px;\n\n ${media.xl} {\n border-bottom: ${({ theme }) => `1px solid ${theme.colors.borderGray}`};\n }\n\n ${media.nxl} {\n flex-direction: column;\n }\n`;\n\nconst VerticalDivider = styled.div`\n display: none;\n\n ${media.xl} {\n display: block;\n width: 1px;\n background-color: ${({ theme }) => theme.colors.lightGray};\n margin: 64px 32px;\n }\n`;\n\nconst CampaignInfo = ({ campaign }) => {\n const [topTeams, setTopTeams] = useState([]);\n\n useEffect(() => {\n campaigns\n .getCampaignLeaderboard({ id: campaign.slug, page: 1, per_page: 3 })\n .then(({ data: { data } }) => {\n setTopTeams(data);\n });\n }, [campaign.slug]);\n\n return (\n <Wrapper>\n <CampaignAbout campaign={campaign} />\n <VerticalDivider />\n <TopTeams campaign={campaign} teams={topTeams} />\n </Wrapper>\n );\n};\n\nCampaignInfo.propTypes = {\n campaign: PropTypes.shape({\n slug: PropTypes.string,\n }).isRequired,\n topTeams: PropTypes.arrayOf(PropTypes.shape({})),\n};\n\nexport default CampaignInfo;\n","import { message } from 'antd';\nimport PropTypes from 'prop-types';\nimport React, { useContext, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { users } from '../../../services/api';\nimport { AuthContext } from '../../../utils/context';\nimport AppContainer from '../../AppContainer';\nimport SwitchCampaignAlert from '../../common/SwitchCampaignAlert';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setJoinedCampaigns } from '@web/reducers/oneCampaign';\nimport { replaceDefaultCampaignImage } from '@web/utils/string';\n\n// Sub components\nimport AppHeader from '../../AppHeader';\nimport { SEO } from '../../common';\nimport MaxWidthContainer from '../../common/MaxWidthContainer';\nimport OnboardingModal from '../../common/OnboardingModal';\nimport ActivityList from './ActivityList';\nimport CampaignHeader from './CampaignHeader';\nimport CampaignInfo from './CampaignInfo';\n\nconst CampaignDetails = ({ campaign, loadCampaign, setCampaign }) => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const { token } = useContext(AuthContext);\n const history = useHistory();\n const { search, pathname } = useLocation();\n const query = new URLSearchParams(search);\n const withOnboarding = query.get('withOnboarding');\n const initialActivityId = query.get('activityId');\n\n const { selectedCampaign } = useSelector(state => state.oneCampaign);\n // Get document title for <SEO />\n const title = campaign && campaign.name ? campaign.name : null;\n\n const campaignJoined =\n token && campaign && campaign.user_campaign ? campaign.user_campaign.joined : false;\n\n // Check for join-success param on initial load\n useEffect(() => {\n // check string value\n const justJoined = query.get('join-success') === 'true';\n if (justJoined) {\n message.success(`You've successfully joined the Campaign!`);\n }\n // eslint-disable-next-line\n }, []);\n\n useEffect(() => {\n if (campaign && campaign.id) {\n // Effect to determine if onboarding welcome screen should be shown\n const showOnboardingCampaignId = JSON.parse(localStorage.getItem('showOnboarding'));\n if (token && showOnboardingCampaignId === campaign.id) {\n localStorage.removeItem('showOnboarding');\n }\n }\n }, [campaign, campaignJoined, loadCampaign, token, withOnboarding]); // reload data whenever any of these params change\n\n // MTS - I'd really like to move this to the Header component but it has some shared logic so\n // we'll leave it here for now\n const handlePressJoin = async () => {\n if (!token) {\n // If user is not logged in we redirect and keep the url as a return path in localStorage to redirect back to\n localStorage.setItem('redirectAfterLogin', pathname);\n\n history.push(`/auth/signup/${campaign.slug}`);\n return;\n }\n\n const action = campaignJoined ? users.unfollowCampaign : users.followCampaign;\n\n await action({\n campaign_id: campaign.id,\n campaign_name: campaign.name,\n campaign_slug: campaign.slug,\n }).then(({ data: { data: userCampaign } }) => {\n // Update internal campaign state\n setCampaign({\n ...campaign,\n joined: userCampaign.joined,\n user_campaign: userCampaign,\n });\n });\n\n if (selectedCampaign?.id === campaign.id && campaignJoined) history.go(0);\n\n const userCampaigns = await users\n .getUserCampaigns(1, 5000)\n .then(({ data: { data: campaigns } }) => campaigns);\n\n dispatch(setJoinedCampaigns(userCampaigns));\n };\n\n return (\n <>\n <AppHeader title={t('campaign.title')} extra={campaign && campaign.name} />\n <SEO\n description={campaign && campaign.description}\n image={campaign && replaceDefaultCampaignImage(campaign.url_profile_img)}\n title={title}\n />\n <AppContainer data-testid=\"logged-in-campaign-detail\">\n <MaxWidthContainer>\n {campaign && campaign.id && (\n <>\n <SwitchCampaignAlert campaign={campaign} onSwitchCampaign={setCampaign} />\n <CampaignHeader\n campaign={campaign}\n joined={campaignJoined}\n onJoinClick={handlePressJoin}\n />\n <CampaignInfo campaign={campaign} />\n <ActivityList\n campaign={campaign}\n campaignJoined={campaignJoined}\n joinCampaign={handlePressJoin}\n initialActivityId={initialActivityId}\n />\n </>\n )}\n </MaxWidthContainer>\n </AppContainer>\n\n <OnboardingModal onCloseCallback={loadCampaign} />\n </>\n );\n};\n\nCampaignDetails.propTypes = {\n campaign: PropTypes.object.isRequired,\n loadCampaign: PropTypes.func.isRequired,\n setCampaign: PropTypes.func.isRequired,\n};\n\nexport default CampaignDetails;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst TwitchContainer = styled.div`\n position: relative;\n padding-bottom: 56.25%;\n padding-top: 30px;\n width: 100%;\n min-height: 600px;\n overflow: hidden;\n\n iframe,\n .video-container object,\n .video-container embed {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n }\n`;\n\nfunction TwitchEmbed({ mediaUrl }) {\n const [channel, setChannel] = useState(null);\n const [loaded, setLoaded] = useState(false);\n\n /* eslint-disable no-undef */\n const setupTwitch = () => {\n if (Twitch && !loaded && channel) {\n new Twitch.Embed('twitch-embed', {\n autoplay: false,\n channel: channel,\n // layout: 'video',\n });\n\n setLoaded(true);\n }\n };\n /* eslint-enable no-undef */\n\n useEffect(() => {\n const script = document.createElement('script');\n script.src = 'https://embed.twitch.tv/embed/v1.js';\n script.async = true;\n script.onload = () => setupTwitch();\n\n document.body.appendChild(script);\n });\n\n useEffect(() => {\n setChannel(mediaUrl);\n }, [mediaUrl]);\n\n return (\n <div>\n <TwitchContainer id=\"twitch-embed\"></TwitchContainer>\n {false && channel && (\n <iframe\n src={`https://www.twitch.tv/embed/${channel}/chat?parent=${window.location.hostname}`}\n height=\"500\"\n width=\"350\"\n title=\"twitchEmbed\"\n ></iframe>\n )}\n </div>\n );\n}\n\nTwitchEmbed.propTypes = {\n mediaUrl: PropTypes.string.isRequired,\n};\n\nTwitchEmbed.defaultProps = {};\n\nexport default TwitchEmbed;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst StyledYoutubeEmbed = styled.div`\n text-align: right;\n`;\n\nconst YoutubeContainer = styled.div`\n position: relative;\n padding-bottom: 56.25%;\n padding-top: 30px;\n height: 0;\n overflow: hidden;\n\n iframe,\n .video-container object,\n .video-container embed {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n`;\n\nfunction YoutubeEmbed({ mediaUrl }) {\n const [youtubeId, setYoutubeId] = useState(null);\n\n useEffect(() => {\n setYoutubeId(mediaUrl);\n }, [mediaUrl]);\n\n return (\n <StyledYoutubeEmbed>\n {youtubeId && (\n <YoutubeContainer>\n <iframe\n src={`https://www.youtube.com/embed/${youtubeId}`}\n title=\"YouTube video player\"\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n ></iframe>\n </YoutubeContainer>\n )}\n </StyledYoutubeEmbed>\n );\n}\n\nYoutubeEmbed.propTypes = {\n mediaUrl: PropTypes.string.isRequired,\n};\n\nYoutubeEmbed.defaultProps = {};\n\nexport default YoutubeEmbed;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport styled from 'styled-components';\nimport { media } from '@web/styles/theme';\n\nimport { truncate } from '@web/utils/string';\n\nimport TwitchEmbed from './components/TwitchEmbed';\nimport YoutubeEmbed from './components/YoutubeEmbed';\nimport MediaPreview from '../MediaPreview';\n\nconst StyledAboutUsSection = styled.div`\n padding: 0;\n width: 100%;\n background-color: ${({ background, theme }) => (background ? theme.colors.lightBlue : 'none')};\n transform: skewY(-1.3deg);\n`;\n\nconst Container = styled.div`\n margin: 0 auto;\n transform: skewY(1.3deg);\n padding: 50px 25px;\n margin: 0 auto;\n\n ${media.ns} {\n padding: 120px 0;\n width: 70%;\n }\n\n ${media.lg} {\n padding: 180px 0;\n width: 80%;\n display: grid;\n grid-template-columns: ${({ type }) => (type !== 'twitch' ? '1fr 1fr' : '2fr 1fr')};\n }\n`;\n\nconst MobileSectionTitle = styled.h3`\n font-size: 3em;\n color: ${({ theme }) => theme.colors.blackL25};\n font-weight: 600;\n\n ${media.lg} {\n display: none;\n }\n`;\n\nconst SectionTitle = styled.h3`\n display: none;\n\n ${media.lg} {\n display: block;\n font-size: 3em;\n line-height: 76.8px;\n color: ${({ theme }) => theme.colors.blackL25};\n font-weight: 600;\n margin-bottom: 20px;\n }\n\n ${media.xl} {\n margin-bottom: 40px;\n }\n`;\n\nconst AboutUsMedia = styled.div`\n width: 100%;\n border-radius: 20px;\n margin: 0 auto;\n max-width: ${({ type }) => (type !== 'twitch' ? '800px' : 'none')};\n`;\n\nconst AboutUsDetails = styled.div`\n width: 100%;\n margin: 0 auto;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n ${media.lg} {\n padding-left: 40px;\n }\n`;\n\nconst SectionDescription = styled.p`\n font-size: 1.2em;\n padding-top: 40px;\n max-width: 600px;\n\n ${media.lg} {\n padding-top: 0;\n }\n\n ${media.xl} {\n margin-bottom: 40px;\n }\n`;\n\nconst SeeMoreLink = styled.a`\n font-weight: bold;\n font-size: 1.2em;\n color: ${({ theme }) => theme.colors.salmon};\n opacity: 0.85;\n`;\n\nconst MAX_LENGTH = 500;\n\nconst AboutUsSection = ({ background, description, mediaContentType, mediaUrl, title }) => {\n const { t } = useTranslation();\n const [seeMore, setSeeMore] = React.useState(false);\n const [aboutDescription, setAboutDescription] = React.useState(truncate(description, MAX_LENGTH));\n const needSeeMoreButton = description?.length > MAX_LENGTH;\n\n const toggleSeeMore = () => {\n setAboutDescription(seeMore ? truncate(description, MAX_LENGTH) : description);\n setSeeMore(!seeMore);\n };\n\n return (\n <StyledAboutUsSection background={background}>\n <Container type={mediaContentType}>\n <MobileSectionTitle>{title}</MobileSectionTitle>\n <AboutUsMedia type={mediaContentType}>\n {!!mediaUrl && ['image', 'video'].includes(mediaContentType) && (\n <MediaPreview mediaUrl={mediaUrl} mediaContentType={mediaContentType} />\n )}\n {!!mediaUrl && mediaContentType === 'twitch' && <TwitchEmbed mediaUrl={mediaUrl} />}\n {!!mediaUrl && mediaContentType === 'youtube' && <YoutubeEmbed mediaUrl={mediaUrl} />}\n </AboutUsMedia>\n <AboutUsDetails>\n <SectionTitle>{title}</SectionTitle>\n <SectionDescription>{aboutDescription}</SectionDescription>\n\n {needSeeMoreButton && (\n <SeeMoreLink onClick={toggleSeeMore}>\n {seeMore ? t('campaign.see_less') : t('campaign.see_more')}\n </SeeMoreLink>\n )}\n </AboutUsDetails>\n </Container>\n </StyledAboutUsSection>\n );\n};\n\nAboutUsSection.propTypes = {\n background: PropTypes.bool.isRequired,\n description: PropTypes.string.isRequired,\n mediaContentType: PropTypes.string.isRequired,\n mediaUrl: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n};\n\nexport default AboutUsSection;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Button } from 'antd';\nimport { CheckOutlined } from '@ant-design/icons';\n\nconst StyledJoinButton = styled(Button)`\n &&& {\n display: inline;\n max-width: 387px;\n width: 100%;\n height: 76px;\n background-color: ${({ theme }) => theme.colors.salmon};\n border-radius: 12px;\n border: none;\n margin-left: 0;\n\n color: ${({ theme }) => theme.colors.white};\n font-weight: 900;\n font-size: 24px;\n line-height: 29px;\n text-align: center;\n letter-spacing: 1px;\n text-transform: uppercase;\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n }\n`;\n\nconst JoinButton = ({ children, joined, onClick, ...rest }) => {\n return (\n <StyledJoinButton\n data-testid=\"join-button\"\n icon={joined ? <CheckOutlined /> : null}\n onClick={onClick}\n type=\"primary\"\n {...rest}\n >\n {children}\n </StyledJoinButton>\n );\n};\n\nJoinButton.propTypes = {\n children: PropTypes.string.isRequired,\n joined: PropTypes.bool,\n onClick: PropTypes.func.isRequired,\n};\n\nexport default JoinButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styled from 'styled-components';\nimport { media } from '@web/styles/theme';\n\nconst StyledCampaignImage = styled.div`\n width: 160px;\n height: 160px;\n margin-bottom: 20px;\n border-radius: 215px;\n border: 6px solid ${({ theme }) => theme.colors.white};\n overflow: hidden;\n\n ${media.lg} {\n width: 215px;\n height: 215px;\n margin-bottom: 40px;\n }\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n`;\n\nconst CampaignImage = ({ alt, src }) => {\n return (\n <StyledCampaignImage>\n <img alt={alt} src={src} />\n </StyledCampaignImage>\n );\n};\n\nCampaignImage.propTypes = {\n alt: PropTypes.string.isRequired,\n src: PropTypes.string.isRequired,\n};\n\nexport default CampaignImage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\n\nimport styled from 'styled-components';\nimport { media } from '@web/styles/theme';\n\nimport JoinButton from '@web/components/common/JoinButton';\nimport clearLogo from '@web/images/app-logo-secondary.png';\nimport { replaceDefaultCampaignImage } from '@web/utils/string';\n\nimport CampaignImage from './components/CampaignImage';\n\nconst StyledCampaignHero = styled.div`\n color: ${({ theme }) => theme.colors.black};\n padding: 40px 30px 24px;\n position: relative;\n width: 100%;\n height: 100%;\n min-height: 850px;\n\n ${media.lg} {\n padding: 40px 0px 49px;\n min-height: 1024px;\n height: 90%;\n\n :before {\n background-position: center;\n }\n }\n\n :before {\n content: '';\n background-image: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.4) 100%),\n url(${props => props.backgroundImage});\n background-position: left 43% top;\n background-size: cover;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: -1;\n }\n`;\n\nconst CampaignContainer = styled.div`\n width: 100%;\n\n ${media.lg} {\n width: 80%;\n padding: 0 10%;\n }\n`;\n\nconst LogoContainer = styled.div`\n width: 190px;\n height: 42px;\n border: 4px solid ${({ theme }) => theme.colors.white};\n padding: 4px 10px 6px 16px;\n margin-bottom: 30vh;\n\n img {\n width: 150px;\n height: 20px;\n }\n\n ${media.lg} {\n margin-bottom: 80px;\n }\n\n a {\n width: 100%;\n height: 100%;\n }\n`;\n\nconst CampaignTitle = styled.h1`\n max-width: 600px;\n margin-bottom: 20px;\n font-weight: bold;\n font-size: 3rem;\n\n color: ${({ theme }) => theme.colors.white};\n\n ${media.lg} {\n line-height: 90px;\n font-size: 5rem;\n margin-bottom: 30px;\n }\n`;\n\nconst CampaignSubtitle = styled.h2`\n margin-bottom: 40px;\n max-width: 600px;\n color: ${({ theme }) => theme.colors.white};\n font-size: 2rem;\n\n ${media.lg} {\n font-size: 3rem;\n margin-bottom: 40px;\n }\n`;\n\nconst CampaignHero = ({ campaign, joined, handleGetStarted }) => {\n const { t } = useTranslation();\n\n return (\n <StyledCampaignHero backgroundImage={campaign.url_hero_img}>\n <CampaignContainer>\n <LogoContainer>\n <Link to=\"/frontline\">\n <img src={clearLogo} alt=\"site-logo\" />\n </Link>\n </LogoContainer>\n\n <CampaignImage\n alt={campaign.name}\n src={replaceDefaultCampaignImage(campaign.url_profile_img)}\n />\n\n <CampaignTitle>{campaign.name}</CampaignTitle>\n <CampaignSubtitle>{campaign.slogan}</CampaignSubtitle>\n\n <JoinButton joined={joined} onClick={handleGetStarted}>\n {joined ? t('campaign.joined') : t('campaign.get_started')}\n </JoinButton>\n </CampaignContainer>\n </StyledCampaignHero>\n );\n};\n\nCampaignHero.propTypes = {\n campaign: PropTypes.object.isRequired,\n handleGetStarted: PropTypes.func.isRequired,\n joined: PropTypes.bool.isRequired,\n};\n\nexport default CampaignHero;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styled from 'styled-components';\nimport { media } from '@web/styles/theme';\nimport { colors } from '@web/styles/theme';\nimport { Button } from 'antd';\n\nconst StyledCampaignActionCTA = styled(Button)`\n &&& {\n float: right;\n width: auto;\n min-width: 130px;\n height: 42px;\n background: #23293e;\n border-radius: 4px;\n font-size: 0.8rem;\n\n font-weight: 900;\n line-height: 150%;\n text-align: center;\n color: ${colors.white};\n\n ${({ $completed, disabled }) =>\n $completed &&\n !disabled &&\n `\n background-color: #949494;\n border-color: #949494;\n\n &:hover {\n background-color: #a9a9a9;\n border-color: #a9a9a9;\n }\n\n &:active {\n background-color: #808080;\n border-color: #808080;\n }\n `}\n\n ${media.ns} {\n font-size: 0.9rem;\n }\n }\n`;\n\nconst CampaignActionCTA = ({ activity, children, completed, onClickHandler }) => {\n const closed = activity.aasm_state === 'closed';\n\n /**\n * Call to action buttons are rendered conditionally based on activityType\n * - ShareActivity and WebActivity are custom components and are handled directly\n * - Other userActivities are simple links to corresponding handler page\n * - Campaign activities (no userActivityId) will act as 'join campaign' button\n **/\n return (\n <StyledCampaignActionCTA\n type=\"primary\"\n disabled={closed}\n onClick={onClickHandler}\n $completed={completed}\n >\n {children}\n </StyledCampaignActionCTA>\n );\n};\n\nCampaignActionCTA.propTypes = {\n activity: PropTypes.object.isRequired,\n children: PropTypes.string.isRequired,\n completed: PropTypes.bool,\n onClickHandler: PropTypes.func,\n};\n\nCampaignActionCTA.defaultProps = {\n completed: false,\n};\n\nexport default CampaignActionCTA;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\n\nimport { track } from '@web/services/analytics';\nimport { user } from '@web/services/api';\nimport { getButtonText, mobileButtonTextToWeb } from '@web/utils/other';\nimport { isRegistrationActivity } from '@admin/components/ActivitiesPage/utils';\n\nimport CampaignActionCTA from './CampaignActionCTA';\n\nconst CampaignActionLink = ({ activity, campaign, completed, joinCampaign, userActivityId }) => {\n const { t } = useTranslation();\n const closed = activity.aasm_state === 'closed';\n const { id: activityId, type: activityType, title: activityTitle } = activity;\n const { id: campaignId, name: campaignName } = campaign;\n\n function getStartLink() {\n if (isRegistrationActivity(activityType)) {\n return `/campaigns/${campaign.slug}/activities/${activityId}`;\n }\n\n if (!userActivityId) return;\n\n const routes = {\n // ShareActivity and WebActivity have their own handlers. Keeping the generic link for other activity types\n // Not true anymore since we're just showing previews of everything\n default: `/activities/${userActivityId}`,\n // IdVotersScreen -> takes user to the search screen, pick the person, fill out outreach report for the voter in VoterInfoScreen\n IdVotersActivity: {\n pathname: '/voters',\n state: { activityId, campaignId, userActivityId },\n },\n // Takes user to testimonial page where they can upload photo/video and add a note.\n TestimonialActivity: `/activities/${userActivityId}/testimonial`,\n // Opens up contacts page with select boxes, pick a template, edit the template, open 1 by 1 or bulk using mailto, manually confirm alert)\n // NOTE: on webapp we are emailing, not texting, so endpoint below will differ\n TextAFriendActivity: `/activities/${userActivityId}/email_friends`,\n // ListMessage - p2p texting action, you get the list of people, you hit send manually until all messages are sent.\n TextAListActivity: `/activities/${userActivityId}/p2p`,\n };\n\n return routes[activityType] || routes.default;\n }\n\n const trackClick = async () => {\n track('START_ACTIVITY', {\n activity_id: activityId,\n activity_title: activityTitle,\n activity_type: activityType,\n campaign_id: campaignId,\n campaign_name: campaignName,\n });\n\n // Only track user activity when one exists\n if (userActivityId) {\n user.userActivityTrackClick(userActivityId);\n }\n };\n\n let buttonCopy = t('button.start');\n\n if (isRegistrationActivity(activityType)) {\n buttonCopy = completed ? getButtonText(activityType, completed) : t('button.start');\n } else {\n buttonCopy = completed\n ? getButtonText(activityType, completed)\n : mobileButtonTextToWeb(activity.button_text);\n buttonCopy = closed ? t('button.closed') : buttonCopy;\n buttonCopy = !buttonCopy ? t('button.start') : buttonCopy;\n }\n\n if (!userActivityId && !isRegistrationActivity(activityType)) {\n return (\n <CampaignActionCTA activity={activity} onClickHandler={joinCampaign}>\n {t('campaign.activity.join_to_take_action')}\n </CampaignActionCTA>\n );\n }\n\n return (\n <Link\n data-testid=\"activity-start-button\"\n disabled={closed}\n onClick={trackClick}\n to={getStartLink()}\n >\n <CampaignActionCTA activity={activity} completed={completed}>\n {buttonCopy}\n </CampaignActionCTA>\n </Link>\n );\n};\n\nCampaignActionLink.propTypes = {\n activity: PropTypes.object.isRequired,\n campaign: PropTypes.object.isRequired,\n completed: PropTypes.bool.isRequired,\n joinCampaign: PropTypes.func.isRequired,\n userActivityId: PropTypes.number.isRequired,\n};\n\nexport default CampaignActionLink;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport dayjs from 'dayjs';\n\nimport styled from 'styled-components';\nimport { media } from '@web/styles/theme';\n\nimport CampaignActionLink from './components/CampaignActionLink';\nimport placeholder from './assets/actionPlaceholder.png';\n\nconst StyledCampaignActionCard = styled.div`\n width: 100%;\n height: 100%;\n background: ${({ theme }) => theme.colors.white};\n padding: 15px 15px 25px;\n box-shadow: 0px 14px 44px rgba(89, 99, 134, 0.11);\n border-radius: 16px;\n display: flex;\n flex-direction: column;\n overflow-x: auto;\n`;\n\nconst ActionMedia = styled.div`\n width: 100%;\n border-radius: 16px;\n`;\n\nconst ActionImage = styled.img`\n border-radius: 16px;\n border-radius: 16px;\n width: 100%;\n height: fit-content;\n\n width: 100%;\n height: 60vw;\n object-fit: cover;\n\n ${media.lg} {\n height: 30vh;\n }\n`;\n\nconst ActionDetails = styled.div`\n padding: 15px 15px 0;\n height: fit-content;\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n`;\n\nconst ActionTitle = styled.p`\n font-weight: 600;\n font-size: 1.2em;\n line-height: 160%;\n color: ${({ theme }) => theme.colors.blackL25};\n margin: 15px 0px;\n\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nconst ActionDescription = styled.p`\n margin-bottom: 40px;\n color: #717171;\n flex-grow: 1;\n\n -webkit-box-orient: vertical;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: normal;\n`;\n\nconst ActionFooter = styled.div`\n margin-top: auto;\n display: grid;\n grid-template-columns: 1fr 140px;\n gap: 10px;\n`;\n\nconst ActionDate = styled.p`\n float: left;\n color: ${({ theme }) => theme.colors.mediumGray};\n opacity: 0.72;\n margin: 0;\n line-height: 42px;\n font-size: 0.8rem;\n`;\n\nconst CampaignActionCard = ({ campaign, item, joinCampaign }) => {\n const { _type: type, completed } = item;\n const isUserActivity = type === 'user_activities';\n const userActivityId = isUserActivity ? item.id : null;\n const activity = isUserActivity ? item.activity : item;\n const closed = activity.aasm_state === 'closed';\n const publishedAt = activity.published_at\n ? dayjs(activity.published_at).format('MM[.]DD[.]YYYY')\n : '';\n\n if (activity.type === 'DialerActivity') {\n return null;\n }\n\n return (\n <StyledCampaignActionCard style={{ opacity: closed ? 0.5 : 1.0 }}>\n <ActionMedia>\n <ActionImage\n src={activity.media_url ? activity.media_url : placeholder}\n alt={activity.title}\n />\n </ActionMedia>\n\n <ActionDetails>\n <ActionTitle>{activity.title}</ActionTitle>\n <ActionDescription>{activity.description}</ActionDescription>\n <ActionFooter>\n <ActionDate>{publishedAt}</ActionDate>\n <CampaignActionLink\n activity={activity}\n campaign={campaign}\n completed={completed}\n joinCampaign={joinCampaign}\n userActivityId={userActivityId}\n />\n </ActionFooter>\n </ActionDetails>\n </StyledCampaignActionCard>\n );\n};\n\nCampaignActionCard.propTypes = {\n campaign: PropTypes.object.isRequired,\n item: PropTypes.object.isRequired,\n joinCampaign: PropTypes.func.isRequired,\n};\n\nexport default CampaignActionCard;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport styled from 'styled-components';\nimport { media } from '@web/styles/theme';\n\nimport { usePaginatedApi, toObject } from '@web/hooks/usePaginatedApi';\nimport { campaigns, user } from '@web/services/api';\n\nimport CampaignActionCard from '../CampaignActionCard';\n\nconst StyledCampaignActions = styled.div`\n background: ${({ theme }) => theme.colors.white};\n width: 100%;\n padding: 0;\n`;\n\nconst Container = styled.div`\n padding: 50px 25px 140px;\n margin: 0 auto;\n\n ${media.lg} {\n padding: 0 25px;\n }\n\n ${media.xl} {\n padding: 0 0 210px;\n width: 80%;\n }\n\n ${media.xxxl} {\n width: 60%;\n }\n`;\n\nconst SectionTitle = styled.h3`\n font-size: 3em;\n color: ${({ theme }) => theme.colors.blackL25};\n font-weight: 600;\n margin-bottom: 30px;\n\n ${media.lg} {\n font-size: 4em;\n margin-bottom: 60px;\n }\n`;\n\nconst CampaignActionsHeader = styled.div`\n display: block;\n\n ${media.lg} {\n display: grid;\n grid-template-columns: 1fr 1fr;\n }\n`;\n\nconst CampaignActionsList = styled.div`\n display: grid;\n grid-template-columns: 1fr;\n grid-auto-rows: 1fr;\n grid-gap: 40px;\n margin-bottom: 40px;\n\n ${media.lg} {\n margin-bottom: 60px;\n grid-template-columns: 1fr 1fr;\n }\n\n ${media.xxl} {\n grid-template-columns: 1fr 1fr 1fr;\n }\n`;\n\nconst SeeMoreLink = styled.a`\n font-weight: bold;\n font-size: 1.2em;\n color: ${({ theme }) => theme.colors.salmon};\n opacity: 0.85;\n`;\n\nconst CampaignActions = ({ campaign, campaignJoined, joinCampaign }) => {\n const { t } = useTranslation();\n\n // Depending on whether or not campaign is joined we use different endpoint with different parameters\n const apiEndpoint = campaignJoined ? user.getUserActivities : campaigns.getCampaignActivities;\n const resourceId = campaignJoined ? null : campaign.id;\n const params = campaignJoined ? { campaign_id: campaign.id } : {};\n params.perPage = 3;\n\n const {\n hasMore,\n items,\n loadMore: loadMoreActivities,\n resetPagination,\n } = toObject(usePaginatedApi(apiEndpoint, resourceId, params));\n\n // MTS - This is temporary code to make sure we don't render campaign activities in \"draft\" state.\n // It is going to be fixed on the backend at some point.\n const filteredItems = items.filter(\n item => !(item?.activity?.aasm_state && item?.activity?.aasm_state === 'draft'),\n );\n\n const onlyActionItems = filteredItems.filter(\n item => item?.activity?.type !== 'UserBroadcastActivity',\n );\n\n useEffect(() => {\n resetPagination({ refetch: true });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [campaignJoined]);\n\n return (\n <StyledCampaignActions>\n <Container>\n <CampaignActionsHeader>\n <SectionTitle>{t('campaign.actions')}</SectionTitle>\n </CampaignActionsHeader>\n <CampaignActionsList>\n {onlyActionItems.map(item => (\n <CampaignActionCard\n campaign={campaign}\n item={item}\n joinCampaign={joinCampaign}\n key={item.id}\n />\n ))}\n </CampaignActionsList>\n\n {hasMore && (\n <SeeMoreLink onClick={loadMoreActivities}>{t('campaign.see_more')}</SeeMoreLink>\n )}\n </Container>\n </StyledCampaignActions>\n );\n};\n\nCampaignActions.propTypes = {\n campaign: PropTypes.object.isRequired,\n campaignJoined: PropTypes.bool.isRequired,\n joinCampaign: PropTypes.func.isRequired,\n};\n\nexport default CampaignActions;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport styled from 'styled-components';\nimport { media } from '@web/styles/theme';\n\nimport JoinButton from '@web/components/common/JoinButton';\n\nimport backgroundImage from './assets/bluesquare.png';\n\nconst StyledCampaignTakeAction = styled.div`\n padding: 0;\n width: 100%;\n background-color: ${({ theme }) => theme.colors.lightBlue};\n`;\n\nconst Container = styled.div`\n padding: 80px 25px;\n\n ${media.xxxl} {\n padding: 0;\n margin: 0 auto;\n display: grid;\n grid-template-columns: 2fr 3fr;\n }\n`;\n\nconst SectionTitle = styled.h3`\n font-size: 2em;\n color: ${({ theme }) => theme.colors.blackL25};\n font-weight: 600;\n margin-bottom: 24px;\n\n ${media.xxxl} {\n font-size: 4em;\n }\n`;\n\nconst AboutUsMedia = styled.div`\n display: none;\n\n ${media.xxxl} {\n display: block;\n position: relative;\n\n img {\n display: block;\n position: absolute;\n right: -30%;\n top: -30%;\n width: 920px;\n height: 920px;\n }\n }\n`;\n\nconst AboutUsDetails = styled.div`\n ${media.lg} {\n text-align: center;\n }\n\n ${media.xxxl} {\n padding: 180px 0;\n }\n`;\n\nconst SectionDescription = styled.p`\n font-size: 1.4em;\n margin-bottom: 60px;\n color: rgba(89, 99, 134, 0.6);\n`;\n\nconst CenteredButton = styled.div`\n text-align: center;\n`;\n\nconst CampaignTakeAction = ({ joined, handleGetStarted }) => {\n const { t } = useTranslation();\n\n return (\n <StyledCampaignTakeAction>\n <Container>\n <AboutUsMedia>\n <img src={backgroundImage} alt=\"blue-square\" />\n </AboutUsMedia>\n <AboutUsDetails>\n <SectionTitle>{t('campaign.ready_to_take_action')}</SectionTitle>\n <SectionDescription>{t('campaign.discover_new_actions')}</SectionDescription>\n <CenteredButton>\n <JoinButton joined={joined} onClick={handleGetStarted}>\n {joined ? t('campaign.joined') : t('campaign.join_our_campaign')}\n </JoinButton>\n </CenteredButton>\n </AboutUsDetails>\n </Container>\n </StyledCampaignTakeAction>\n );\n};\n\nCampaignTakeAction.propTypes = {\n handleGetStarted: PropTypes.func.isRequired,\n joined: PropTypes.bool.isRequired,\n};\n\nexport default CampaignTakeAction;\n","import PropTypes from 'prop-types';\nimport React, { useContext, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { users } from '@web/services/api';\nimport { AuthContext } from '@web/utils/context';\nimport { useDocumentTitle } from '@web/hooks/useDocumentTitle';\nimport { SEO } from '@web/components/common';\nimport { replaceDefaultCampaignImage } from '@web/utils/string';\nimport { setJoinedCampaigns } from '@web/reducers/oneCampaign';\nimport { useDispatch, useSelector } from 'react-redux';\nimport queryString from 'query-string';\n\nimport styled from 'styled-components';\nimport { media } from '@web/styles/theme';\n\nimport AboutUsSection from '@web/components/common/AboutUsSection';\n\nimport CampaignHero from './components/CampaignHero';\nimport CampaignActions from './components/CampaignActions';\nimport CampaignTakeAction from './components/CampaignTakeAction';\n\nconst CampaignContainer = styled.div`\n width: 100%;\n height: 100%;\n`;\n\nconst Footer = styled.div`\n display: none;\n\n ${media.lg} {\n display: block;\n height: 320px;\n background: ${({ theme }) => theme.colors.white};\n }\n`;\n\nconst PublicCampaignDetails = ({ campaign, setCampaign }) => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const { token } = useContext(AuthContext);\n const history = useHistory();\n const { pathname, search } = useLocation();\n const { redirect } = queryString.parse(search);\n\n useDocumentTitle(campaign.name);\n\n const { selectedCampaign } = useSelector(state => state.oneCampaign);\n // Get document title for <SEO />\n const title = campaign?.name || null;\n const campaignJoined = (token && campaign?.user_campaign?.joined) || false;\n\n useEffect(() => {\n // redirect unauthenticated users to signup page\n // if they try to access a campaign page from join link with empty redirect query param or with redirect=true\n if (campaign?.slug && (!redirect || redirect !== 'false') && !token) {\n localStorage.setItem('redirectAfterLogin', pathname);\n history.push(`/auth/signup/${campaign.slug}`);\n }\n }, [token, redirect, history, pathname, campaign.slug]);\n\n // MTS - I'd really like to move this to the Header component but it has some shared logic so\n // we'll leave it here for now\n const joinCampaign = async () => {\n if (!token) {\n // If user is not logged in we redirect and keep the url as a return path in localStorage to redirect back to\n localStorage.setItem('redirectAfterLogin', pathname);\n\n history.push(`/auth/signup/${campaign.slug}`);\n return;\n }\n\n const action = campaignJoined ? users.unfollowCampaign : users.followCampaign;\n\n await action({\n campaign_id: campaign.id,\n campaign_name: campaign.name,\n campaign_slug: campaign.slug,\n }).then(({ data: { data: userCampaign } }) => {\n // Update internal campaign state\n setCampaign({\n ...campaign,\n joined: userCampaign.joined,\n user_campaign: userCampaign,\n });\n });\n\n if (selectedCampaign.id === campaign.id && campaignJoined) history.go(0);\n\n const userCampaigns = await users\n .getUserCampaigns(1, 5000)\n .then(({ data: { data: campaigns } }) => campaigns);\n\n dispatch(setJoinedCampaigns(userCampaigns));\n };\n\n const mediaUrl = campaign.public_join_video_url || campaign.url_hero_img;\n const mediaContentType = campaign.public_join_video_url ? 'video' : 'image';\n\n if (!campaign) {\n return null;\n }\n\n return (\n <CampaignContainer>\n <SEO\n description={campaign && campaign.description}\n image={campaign && replaceDefaultCampaignImage(campaign.url_profile_img)}\n title={title}\n />\n\n <CampaignHero campaign={campaign} joined={campaignJoined} handleGetStarted={joinCampaign} />\n\n <AboutUsSection\n mediaUrl={mediaUrl}\n mediaContentType={mediaContentType}\n title={t('campaign.about_us')}\n description={campaign.description}\n />\n\n <CampaignActions\n campaign={campaign}\n campaignJoined={campaignJoined}\n joinCampaign={joinCampaign}\n />\n\n <CampaignTakeAction\n campaign={campaign}\n joined={campaignJoined}\n handleGetStarted={joinCampaign}\n />\n\n <Footer />\n </CampaignContainer>\n );\n};\n\nPublicCampaignDetails.propTypes = {\n campaign: PropTypes.object.isRequired,\n setCampaign: PropTypes.func.isRequired,\n};\n\nPublicCampaignDetails.defaultProps = {\n campaign: {\n total_actions_completed: 0,\n total_actions_performed: 0,\n url_hero_img: null,\n url_profile_img: null,\n },\n};\n\nexport default PublicCampaignDetails;\n","import React, { useState, useEffect, useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useParams } from 'react-router-dom';\nimport { AuthContext } from 'web/utils/context';\nimport { getLocalizedOnboardingData } from 'web/utils/other';\n\nimport { campaigns } from '../../services/api';\nimport AppContainer from '../AppContainer';\nimport AppHeader from '../AppHeader';\nimport Loading from '../common/Loading';\nimport CampaignDetails from './components/CampaignDetails';\nimport PublicCampaignDetails from './PublicCampaignDetails';\n\nconst CampaignDetail = () => {\n const { t } = useTranslation();\n const { campaignId } = useParams(); // can be either campaign `id` or `slug`\n const { token } = useContext(AuthContext);\n\n const [campaign, setCampaign] = useState(null);\n const [loading, setLoading] = useState(true);\n\n // populate campaign details from the campaign object here\n const loadCampaign = React.useCallback(() => {\n // if user is not logged in we use public campaign endpoint\n const getCampaign = token ? campaigns.getCampaign : campaigns.getPublicCampaign;\n\n getCampaign({ id: campaignId }).then(({ data: { data } }) => {\n const localizedData = getLocalizedOnboardingData(data);\n\n setCampaign(localizedData);\n setLoading(false);\n });\n }, [token, campaignId, setCampaign]);\n\n useEffect(() => {\n // initially load Campaign info based on provided id or slug\n loadCampaign();\n }, [loadCampaign, token]);\n\n if (loading) {\n return (\n <>\n <AppHeader title={t('campaign.title')} extra={campaign && campaign.name} />\n <AppContainer>\n <div className=\"flex-row justify-content-center mt-4\">\n <Loading />\n </div>\n </AppContainer>\n </>\n );\n }\n\n // If we are logged out show new campaign details public page\n if (!token) {\n return (\n <PublicCampaignDetails\n campaign={campaign}\n loadCampaign={loadCampaign}\n setCampaign={setCampaign}\n />\n );\n }\n\n // When logged in use regular campaign page\n return (\n <CampaignDetails campaign={campaign} loadCampaign={loadCampaign} setCampaign={setCampaign} />\n );\n};\n\nCampaignDetail.propTypes = {};\n\nexport default CampaignDetail;\n","import { Table } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport { fmtNumber } from '../../utils/string';\nimport ImpactiveLink from '@web/components/common/Link';\n\nconst StyledTable = styled(Table)`\n &&& {\n margin-top: 1rem;\n .ant-table {\n background-color: transparent;\n color: ${({ theme }) => theme.colors.black};\n table {\n border-spacing: 0 12px;\n }\n }\n\n ${'' /* Colors and fonts */}\n tr th {\n background-color: ${({ theme }) => theme.fonts.white};\n font-family: ${({ theme }) => theme.fonts.bold};\n text-transform: uppercase;\n }\n tr {\n background-color: ${({ theme }) => theme.colors.white};\n box-shadow: 8px 8px 32px rgba(0, 41, 64, 0.06);\n }\n\n td {\n &:first-child {\n border-top-left-radius: 12px;\n border-bottom-left-radius: 12px;\n }\n &:last-child {\n border-top-right-radius: 12px;\n border-bottom-right-radius: 12px;\n }\n }\n\n tr:hover {\n td {\n background-color: ${({ theme }) => theme.colors.white};\n }\n }\n\n td:nth-child(1),\n td:nth-child(2) {\n font-family: ${({ theme }) => theme.fonts.bold};\n }\n ${'' /* Remove borders */}\n tr td, tr th {\n border-bottom: none !important;\n }\n ${'' /* Reduce default padding */}\n .ant-table-cell {\n padding: 1.5rem;\n }\n .ant-table-column-sorters {\n padding: 8px;\n }\n .ant-table-column-sorter-full {\n margin-top: -0.5rem;\n }\n ${'' /* Remove sort overlay */}\n td.ant-table-column-sort {\n background: transparent;\n }\n .ant-table-thead {\n > tr {\n box-shadow: none;\n th {\n background: ${({ theme }) => theme.colors.snow};\n padding: 0 12px;\n }\n }\n }\n }\n`;\n\nconst StyledLink = styled(ImpactiveLink)`\n font-family: ${({ theme }) => theme.fonts.bold};\n`;\n\nconst Cell = styled.div`\n display: flex;\n align-items: center;\n justify-content: ${({ $start }) => ($start ? 'flex-start' : 'center')};\n font-family: ${({ theme, $bold }) => ($bold ? theme.fonts.bold : theme.fonts.regular)};\n font-size: 1rem;\n color: ${({ theme, $bold }) => ($bold ? theme.colors.blackL72 : theme.colors.black)};\n`;\n\nconst HeaderCell = styled.div`\n display: flex;\n align-items: center;\n justify-content: ${({ $start }) => ($start ? 'flex-start' : 'center')};\n font-size: 0.75rem;\n`;\n\nconst TableSection = ({ teams, campaignId }) => {\n const { t } = useTranslation();\n\n const formattedTeams = teams.map(team => {\n const { points, actions, messages, members } = team;\n return {\n formattedActions: actions ? fmtNumber(actions) : 0,\n formattedMembers: members ? fmtNumber(members) : 0,\n formattedMessages: messages ? fmtNumber(messages) : 0,\n formattedPoints: points ? fmtNumber(points) : 0,\n ...team,\n };\n });\n\n const tableColumns = [\n {\n dataIndex: 'rank',\n key: 'rank',\n render: rank => <Cell $bold>{rank ? rank : '-'}</Cell>,\n sortDirections: ['ascend', 'descend', 'ascend'],\n sorter: (i, j) => i.rank - j.rank,\n title: () => <HeaderCell>{t('campaign.leaderboard.cols.rank')}</HeaderCell>,\n width: 10,\n },\n {\n dataIndex: 'formattedPoints',\n key: 'formattedPoints',\n render: points => <Cell $bold>{points}</Cell>,\n title: () => <HeaderCell>{t('campaign.leaderboard.cols.points')}</HeaderCell>,\n },\n {\n dataIndex: 'name',\n key: 'name',\n render: (name, row) => {\n return (\n <Cell $start>\n <StyledLink to={`/teams/${row.id}?campaign_id=${campaignId}`}>{name}</StyledLink>\n </Cell>\n );\n },\n title: () => <HeaderCell $start>{t('campaign.leaderboard.cols.team_name')}</HeaderCell>,\n },\n\n {\n dataIndex: 'formattedActions',\n key: 'formattedActions',\n render: actions => <Cell>{actions}</Cell>,\n responsive: ['md'],\n title: () => <HeaderCell>{t('campaign.leaderboard.cols.actions')}</HeaderCell>,\n },\n {\n dataIndex: 'formattedMembers',\n key: 'formattedMembers',\n render: members => <Cell>{members}</Cell>,\n responsive: ['md'],\n title: () => <HeaderCell>{t('campaign.leaderboard.cols.members')}</HeaderCell>,\n },\n {\n dataIndex: 'formattedMessages',\n key: 'formattedMessages',\n render: messages => <Cell>{messages}</Cell>,\n responsive: ['md'],\n title: () => <HeaderCell>{t('campaign.leaderboard.cols.messages')}</HeaderCell>,\n },\n ];\n\n return (\n <StyledTable\n columns={tableColumns}\n dataSource={formattedTeams}\n rowKey=\"id\"\n pagination={false}\n />\n );\n};\n\nTableSection.propTypes = {\n campaignId: PropTypes.number.isRequired,\n teams: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n};\n\nexport default TableSection;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport InfiniteScroll from 'react-infinite-scroller';\nimport styled from 'styled-components';\nimport { useHistory } from 'react-router-dom';\n\nimport { useDocumentTitle } from '@web/hooks/useDocumentTitle';\nimport { toObject, usePaginatedApi } from '@web/hooks/usePaginatedApi';\nimport { useQuery } from '@web/hooks';\nimport { getLocalizedOnboardingData } from '@web/utils/other';\nimport { campaigns, teams as teamsApi } from '@web/services/api';\n\nimport AppContainer from '../AppContainer';\nimport AppHeader from '../AppHeader';\nimport Loading from '../common/Loading';\nimport MaxWidthContainer from '../common/MaxWidthContainer';\nimport Title from '../common/Title';\nimport TableSection from './TableSection';\nimport Team from './Team';\nimport { message } from 'antd';\nimport { useSelector, useDispatch } from 'react-redux';\nimport OneCampaignLoading from '../common/OneCampaignLoading';\nimport SwitchCampaignAlert from '../common/SwitchCampaignAlert';\n\nconst StyledTitle = styled(Title)`\n margin-top: 32px;\n font-size: 24px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\nconst TeamsSection = styled.div`\n display: grid;\n grid-template-columns: repeat(auto-fill, 300px);\n gap: 1.5rem;\n margin-top: 2rem;\n`;\nconst PageTitle = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 3rem;\n`;\n\nconst CampaignLeaderboard = () => {\n const { t } = useTranslation();\n const firstUpdate = useRef(true);\n const firstCampaignChange = useRef(true);\n const dispatch = useDispatch();\n const history = useHistory();\n\n //if there is a query with campaign id, use it instead of selected campaign from redux\n const query = useQuery();\n const queryCampaignId = query.get('campaignId');\n\n const title = t('campaign.leaderboard.title');\n useDocumentTitle(title);\n\n const [campaign, setCampaign] = useState();\n const selectedCampaign = useSelector(state => state.oneCampaign.selectedCampaign);\n\n //check for 'campaignId' query parameter, and fetch leaderboard for that instead of selected campaign\n useEffect(() => {\n if (!queryCampaignId || selectedCampaign?.id === parseInt(queryCampaignId)) {\n setCampaign(selectedCampaign);\n } else {\n campaigns\n .getCampaign({ id: parseInt(queryCampaignId) })\n .then(({ data: { data } }) => {\n const localizedData = getLocalizedOnboardingData(data);\n setCampaign(localizedData);\n })\n .catch(err => {\n message.error(err?.message ?? 'Failed to fetch this campaign.');\n setCampaign(selectedCampaign);\n });\n }\n }, [queryCampaignId, dispatch, selectedCampaign]);\n\n // Infinite Scroller parent reference\n const [scrollRef, setScrollRef] = useState(null);\n\n // Fetch campaign teams paginated\n const leaderboardPaginator = toObject(\n usePaginatedApi(campaigns.getCampaignLeaderboard, campaign?.id ?? selectedCampaign?.id),\n );\n\n //When user switches the campaign, we have to remove the query param in order to start fetching the new campaign's leaderboard\n useEffect(() => {\n if (firstCampaignChange.current && !!selectedCampaign) {\n firstCampaignChange.current = false;\n return;\n }\n\n if (selectedCampaign?.id !== campaign?.id) {\n query.has('campaignId') && query.delete('campaignId');\n history.replace({ search: query.toString() });\n }\n }, [campaign?.id, history, query, selectedCampaign]);\n\n useEffect(() => {\n // Prevent calling on initial render to reduce number of API calls\n if (firstUpdate.current) {\n firstUpdate.current = false;\n return;\n }\n if (!campaign?.id) return;\n\n leaderboardPaginator.resetPagination({ refetch: true });\n\n // Do not change this as it will cause queries to loop\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [campaign?.id, selectedCampaign]);\n\n const handlePressJoin = team => {\n const action = teamsApi.joinTeam;\n\n action(team).then(() => {\n // Get updated teams\n leaderboardPaginator.resetPagination({ refetch: true });\n message.success(t('teams.joined_message', team));\n });\n };\n\n const { items: teams } = leaderboardPaginator;\n\n return (\n <>\n <AppHeader title={title} extra={campaign?.name} />\n <AppContainer grayBackground>\n <OneCampaignLoading>\n <MaxWidthContainer>\n <SwitchCampaignAlert campaign={campaign} />\n <PageTitle>{t('menu.leaderboard')}</PageTitle>\n {campaign && teams?.length > 0 && (\n <>\n <StyledTitle>\n {t('campaign.leaderboard.top_teams')}\n <small>{t('campaign.leaderboard.last_30_days')}</small>\n </StyledTitle>\n\n <TeamsSection>\n {teams.slice(0, 3).map((team, index) => (\n <Team\n place={index + 1}\n joinTeam={handlePressJoin}\n key={team.id}\n team={team}\n campaignId={campaign.id}\n />\n ))}\n </TeamsSection>\n </>\n )}\n <StyledTitle>{t('campaign.leaderboard.title')}</StyledTitle>\n\n <div ref={setScrollRef}>\n <InfiniteScroll\n initialLoad\n pageStart={0}\n threshold={0}\n loadMore={leaderboardPaginator.loadMore}\n hasMore={!leaderboardPaginator.loading && leaderboardPaginator.hasMore}\n useWindow\n getScrollParent={() => scrollRef}\n >\n {campaign && <TableSection teams={teams} campaignId={campaign.id} />}\n {leaderboardPaginator.loading && <Loading centered />}\n </InfiniteScroll>\n </div>\n </MaxWidthContainer>\n </OneCampaignLoading>\n </AppContainer>\n </>\n );\n};\n\nCampaignLeaderboard.propTypes = {};\n\nexport default CampaignLeaderboard;\n","import React from 'react';\nimport { useLocation } from 'react-router-dom';\n\nexport default function useQuery() {\n const { search } = useLocation();\n\n return React.useMemo(() => new URLSearchParams(search), [search]);\n}\n","import i18n from 'web/components/i18n';\n\nexport default [\n 'AL',\n 'AK',\n 'AZ',\n 'AR',\n 'CA',\n 'CO',\n 'CT',\n 'DE',\n 'DC',\n 'FL',\n 'GA',\n 'HI',\n 'ID',\n 'IL',\n 'IN',\n 'IA',\n 'KS',\n 'KY',\n 'LA',\n 'ME',\n 'MD',\n 'MA',\n 'MI',\n 'MN',\n 'MS',\n 'MO',\n 'MT',\n 'NE',\n 'NV',\n 'NH',\n 'NJ',\n 'NM',\n 'NY',\n 'NC',\n 'ND',\n 'OH',\n 'OK',\n 'OR',\n 'PA',\n 'RI',\n 'SC',\n 'SD',\n 'TN',\n 'TX',\n 'UT',\n 'VT',\n 'VA',\n 'WA',\n 'WV',\n 'WI',\n 'WY',\n].map(abbr => ({ label: i18n.t(`states.${abbr}`), value: abbr }));\n","import { string, node } from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\nimport theme, { media } from '@web/styles/theme';\n\nconst NoteOuter = styled.div`\n align-items: center;\n flex-grow: 1;\n flex-direction: column;\n justify-content: center;\n margin: 1em 0;\n`;\n\nconst NoteInner = styled.div`\n border: 2px dashed #dddddd;\n border-radius: 5px;\n display: flex;\n padding: 1em;\n align-items: center;\n\n ${media.nxl} {\n flex-wrap: wrap;\n }\n`;\n\nconst NoteTitle = styled.div`\n color: ${theme.colors.black};\n font-family: ${theme.fonts.black};\n font-size: 1.25em;\n letter-spacing: 1.35px;\n margin-bottom: 0.5em;\n`;\n\nconst NoteBody = styled.div`\n color: ${theme.colors.darkBlack};\n font-family: ${theme.fonts.light};\n font-size: 1em;\n opacity: 0.65;\n`;\n\nconst Note = ({ title, children, actions }) => (\n <NoteOuter>\n <NoteInner>\n <div>\n <NoteTitle>{title}</NoteTitle>\n <NoteBody>{children}</NoteBody>\n </div>\n {actions}\n </NoteInner>\n </NoteOuter>\n);\n\nNote.propTypes = {\n actions: node,\n children: node,\n title: string,\n};\n\nNote.defaultProps = {\n actions: undefined,\n children: undefined,\n title: '',\n};\n\nexport default Note;\n","import { Avatar } from 'antd';\nimport styled from 'styled-components';\nimport { media } from '../../../styles/theme';\n\nexport const Container = styled.div`\n margin: 0 auto;\n width: 988px;\n max-width: 100%;\n padding: 0 24px;\n`;\n\nexport const Wrapper = styled.div`\n // Reset global styles for this template\n color: #000;\n\n a {\n color: #4680d9;\n }\n`;\n\nexport const Header = styled.div`\n background: #061240;\n color: #fff;\n padding: 20px 0;\n`;\n\nexport const HeaderInner = styled(Container)`\n ${media.lg} {\n display: flex;\n align-items: center;\n }\n`;\n\nexport const TeamInfo = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 20px;\n\n ${media.lg} {\n margin-right: 40px;\n margin-bottom: 0;\n }\n`;\n\nexport const TeamAvatar = styled(Avatar).attrs({ size: 60 })`\n border: 2px solid #fff;\n flex: none;\n`;\n\nexport const TeamNameWrapper = styled.div`\n margin-left: 16px;\n`;\n\nexport const TeamNameTop = styled.div`\n font-size: 12px;\n font-family: ${({ theme }) => theme.fonts.bold};\n line-height: 1;\n letter-spacing: 0.08em;\n text-transform: uppercase;\n opacity: 0.85;\n`;\n\nexport const TeamName = styled.div`\n font-size: 30px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n line-height: 1;\n margin-top: 4px;\n`;\n\nexport const TeamMetrics = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const TeamMetric = styled.div`\n margin-right: 32px;\n`;\n\nexport const TeamMetricValue = styled.div`\n font-size: 24px;\n font-family: ${({ theme }) => theme.fonts.light};\n line-height: 1;\n`;\n\nexport const TeamMetricLabel = styled.div`\n font-size: 10px;\n font-family: ${({ theme }) => theme.fonts.bold};\n letter-spacing: 0.1em;\n line-height: 1.2em;\n margin-top: 2px;\n text-transform: uppercase;\n`;\n\nexport const TeamDescription = styled.div`\n font-size: 10px;\n font-family: ${({ theme }) => theme.fonts.light};\n line-height: 1;\n`;\n\nexport const Body = styled.div`\n padding: 32px 0;\n\n ${media.lg} {\n padding: 40px 0;\n }\n`;\n\nexport const BodyInner = styled(Container)`\n ${media.lg} {\n display: flex;\n }\n`;\n\nexport const Sidebar = styled.div`\n margin-bottom: 40px;\n\n ${media.lg} {\n flex: none;\n width: 220px;\n padding-right: 24px;\n border-right: 1px solid ${({ theme }) => theme.colors.borderGray};\n margin-bottom: 0;\n margin-right: 40px;\n }\n`;\n\nexport const CampaignNameTop = styled.div`\n font-size: 12px;\n font-family: ${({ theme }) => theme.fonts.bold};\n line-height: 1;\n letter-spacing: 0.08em;\n text-transform: uppercase;\n opacity: 0.85;\n`;\n\nexport const CampaignAvatarAndName = styled.div`\n margin-top: 16px;\n display: flex;\n flex-direction: row-reverse;\n justify-content: flex-end;\n align-items: center;\n\n ${media.lg} {\n margin-top: 4px;\n flex-direction: column;\n align-items: flex-start;\n }\n`;\n\nexport const CampaignName = styled.div`\n font-size: 25px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n line-height: 1;\n word-break: break-word;\n\n ${media.sm} {\n font-size: 18px;\n }\n`;\n\nexport const CampaignWebsiteUrl = styled.a`\n font-size: 14px;\n font-family: ${({ theme }) => theme.fonts.boldItalic};\n line-height: 12px;\n word-break: break-word;\n display: none;\n margin-top: 4px;\n\n ${media.lg} {\n display: inline-block;\n }\n`;\n\nexport const CampaignAvatar = styled.img`\n width: 55px;\n height: 55px;\n border-radius: 100%;\n margin-right: 10px;\n flex: none;\n\n ${media.lg} {\n width: 140px;\n height: 140px;\n margin-top: 20px;\n margin-right: 0;\n }\n`;\n\nexport const CampaignDescription = styled.div`\n display: none;\n font-size: 12px;\n line-height: 15px;\n word-break: break-word;\n opacity: 0.85;\n margin-top: 20px;\n width: 160px;\n\n ${media.lg} {\n display: block;\n }\n`;\n\nexport const Content = styled.div`\n flex: 1;\n min-width: 0;\n font-size: 14px;\n`;\n\nexport const StepText = styled.div`\n font-family: ${({ theme }) => theme.fonts.bold};\n letter-spacing: 0.08em;\n line-height: 1;\n text-transform: uppercase;\n`;\n\nexport const Title = styled.h3`\n color: #000;\n font-size: 24px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n text-transform: capitalize;\n margin: 10px 0 0;\n`;\n\nexport const Instruction = styled.div`\n margin-top: 6px;\n`;\n","import get from 'lodash/get';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDocumentTitle } from 'web/hooks/useDocumentTitle';\nimport { kFormatter, punyEncodedURL, replaceDefaultCampaignImage } from 'web/utils/string';\nimport defaultCampaignProfile from '../../../../../assets/images/web/default-campaign-profile.png';\nimport {\n Wrapper,\n Header,\n HeaderInner,\n TeamInfo,\n TeamAvatar,\n TeamNameWrapper,\n TeamNameTop,\n TeamName,\n TeamMetrics,\n TeamMetric,\n TeamMetricLabel,\n TeamMetricValue,\n Body,\n BodyInner,\n Sidebar,\n CampaignNameTop,\n CampaignAvatarAndName,\n CampaignName,\n CampaignWebsiteUrl,\n CampaignAvatar,\n CampaignDescription,\n Content,\n StepText,\n Title,\n Instruction,\n} from './styles';\n\nconst formatCount = value => (parseInt(value, 10) ? kFormatter(value) : '-');\nconst formatRank = value => (parseInt(value, 10) ? moment.localeData().ordinal(value) : '-');\n\nconst VoterRegistrationTemplate = ({\n campaign,\n team,\n postmatesEnabled,\n stepCount,\n currentStep,\n title,\n instruction,\n children,\n ...rest\n}) => {\n const { t } = useTranslation();\n useDocumentTitle(t('voter_registration.document_title'));\n const teamLeaderFirstName = get(team, 'team_leader.first_name', '');\n const teamLeaderLastName = get(team, 'team_leader.last_name', '');\n const teamLeaderName =\n teamLeaderFirstName || teamLeaderLastName\n ? `${teamLeaderFirstName} ${teamLeaderLastName}`\n : t('voter_registration.anonymous');\n return (\n <Wrapper {...rest}>\n {team && (\n <Header>\n <HeaderInner>\n <TeamInfo>\n <TeamAvatar src={team.profile_url}>{team.name}</TeamAvatar>\n <TeamNameWrapper>\n <TeamNameTop>\n {t('voter_registration.join_team_with_name', { name: teamLeaderName })}\n </TeamNameTop>\n <TeamName>{team.name}</TeamName>\n </TeamNameWrapper>\n </TeamInfo>\n <TeamMetrics>\n {team.registrations > 100 && (\n <TeamMetric>\n <TeamMetricValue>{formatCount(team.registrations)}</TeamMetricValue>\n <TeamMetricLabel\n dangerouslySetInnerHTML={{ __html: t('voter_registration.registrations') }}\n />\n </TeamMetric>\n )}\n {team.pledges > 100 && (\n <TeamMetric>\n <TeamMetricValue>{formatCount(team.pledges)}</TeamMetricValue>\n <TeamMetricLabel\n dangerouslySetInnerHTML={{ __html: t('voter_registration.pledges') }}\n />\n </TeamMetric>\n )}\n {(team.registrations > 100 || team.pledges > 100) && (\n <TeamMetric>\n <TeamMetricValue>{formatRank(team.rank)}</TeamMetricValue>\n <TeamMetricLabel\n dangerouslySetInnerHTML={{\n __html: t('voter_registration.place_for_campaign', {\n campaign: campaign.name,\n }),\n }}\n />\n </TeamMetric>\n )}\n </TeamMetrics>\n </HeaderInner>\n </Header>\n )}\n <Body>\n <BodyInner>\n <Sidebar>\n <CampaignNameTop>{t('voter_registration.taking_action_for')}</CampaignNameTop>\n <CampaignAvatarAndName>\n <CampaignName>{campaign.name}</CampaignName>\n <CampaignWebsiteUrl target=\"_blank\" href={campaign.website_url}>\n {punyEncodedURL(campaign.website_url)}\n </CampaignWebsiteUrl>\n <CampaignAvatar\n src={\n replaceDefaultCampaignImage(campaign.url_profile_img) || defaultCampaignProfile\n }\n alt={campaign.name}\n />\n </CampaignAvatarAndName>\n {postmatesEnabled && (\n <>\n <CampaignNameTop style={{ marginTop: 20 }}>\n {t('pledge_to_vote.partnership')}\n </CampaignNameTop>\n <CampaignAvatarAndName>\n <CampaignAvatar\n src={'https://outvote-static-assets.s3.amazonaws.com/postmates_logo_square.png'}\n alt={t('Postmates')}\n />\n </CampaignAvatarAndName>\n </>\n )}\n {!postmatesEnabled && <CampaignDescription>{campaign.description}</CampaignDescription>}\n </Sidebar>\n <Content>\n {currentStep > 0 && (\n <StepText>\n {t('voter_registration.step_of_with_count', { currentStep, stepCount })}\n </StepText>\n )}\n {title && <Title>{title}</Title>}\n {instruction && <Instruction>{instruction}</Instruction>}\n {children}\n </Content>\n </BodyInner>\n </Body>\n </Wrapper>\n );\n};\n\nVoterRegistrationTemplate.propTypes = {\n campaign: PropTypes.object.isRequired,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n currentStep: PropTypes.number,\n instruction: PropTypes.string,\n postmatesEnabled: PropTypes.bool,\n stepCount: PropTypes.number,\n team: PropTypes.object,\n title: PropTypes.string,\n};\n\nexport default VoterRegistrationTemplate;\n","import { Table } from 'antd';\nimport { Radio } from 'formik-antd';\nimport styled from 'styled-components';\nimport ImpactiveButton from '../ImpactiveButton';\n\nexport const SplashWrapper = styled.div`\n max-width: 400px;\n margin: 40px auto;\n font-size: 16px;\n text-align: center;\n`;\n\nexport const SplashTitle = styled.h3`\n color: #000;\n font-size: 2em;\n font-family: ${({ theme }) => theme.fonts.semibold};\n margin: 0 0 12px;\n`;\n\nexport const SplashDescription = styled.div`\n margin-bottom: 2em;\n line-height: 1.3;\n opacity: 0.85;\n`;\n\nexport const BigRoundButton = styled(ImpactiveButton)`\n font-size: 19px;\n border-radius: 10px;\n width: 100%;\n margin: 10px 0;\n`;\n\nexport const CannotVoteLink = styled.a`\n margin-top: 14px;\n display: inline-block;\n font-family: ${({ theme }) => theme.fonts.boldItalic};\n`;\n\nexport const FormContainer = styled.div`\n margin-top: 2rem;\n\n @media screen and (min-width: 768px) {\n max-width: 590px;\n }\n`;\n\nexport const StyledRadio = styled(Radio.Button)`\n margin-right: 5px !important;\n margin-top: 10px !important;\n border-radius: 0 !important;\n`;\n\nexport const SearchResults = styled.div`\n margin-top: 32px;\n`;\n\nexport const SearchResultsTitle = styled.h3`\n font-size: 24px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n line-height: 26px;\n margin: 0;\n`;\n\nexport const SearchResultsDescription = styled.div`\n margin-top: 6px;\n`;\n\nexport const VoterTable = styled(Table)`\n border: 1px solid ${({ theme }) => theme.colors.borderGray};\n border-radius: 3px;\n margin: 20px 0;\n max-width: 620px;\n\n .ant-table {\n color: #000;\n }\n\n .ant-table-content {\n overflow-x: auto !important;\n }\n\n .ant-table tbody > tr {\n cursor: pointer;\n\n > td {\n height: 47px;\n padding-top: 0;\n padding-bottom: 0;\n }\n }\n`;\n\nexport const VoterName = styled.div`\n color: #454545;\n font-family: ${({ theme }) => theme.fonts.bold};\n text-transform: capitalize;\n`;\n\nexport const VoterAddress = styled.div`\n text-transform: capitalize;\n`;\n\nexport const VoterAge = styled.div``;\n\nexport const VoterNameCell = styled.div`\n ${VoterAddress}, ${VoterAge} {\n display: none;\n @media screen and (max-width: 767px) {\n display: block;\n }\n }\n`;\n\nexport const ButtonsRow = styled.div`\n margin-bottom: -10px;\n\n > * {\n margin-bottom: 20px;\n\n &:not(:last-child) {\n margin-right: 20px;\n }\n\n @media screen and (max-width: 767px) {\n width: 100%;\n }\n }\n`;\n\nexport const TermsAndConditions = styled.div`\n margin-top: 40px;\n font-size: 13px;\n`;\n","import { PhoneOutlined, MailOutlined, LoadingOutlined } from '@ant-design/icons';\nimport { Checkbox, message, Row, Col, Spin } from 'antd';\nimport { Formik } from 'formik';\nimport { Form, FormItem, Input, Radio, Select } from 'formik-antd';\nimport toLower from 'lodash/toLower';\nimport PropTypes from 'prop-types';\nimport queryString from 'query-string';\nimport React, { useEffect, useState, useMemo, useRef, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport i18n from 'web/components/i18n';\nimport states from 'web/data/states';\nimport * as yup from 'yup';\nimport { track, trackPageViewWithDynamicIDs } from '../../services/analytics';\nimport { users, campaigns, teams } from '../../services/api';\nimport ImpactiveButton from '../ImpactiveButton';\nimport Note from '../Note';\nimport VoterRegistrationTemplate from '../templates/VoterRegistrationTemplate';\nimport {\n SplashWrapper,\n SplashTitle,\n SplashDescription,\n BigRoundButton,\n CannotVoteLink,\n FormContainer,\n StyledRadio,\n SearchResults,\n SearchResultsTitle,\n SearchResultsDescription,\n VoterTable,\n VoterNameCell,\n VoterName,\n VoterAddress,\n VoterAge,\n ButtonsRow,\n TermsAndConditions,\n} from './styles';\n\nconst phoneRegExp =\n /^((\\\\+[1-9]{1,4}[ \\\\-]*)|(\\\\([0-9]{2,3}\\\\)[ \\\\-]*)|([0-9]{2,4})[ \\\\-]*)*?[0-9]{3,4}?[ \\\\-]*[0-9]{3,4}?$/;\n\nconst SearchVotersFormSchema = yup.object().shape({\n ageRange: yup.string().required(i18n.t('idvoters.validation.age')),\n city: yup.string(),\n email: yup.string().email(i18n.t('check_registration.invalid_email')),\n firstName: yup.string().required(i18n.t('idvoters.validation.firstname')),\n lastName: yup.string().required(i18n.t('idvoters.validation.lastname')),\n phone: yup.string().matches(phoneRegExp, i18n.t('check_registration.invalid_phone')),\n stateAbbv: yup.string().required(i18n.t('idvoters.validation.state')),\n zipCode: yup.number(i18n.t('idvoters.validation.zip')),\n});\n\nconst ContactFormSchema = yup.object().shape({\n email: yup.string().email(i18n.t('check_registration.invalid_email')),\n firstName: yup.string(),\n lastName: yup.string(),\n phone: yup.string().matches(phoneRegExp, i18n.t('check_registration.invalid_phone')),\n});\n\nconst voterNameFormatter = (_, record) => (\n <VoterName>\n {toLower(record['vb.tsmart_first_name'])} {toLower(record['vb.tsmart_last_name'])}\n </VoterName>\n);\n\nconst voterAddressFormatter = (_, record) => (\n <VoterAddress>\n {toLower(record['vb.tsmart_city'])}, {record['vb.tsmart_state']}\n </VoterAddress>\n);\n\nconst voterAgeFormatter = (_, record) => {\n const { 'vb.voterbase_age': age } = record;\n return <VoterAge>{!!age && i18n.t('idvoters.results.years_old', { age })}</VoterAge>;\n};\n\nconst voterTableColumns = [\n {\n key: 'name',\n render: (_, record) => (\n <VoterNameCell>\n {voterNameFormatter(_, record)}\n {voterAddressFormatter(_, record)}\n {voterAgeFormatter(_, record)}\n </VoterNameCell>\n ),\n title: 'Name',\n },\n {\n key: 'address',\n render: voterAddressFormatter,\n responsive: ['md'],\n title: 'Address',\n },\n {\n dataIndex: 'vb.voterbase_age',\n key: 'age',\n render: voterAgeFormatter,\n responsive: ['md'],\n title: 'Age',\n },\n];\n\nconst formInitialValues = {\n ageRange: '18-255',\n city: '',\n email: '',\n firstName: '',\n lastName: '',\n phone: '',\n stateAbbv: '',\n zipCode: '',\n};\n\nconst ScreenTypes = {\n NEW_VOTER: 'new_voter',\n SEARCH_VOTER: 'search_voter',\n SIGNUP_TO_HELP: 'signup_to_help',\n SPLASH: 'splash',\n};\n\nconst CheckRegistration = props => {\n const { campaignId } = props.match.params; // can be either campaign `id` or `slug`\n const { contact_id, contact_referral_id, h, referral_hash } = queryString.parse(\n props.location.search,\n );\n const { t } = useTranslation();\n const history = useHistory();\n\n const [campaign, setCampaign] = useState({});\n const [team, setTeam] = useState();\n const [loading, setLoading] = useState(true);\n const [voters, setVoters] = useState([]);\n const [loadingItems, setLoadingItems] = useState(false);\n const [searched, setSearched] = useState(false);\n const [selectedVoterId, setSelectedVoterId] = useState();\n const [optIn, setOptIn] = useState(true);\n const searchRef = useRef(null);\n const formRef = useRef(null);\n const [screenType, setScreenType] = useState(ScreenTypes.SPLASH);\n const isSearchScreen = screenType === ScreenTypes.SEARCH_VOTER;\n const isSignupToHelpScreen = screenType === ScreenTypes.SIGNUP_TO_HELP;\n const user_referral_id = team ? team.id : undefined;\n\n useEffect(() => {\n track('VIEW_CHECK_REGISTRATION');\n setLoading(true);\n campaigns\n .getPublicCampaign({ id: campaignId })\n .then(({ data: { data: campaign } }) => {\n setCampaign(campaign);\n\n trackPageViewWithDynamicIDs({\n fbPixelId: campaign.fb_pixel_id,\n gaTrackingId: campaign.ga_tracking_id,\n snapchatPixelId: campaign.snapchat_pixel_id,\n });\n\n if (referral_hash) {\n return users\n .getUserByReferralHash(referral_hash)\n .then(({ data: { data: user } }) => {\n return teams.getTeam({ filters: { campaign_id: campaign.id }, id: user.id });\n })\n .then(({ data: { data: team } }) => setTeam(team))\n .catch(error => {\n // Catch error and make this promise always resolved,\n // so we can render this view at least\n console.error('get team data >', error);\n });\n }\n })\n .then(() => setLoading(false));\n }, [campaignId, referral_hash]);\n\n const handleClickAlreadyRegistered = useCallback(() => {\n setScreenType(ScreenTypes.SEARCH_VOTER);\n }, []);\n\n const handleClickNotRegistered = useCallback(() => {\n setScreenType(ScreenTypes.NEW_VOTER);\n }, []);\n\n const handleClickCannotVote = useCallback(() => {\n setScreenType(ScreenTypes.SIGNUP_TO_HELP);\n }, []);\n\n const handleSearchFormSubmit = useCallback((formData, { setSubmitting }) => {\n track('SUBMIT_CHECK_REGISTRATION');\n setLoadingItems(true);\n setSearched(true);\n setSelectedVoterId();\n users\n .searchVoters(formData)\n .then(({ data }) => {\n setVoters(data);\n })\n .catch(error => {\n // TODO: Improve error handling\n console.error(error);\n setVoters([]);\n })\n .then(() => {\n setSubmitting(false);\n setLoadingItems(false);\n window.scrollTo(0, searchRef.current.offsetTop);\n });\n }, []);\n\n const goToNextStep = useCallback(\n contact => {\n const query = queryString.stringify({ h: contact.h, referral_hash });\n const url = isSignupToHelpScreen\n ? `/campaigns/${campaign.slug}/contacts/${contact.id}/voting_information?${query}`\n : `/campaigns/${campaign.slug}/contacts/${contact.id}/confirm_address?${query}`;\n history.push(encodeURI(url));\n },\n [campaign, referral_hash, isSignupToHelpScreen, history],\n );\n\n const handleSelectVoter = useCallback(() => {\n const {\n values: { email, phone, firstName, lastName },\n errors: { email: emailError, phone: phoneError },\n } = formRef.current.state;\n if (!contact_id && !h && !email && !phone) {\n message.error(t('check_registration.email_phone_required'));\n return;\n }\n if (email && emailError) {\n message.error(emailError);\n return;\n }\n if (phone && phoneError) {\n message.error(phoneError);\n return;\n }\n campaigns\n .confirmMyRecord({\n campaign_id: campaign.id,\n contact_id,\n contact_referral_id,\n email,\n first_name: firstName,\n h,\n last_name: lastName,\n opt_in: optIn,\n phone,\n user_referral_id,\n voter: selectedVoterId,\n })\n .then(({ data }) => goToNextStep(data))\n .catch(error => {\n // TODO: Improve error handling\n console.error(error);\n message.error(t('errors.default'));\n });\n }, [\n campaign,\n user_referral_id,\n selectedVoterId,\n contact_id,\n contact_referral_id,\n h,\n optIn,\n goToNextStep,\n t,\n ]);\n\n const handleSelectNone = useCallback(() => {\n const {\n values: { email, phone, firstName, lastName },\n errors: { email: emailError, phone: phoneError },\n } = formRef.current.state;\n if (!contact_id && !h && !email && !phone) {\n message.error(t('check_registration.email_phone_required'));\n return;\n }\n if (email && emailError) {\n message.error(emailError);\n return;\n }\n if (phone && phoneError) {\n message.error(phoneError);\n return;\n }\n campaigns\n .confirmUnregistered({\n campaign_id: campaign.id,\n contact_id,\n contact_referral_id,\n email,\n first_name: firstName,\n h,\n last_name: lastName,\n opt_in: optIn,\n phone,\n user_referral_id,\n })\n .then(({ data }) => goToNextStep(data))\n .catch(error => {\n // TODO: Improve error handling\n console.error(error);\n message.error(t('errors.default'));\n });\n }, [campaign, user_referral_id, contact_id, contact_referral_id, h, optIn, goToNextStep, t]);\n\n const handleContactFormSubmit = useCallback(\n (formData, { setSubmitting }) => {\n const { email, phone, firstName, lastName } = formData;\n if (!contact_id && !h && !email && !phone) {\n message.error(t('check_registration.email_phone_required'));\n setSubmitting(false);\n return;\n }\n campaigns\n .confirmUnregistered({\n campaign_id: campaign.id,\n contact_id,\n contact_referral_id,\n email,\n first_name: firstName,\n h,\n last_name: lastName,\n opt_in: optIn,\n phone,\n registration_status: isSignupToHelpScreen ? 'Unable to Vote' : undefined,\n user_referral_id,\n })\n .then(({ data }) => goToNextStep(data))\n .catch(error => {\n // TODO: Improve error handling\n console.error(error);\n setSubmitting(false);\n message.error(t('errors.default'));\n });\n },\n [\n campaign,\n user_referral_id,\n contact_id,\n contact_referral_id,\n h,\n optIn,\n isSignupToHelpScreen,\n goToNextStep,\n t,\n ],\n );\n\n const voterTableProps = useMemo(() => {\n return {\n onRow: record => ({\n onClick: () => setSelectedVoterId(record.voterbase_id),\n }),\n pagination: false,\n rowKey: 'voterbase_id',\n rowSelection: {\n fixed: true,\n onChange: selectedKeys => setSelectedVoterId(selectedKeys[0]),\n selectedRowKeys: [selectedVoterId],\n type: 'radio',\n },\n scroll: {\n x: true,\n },\n showHeader: false,\n };\n }, [selectedVoterId]);\n\n if (loading) {\n return (\n <div className=\"flex-row justify-content-center mt-4\">\n <Spin indicator={<LoadingOutlined style={{ fontSize: 24 }} spin />} />\n </div>\n );\n }\n\n const termsAndConditions = campaign.terms ? (\n <TermsAndConditions>\n <p>{campaign.terms}</p>\n {campaign.terms_link && (\n <a href={campaign.terms_link} target=\"_blank\" rel=\"noopener noreferrer\">\n {t('check_registration.read_more')}\n </a>\n )}\n </TermsAndConditions>\n ) : (\n <TermsAndConditions>\n <div>\n {t('check_registration.by_proceeding')}\n <a href=\"/outvote/terms_of_service\" target=\"_blank\" rel=\"noopener noreferrer\">\n {t('check_registration.tos')}\n </a>\n {'.'}\n </div>\n </TermsAndConditions>\n );\n\n if (screenType === ScreenTypes.SPLASH) {\n return (\n <VoterRegistrationTemplate campaign={campaign} team={team}>\n <SplashWrapper>\n <SplashTitle>{t('check_registration.splash.title')}</SplashTitle>\n <SplashDescription>{t('check_registration.description')}</SplashDescription>\n <BigRoundButton\n onClick={handleClickAlreadyRegistered}\n data-testid=\"already-registered-button\"\n >\n <span\n dangerouslySetInnerHTML={{\n __html: t('check_registration.splash.already_registered'),\n }}\n />\n </BigRoundButton>\n <BigRoundButton onClick={handleClickNotRegistered} secondary>\n {t('check_registration.splash.not_registered')}\n </BigRoundButton>\n <CannotVoteLink onClick={handleClickCannotVote}>\n {t('check_registration.splash.cannot_vote')}\n </CannotVoteLink>\n {termsAndConditions}\n </SplashWrapper>\n </VoterRegistrationTemplate>\n );\n }\n\n const stepCount = isSignupToHelpScreen ? 2 : 3;\n const title = isSignupToHelpScreen\n ? t('check_registration.signup_to_help.title')\n : isSearchScreen\n ? t('check_registration.title')\n : t('check_registration.new_voter.title');\n const instruction = isSignupToHelpScreen\n ? t('check_registration.signup_to_help.description')\n : isSearchScreen\n ? t('check_registration.description')\n : t('check_registration.new_voter.description');\n\n return (\n <VoterRegistrationTemplate\n campaign={campaign}\n team={team}\n stepCount={stepCount}\n currentStep={1}\n title={title}\n instruction={instruction}\n data-testid=\"find-possibilities\"\n >\n <FormContainer>\n <Formik\n ref={formRef}\n initialValues={formInitialValues}\n validationSchema={!isSearchScreen ? ContactFormSchema : SearchVotersFormSchema}\n onSubmit={!isSearchScreen ? handleContactFormSubmit : handleSearchFormSubmit}\n render={({ isSubmitting, isValid, submitCount }) => (\n <Form>\n <Row gutter={30}>\n {!contact_id && (\n <>\n <Col span={24} md={12}>\n <FormItem name=\"email\">\n <label htmlFor=\"email\">{t('idvoters.labels.email')}</label>\n <Input\n name=\"email\"\n placeholder={t('placeholders.default_email')}\n id=\"email\"\n prefix={<MailOutlined />}\n />\n </FormItem>\n </Col>\n <Col span={24} md={12}>\n <FormItem name=\"phone\">\n <label htmlFor=\"phone\">{t('idvoters.labels.phone')}</label>\n <Input\n name=\"phone\"\n placeholder={'(111) 222 - 3333'}\n id=\"phone\"\n prefix={<PhoneOutlined />}\n />\n </FormItem>\n </Col>\n </>\n )}\n <Col span={24} md={12}>\n <FormItem name=\"firstName\">\n <label htmlFor=\"firstName\">{t('idvoters.labels.firstname')}</label>\n <Input\n name=\"firstName\"\n placeholder={t('idvoters.labels.firstname')}\n id=\"firstName\"\n />\n </FormItem>\n </Col>\n <Col span={24} md={12}>\n <FormItem name=\"lastName\">\n <label htmlFor=\"lastName\">{t('idvoters.labels.lastname')}</label>\n <Input\n name=\"lastName\"\n placeholder={t('idvoters.labels.lastname')}\n id=\"lastName\"\n />\n </FormItem>\n </Col>\n {isSearchScreen && (\n <>\n <Col span={24}>\n <FormItem name=\"ageRange\">\n <label htmlFor=\"ageRange\">{t('idvoters.labels.age')}</label>\n <Radio.Group\n className=\"flex-row flex-wrap\"\n id=\"ageRange\"\n name=\"ageRange\"\n defaultValue=\"18-255\"\n buttonStyle=\"solid\"\n >\n <StyledRadio className=\"radio-btn-outline\" value=\"18-255\">\n {t('idvoters.labels.age_all')}\n </StyledRadio>\n <StyledRadio className=\"radio-btn-outline\" value=\"18-28\">\n 18-28\n </StyledRadio>\n <StyledRadio className=\"radio-btn-outline\" value=\"25-35\">\n 25-35\n </StyledRadio>\n <StyledRadio className=\"radio-btn-outline\" value=\"30-45\">\n 30-45\n </StyledRadio>\n <StyledRadio className=\"radio-btn-outline\" value=\"40-60\">\n 40-60\n </StyledRadio>\n <StyledRadio className=\"radio-btn-outline\" value=\"55-150\">\n {t('idvoters.labels.age_55_up')}\n </StyledRadio>\n </Radio.Group>\n </FormItem>\n </Col>\n <Col span={24} md={8}>\n <FormItem name=\"stateAbbv\">\n <label htmlFor=\"stateAbbv\">{t('idvoters.labels.state')}</label>\n <Select\n data-testid=\"state-abbv\"\n name=\"stateAbbv\"\n autoComplete={'off'}\n id=\"stateAbbv\"\n placeholder={t('idvoters.placeholders.state')}\n filterOption={(input, option) =>\n option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0\n }\n >\n {states.map(({ value, label }) => (\n <Select.Option key={value} value={value}>\n {label}\n </Select.Option>\n ))}\n </Select>\n </FormItem>\n </Col>\n <Col span={24} md={8}>\n <FormItem name=\"city\">\n <label htmlFor=\"city\">{t('idvoters.labels.city')}</label>\n <Input\n name=\"city\"\n placeholder={t('idvoters.placeholders.city')}\n id=\"city\"\n />\n </FormItem>\n </Col>\n <Col span={24} md={8}>\n <FormItem name=\"zipCode\">\n <label htmlFor=\"zipCode\">{t('idvoters.labels.zip')}</label>\n <Input name=\"zipCode\" placeholder={t('idvoters.labels.zip')} id=\"zipCode\" />\n </FormItem>\n </Col>\n </>\n )}\n </Row>\n <ButtonsRow>\n {!isSearchScreen && (\n <ImpactiveButton\n type=\"submit\"\n disabled={isSubmitting || (!isValid && submitCount > 0)}\n >\n {t('check_registration.submit')}\n </ImpactiveButton>\n )}\n {isSearchScreen && (\n <>\n <ImpactiveButton\n type=\"submit\"\n data-testid=\"search-button\"\n disabled={isSubmitting || (!isValid && submitCount > 0)}\n >\n {t('check_registration.search_my_file')}\n </ImpactiveButton>\n <ImpactiveButton\n type=\"button\"\n data-testid=\"not-registered-button\"\n onClick={handleSelectNone}\n secondary\n >\n {t('check_registration.not_registered')}\n </ImpactiveButton>\n </>\n )}\n </ButtonsRow>\n </Form>\n )}\n />\n <Checkbox\n style={{ marginTop: 10 }}\n disabled\n name=\"optIn\"\n id=\"optIn\"\n checked={optIn}\n onChange={e => {\n setOptIn(e.target.checked);\n }}\n >\n <span\n style={{ color: '#232322' }}\n dangerouslySetInnerHTML={{\n __html: t('check_registration.agreement', {\n campaign: campaign.name,\n privacy_link: campaign.privacy_link,\n terms_link: campaign.terms_link,\n }),\n }}\n ></span>\n </Checkbox>\n </FormContainer>\n <SearchResults ref={searchRef}>\n {searched && (\n <>\n <SearchResultsTitle>{t('check_registration.search_results.title')}</SearchResultsTitle>\n\n {loadingItems && (\n <div\n style={{\n display: 'flex',\n justifyContent: 'center',\n marginTop: '2em',\n }}\n >\n <Spin indicator={<LoadingOutlined style={{ fontSize: 24 }} spin />} />\n </div>\n )}\n\n {!loadingItems && (\n <>\n <SearchResultsDescription>\n {t('check_registration.search_results.description')}\n </SearchResultsDescription>\n {voters && voters.length > 0 && (\n <VoterTable\n {...voterTableProps}\n columns={voterTableColumns}\n dataSource={voters}\n />\n )}\n {!(voters && voters.length > 0) && (\n <Note title={t('idvoters.results.no_results_title')}>\n {t('idvoters.results.no_results_message')}\n </Note>\n )}\n <ButtonsRow>\n {voters && voters.length > 0 && (\n <ImpactiveButton onClick={handleSelectVoter} disabled={!selectedVoterId}>\n {t('check_registration.search_results.this_is_me')}\n </ImpactiveButton>\n )}\n <ImpactiveButton onClick={handleSelectNone} secondary>\n {t('check_registration.search_results.cannot_find_myself')}\n </ImpactiveButton>\n </ButtonsRow>\n </>\n )}\n </>\n )}\n </SearchResults>\n {termsAndConditions}\n </VoterRegistrationTemplate>\n );\n};\n\nCheckRegistration.propTypes = {\n location: PropTypes.shape({\n search: PropTypes.string.isRequired,\n }).isRequired,\n match: PropTypes.shape({\n params: PropTypes.shape({\n campaignId: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n};\n\nexport default CheckRegistration;\n","import { get, find } from 'lodash';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport Autocomplete from 'react-google-autocomplete';\n\nconst AddressInput = ({ onChange, ...rest }) => (\n <Autocomplete\n {...rest}\n className=\"ant-input\"\n apiKey={process.env.REACT_APP_GOOGLE_MAPS_API}\n onPlaceSelected={place => {\n const street_number = find(place.address_components, e => e.types.includes('street_number'));\n const route = find(place.address_components, e => e.types.includes('route'));\n const city = find(place.address_components, e => e.types.includes('locality'));\n const zip_code = find(place.address_components, e => e.types.includes('postal_code'));\n const county_name = find(place.address_components, e =>\n e.types.includes('administrative_area_level_2'),\n );\n const state_abbrev = find(place.address_components, e =>\n e.types.includes('administrative_area_level_1'),\n );\n onChange({\n address:\n street_number || route\n ? `${get(street_number, 'short_name', '')} ${get(route, 'short_name', '')}`\n : undefined,\n city: get(city, 'short_name'),\n county_name: get(county_name, 'short_name'),\n state_abbrev: get(state_abbrev, 'short_name'),\n zip_code: get(zip_code, 'short_name'),\n });\n }}\n options={{\n componentRestrictions: { country: 'us' },\n types: ['address'],\n }}\n />\n);\n\nAddressInput.propTypes = {\n onChange: PropTypes.func.isRequired,\n};\n\nexport default AddressInput;\n","import styled from 'styled-components';\n\nexport const FormContainer = styled.div`\n max-width: 590px;\n margin-top: 24px;\n`;\n\nexport const Heading = styled.h4`\n color: #000;\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 16px;\n line-height: 1;\n text-transform: capitalize;\n margin: 8px 0 10px;\n`;\n\nexport const CheckboxWrapper = styled.div`\n margin-bottom: 12px;\n`;\n\nexport const SubmitWrapper = styled.div`\n margin-top: 32px;\n`;\n","import { LoadingOutlined, NumberOutlined } from '@ant-design/icons';\nimport { Alert, Spin, Row, Col } from 'antd';\nimport { Formik } from 'formik';\nimport { Form, FormItem, Input, Checkbox } from 'formik-antd';\nimport PropTypes from 'prop-types';\nimport queryString from 'query-string';\nimport React, { useEffect, useState, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport i18n from 'web/components/i18n';\nimport * as yup from 'yup';\nimport { ContactRegistrationStatusTypes as RegistrationStatusTypes } from '../../constants';\nimport { track, trackPageViewWithDynamicIDs } from '../../services/analytics';\nimport { campaigns, teams, users } from '../../services/api';\nimport ImpactiveButton from '../ImpactiveButton';\nimport VoterRegistrationTemplate from '../templates/VoterRegistrationTemplate';\nimport AddressInput from './AddressInput';\nimport { FormContainer, Heading, CheckboxWrapper, SubmitWrapper } from './styles';\n\nconst AddressFormSchema = yup.object().shape({\n address: yup.string().required(i18n.t('confirm_address.validations.address')).nullable(),\n city: yup.string().nullable(),\n county_name: yup.string().nullable(),\n mail_address: yup.string().when('same_address', {\n is: true,\n otherwise: yup.string().required(i18n.t('confirm_address.validations.address')).nullable(),\n then: yup.string().nullable(),\n }),\n mail_city: yup.string().nullable(),\n mail_county_name: yup.string().nullable(),\n mail_state_abbrev: yup.string().nullable(),\n mail_unit_number: yup.string().nullable(),\n mail_zip_code: yup.string().nullable(),\n same_address: yup.bool(),\n state_abbrev: yup.string().nullable(),\n unit_number: yup.string().nullable(),\n zip_code: yup.string().nullable(),\n});\n\nconst ConfirmAddress = props => {\n const { t } = useTranslation();\n const history = useHistory();\n const { campaignId, contactId } = props.match.params; // can be either campaign `id` or `slug`\n const { h, referral_hash } = queryString.parse(props.location.search);\n\n const [contact, setContact] = useState({});\n const [campaign, setCampaign] = useState({});\n const [team, setTeam] = useState();\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n track('VIEW_CONFIRM_ADDRESS');\n setLoading(true);\n Promise.all([\n campaigns.getPublicCampaign({ id: campaignId }),\n campaigns.getMyRecord({ h, id: contactId }),\n ])\n .then(([campaignResponse, contactResponse]) => {\n const campaign = campaignResponse.data.data;\n setCampaign(campaign);\n setContact(contactResponse.data);\n\n trackPageViewWithDynamicIDs({\n fbPixelId: campaign.fb_pixel_id,\n gaTrackingId: campaign.ga_tracking_id,\n snapchatPixelId: campaign.snapchat_pixel_id,\n });\n\n if (referral_hash) {\n return users\n .getUserByReferralHash(referral_hash)\n .then(({ data: { data: user } }) => {\n return teams.getTeam({ filters: { campaign_id: campaign.id }, id: user.id });\n })\n .then(({ data: { data: team } }) => setTeam(team))\n .catch(error => {\n // Catch error and make this promise always resolved,\n // so we can render this view at least\n console.error('get team data >', error);\n });\n }\n\n return;\n })\n .then(() => setLoading(false));\n }, [campaignId, contactId, h, referral_hash]);\n\n const submitAddress = useCallback(\n ({ same_address, ...rest }) => {\n track('SUBMIT_ADDRESS');\n const address_info = { ...rest };\n if (same_address) {\n address_info.mail_address = address_info.address;\n address_info.mail_unit_number = address_info.unit_number;\n address_info.mail_county_name = address_info.county_name;\n address_info.mail_state_abbrev = address_info.state_abbrev;\n address_info.mail_city = address_info.city;\n address_info.mail_zip_code = address_info.zip_code;\n }\n campaigns\n .confirmMyAddress({ address_info, campaign_id: campaignId, h, id: contactId })\n .then(() => {\n const query = queryString.stringify({ h, referral_hash });\n const url = `/campaigns/${campaignId}/contacts/${contactId}/voting_information?${query}`;\n history.push(encodeURI(url));\n });\n },\n [campaignId, contactId, h, referral_hash, history],\n );\n\n if (loading) {\n return (\n <div className=\"flex-row justify-content-center mt-4\">\n <Spin indicator={<LoadingOutlined style={{ fontSize: 24 }} spin />} />\n </div>\n );\n }\n\n let address,\n unit_number,\n city,\n state_abbrev,\n county_name,\n zip_code,\n mail_address,\n mail_unit_number,\n mail_city,\n mail_state_abbrev,\n mail_county_name,\n mail_zip_code;\n\n const title =\n contact.registration_status === RegistrationStatusTypes.UNREGISTERED\n ? t('confirm_address.unregistered.title')\n : t('confirm_address.title');\n\n return (\n <VoterRegistrationTemplate\n campaign={campaign}\n team={team}\n stepCount={3}\n currentStep={2}\n title={title}\n instruction={t('confirm_address.description')}\n data-testid=\"confirm-address\"\n >\n <FormContainer>\n <Formik\n initialValues={{\n address,\n city,\n county_name,\n mail_address,\n mail_city,\n mail_county_name,\n mail_state_abbrev,\n mail_unit_number,\n mail_zip_code,\n same_address: true,\n state_abbrev,\n unit_number,\n zip_code,\n }}\n validationSchema={AddressFormSchema}\n onSubmit={submitAddress}\n render={({ values, setFieldValue, isSubmitting, isValid, dirty, submitCount }) => (\n <Form>\n <Heading>{t('confirm_address.registration_address')}</Heading>\n <Row gutter={30}>\n <Col span={24} md={12}>\n <FormItem name=\"address\">\n <label htmlFor=\"address\">{t('confirm_address.labels.address')}</label>\n <AddressInput\n defaultValue={address}\n data-testid={'test-autocomplete'}\n onChange={address => {\n setFieldValue('address', address.address);\n setFieldValue('city', address.city);\n setFieldValue('zip_code', address.zip_code);\n setFieldValue('county_name', address.county_name);\n setFieldValue('state_abbrev', address.state_abbrev);\n }}\n />\n </FormItem>\n </Col>\n <Col span={24} md={12}>\n <FormItem name=\"unit_number\">\n <label htmlFor=\"unit_number\">{t('confirm_address.labels.unit_number')}</label>\n <Input\n name=\"unit_number\"\n id=\"unit_number\"\n placeholder=\"#\"\n addonBefore={<NumberOutlined />}\n />\n </FormItem>\n </Col>\n </Row>\n <Heading>{t('confirm_address.mailing_address')}</Heading>\n <CheckboxWrapper>\n <Checkbox name=\"same_address\">{t('confirm_address.labels.same_address')}</Checkbox>\n </CheckboxWrapper>\n {!values.same_address && (\n <Row gutter={30}>\n <Col span={24} md={12}>\n <FormItem name=\"mail_address\">\n <label htmlFor=\"mail_address\">{t('confirm_address.labels.address')}</label>\n <AddressInput\n defaultValue={mail_address}\n onChange={address => {\n setFieldValue('mail_address', address.address);\n setFieldValue('mail_city', address.city);\n setFieldValue('mail_zip_code', address.zip_code);\n setFieldValue('mail_county_name', address.county_name);\n setFieldValue('mail_state_abbrev', address.state_abbrev);\n }}\n />\n </FormItem>\n </Col>\n <Col span={24} md={12}>\n <FormItem name=\"mail_unit_number\">\n <label htmlFor=\"mail_unit_number\">\n {t('confirm_address.labels.unit_number')}\n </label>\n <Input\n name=\"mail_unit_number\"\n id=\"mail_unit_number\"\n placeholder=\"#\"\n addonBefore={<NumberOutlined />}\n />\n </FormItem>\n </Col>\n </Row>\n )}\n <SubmitWrapper>\n <ImpactiveButton\n data-testid=\"address-submit\"\n type=\"submit\"\n disabled={isSubmitting || (!isValid && (dirty || submitCount > 0))}\n >\n {t('confirm_address.update_address')}\n </ImpactiveButton>\n </SubmitWrapper>\n <Alert\n style={{ marginTop: 30 }}\n message=\"Submitting this form will not make any changes to your voter registration status, it will only be used by Impactive to help get you the right information you need to vote.\"\n type=\"info\"\n showIcon\n />\n </Form>\n )}\n />\n </FormContainer>\n </VoterRegistrationTemplate>\n );\n};\n\nConfirmAddress.propTypes = {\n location: PropTypes.shape({\n search: PropTypes.string.isRequired,\n }).isRequired,\n match: PropTypes.shape({\n params: PropTypes.shape({\n campaignId: PropTypes.string.isRequired,\n contactId: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n};\n\nexport default ConfirmAddress;\n","import { Button } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport ImpactiveButton from '../../ImpactiveButton';\n\nconst StyledStepButtons = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nfunction StepButtons({ disabled, goBack, goForward, hideForward, hideBackward, buttonType }) {\n const { t } = useTranslation();\n return (\n <StyledStepButtons>\n {!hideBackward && (\n <Button disabled={disabled} type={buttonType} onClick={goBack}>\n {t('contact.sync.go_back')}\n </Button>\n )}\n {!hideForward && (\n <ImpactiveButton disabled={disabled} onClick={goForward}>\n {t('common.next')}\n </ImpactiveButton>\n )}\n </StyledStepButtons>\n );\n}\n\nStepButtons.propTypes = {\n buttonType: PropTypes.string,\n disabled: PropTypes.bool,\n goBack: PropTypes.func.isRequired,\n goForward: PropTypes.func.isRequired,\n hideBackward: PropTypes.bool,\n hideForward: PropTypes.bool,\n};\n\nStepButtons.defaultProps = {\n buttonType: 'primary',\n disabled: false,\n goBack: () => null,\n goForward: () => null,\n hideBackward: false,\n hideForward: false,\n};\n\nexport default StepButtons;\n","import { CloudUploadOutlined } from '@ant-design/icons';\nimport { Button, message } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\n\nimport { toObject, usePaginatedApi } from '../../../hooks/usePaginatedApi';\nimport { users } from '../../../services/api';\nimport ImpactiveButton from '../../ImpactiveButton';\nimport Text from '../../common/Text';\nimport StepButtons from './StepButtons';\n\nconst ButtonWrapper = styled.div`\n display: flex;\n margin-top: 20px;\n justify-content: center;\n`;\n\nconst StepButtonWrapper = styled.div`\n margin-top: 20px;\n display: flex;\n justify-content: center;\n`;\n\nfunction ContactApproval({ contactsToApprove, decrementStep, lockedToCampaign, onSuccess }) {\n const { t } = useTranslation();\n const [approvalLoading, setApprovalLoading] = React.useState(false);\n\n const contactsPaginator = toObject(\n usePaginatedApi(users.getContacts, null, {\n // MTS - We need to pass all:true here because we have to pull all of the user's\n // contacts in order to set the approvals.\n all: true,\n per_page: 750,\n }),\n );\n\n React.useEffect(() => {\n contactsPaginator.loadMore();\n // eslint-disable-next-line\n }, []);\n\n const { items, loading } = contactsPaginator;\n\n function handleApprovals() {\n setApprovalLoading(true);\n const syncItems = items\n .filter(item => item.email)\n .filter(item =>\n contactsToApprove.find(({ email }) => email.toLowerCase() === item.email.toLowerCase()),\n );\n\n const syncIds = syncItems.map(({ id }) => id);\n users\n .updateContactApprovals(syncIds)\n .then(res => {\n setApprovalLoading(false);\n onSuccess();\n })\n .catch(err => {\n setApprovalLoading(false);\n message.error(t('contact.sync.syncing_error'));\n });\n }\n\n const contactCount = contactsToApprove.length;\n const syncButtonText = t('contact.sync.sync_message', {\n count: contactCount,\n });\n const disabled = loading || approvalLoading || contactCount === 0;\n const noContacts = contactCount === 0;\n return (\n <>\n <Text>{noContacts ? t('contact.sync.no_contacts') : t('contact.sync.start')}</Text>\n\n {/* MTS - This is a little weird, but we just reset the steps back to 0 if everything failed */}\n {noContacts && (\n <Button type=\"primary\" onClick={() => decrementStep(3)}>\n {t('common.try_again')}\n </Button>\n )}\n\n {!noContacts && (\n <>\n <ButtonWrapper>\n <ImpactiveButton\n autoFocus\n disabled={disabled}\n icon={<CloudUploadOutlined />}\n loading={loading || approvalLoading}\n onClick={handleApprovals}\n size=\"large\"\n type=\"primary\"\n >\n {syncButtonText}\n </ImpactiveButton>\n </ButtonWrapper>\n <StepButtonWrapper>\n <StepButtons\n disabled={disabled}\n goBack={() => decrementStep(2)}\n buttonType={'link'}\n hideForward\n />\n </StepButtonWrapper>\n </>\n )}\n </>\n );\n}\n\nContactApproval.propTypes = {\n contactsToApprove: PropTypes.array,\n decrementStep: PropTypes.func.isRequired,\n lockedToCampaign: PropTypes.bool.isRequired,\n onSuccess: PropTypes.func.isRequired,\n};\n\nContactApproval.defaultProps = {\n appApproval: false,\n};\n\nexport default ContactApproval;\n","import styled from 'styled-components';\n\nconst SuggestionMessage = styled.div`\n text-align: center;\n font-family: ${({ theme }) => theme.fonts.light};\n color: black;\n margin-top: 2rem;\n padding: 1rem;\n border-top: 2px solid #a9a9a9;\n border-bottom: 2px solid #a9a9a9;\n`;\n\nexport default SuggestionMessage;\n","import { ArrowRightOutlined } from '@ant-design/icons';\nimport { Button, Col, message, Row } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport GoogleLogin from 'react-google-login';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport { authErrorMessage } from '../../../services/google/auth';\n\nimport Text from '../../common/Text';\nimport SuggestionMessage from './SuggestionMessage';\n\nconst GoogleLoginWrapper = styled.div`\n div {\n margin-right: 0 !important;\n }\n span {\n font-size: 16px;\n padding: 0 22px 0 10px !important;\n }\n\n svg {\n vertical-align: middle;\n }\n`;\n\n// Google API keys\nconst GOOGLE_API_KEY = 'AIzaSyDrsis93x3jXGXr7ZtX60BhvNpABBEBrm0';\nconst GOOGLE_CLIENT_ID = '703515819524-3dl462627e8kr6gjrr5026dolkmdq3uq.apps.googleusercontent.com';\nconst GOOGLE_DISCOVERY_DOCS = [\n 'https://www.googleapis.com/discovery/v1/apis/people/v1/rest',\n 'https://www.googleapis.com/discovery/v1/apis/gmail/v1/rest',\n];\n\nfunction GoogleAuthButton({ googleUser, hideText, incrementStep, scopes, setGoogleUser }) {\n const { t } = useTranslation();\n const [gapiLoaded, setGapiLoaded] = React.useState(false);\n const [loading, setLoading] = React.useState(false);\n const [needsReauthentication, setNeedsReauthentication] = React.useState(false);\n\n // MTS - This is kind of hacky but it was the only way I could verify that we wouldn't go to the\n // next step before the APIs are loaded. This fixes a bug in the previous implementation where\n // a user was allowed to click the continue button before authorized.\n React.useEffect(() => {\n const interval = setInterval(() => {\n const { gapi } = window;\n if (\n gapi &&\n gapi.client &&\n gapi.client.people &&\n gapi.client.people.people &&\n gapi.client.people.people.connections &&\n gapi.client.gmail\n ) {\n clearInterval(interval);\n setLoading(false);\n setGapiLoaded(true);\n // eslint-disable-next-line\n }\n }, 500);\n return () => clearInterval(interval);\n // eslint-disable-next-line\n }, []);\n\n const initClient = () => {\n setLoading(true);\n window.gapi.client.init({\n apiKey: GOOGLE_API_KEY,\n clientId: GOOGLE_CLIENT_ID,\n discoveryDocs: GOOGLE_DISCOVERY_DOCS,\n scope: scopes,\n });\n };\n\n const handleClientLoad = () => {\n window.gapi.load('client:auth2', initClient);\n };\n\n const handleGoogleSuccess = response => {\n const { scope } = response.tokenObj;\n const authorizedScopes = scope.split(' ');\n // MTS - Not sure how accurate of a way this is to check the scopes that\n // are authorized. It seems to work locally but there might be a better way.\n\n const scopesNeeded = scopes.split(' ');\n const allScopesApproved = scopesNeeded.reduce((acc, thisScope) => {\n if (!authorizedScopes.find(el => el === thisScope)) {\n return false;\n }\n return acc;\n }, true);\n if (allScopesApproved) {\n handleClientLoad();\n setNeedsReauthentication(false);\n setGoogleUser(response.profileObj);\n } else {\n setNeedsReauthentication(true);\n }\n };\n\n const handleGoogleFailure = response => {\n const { error } = response;\n message.error(authErrorMessage(error));\n setLoading(false);\n };\n\n const googleButtonText = googleUser\n ? t('contact.sync.with_user', { googleUser })\n : t('contact.sync.choose_account');\n const reauthText = t('contact.sync.choose_account');\n\n return (\n <>\n <Row style={{ margin: '1em 0' }}>\n {!hideText && <Text>{t('contact.sync.google_auth_instructions')}</Text>}\n </Row>\n <Row style={{ margin: '1em 0' }}>\n <Col style={{ textAlign: 'center' }}>\n {needsReauthentication && (\n <SuggestionMessage style={{ margin: '0 0 1rem' }}>\n {t('contact.sync.additional_permissions')}\n </SuggestionMessage>\n )}\n <GoogleLoginWrapper>\n <GoogleLogin\n buttonText={needsReauthentication ? reauthText : googleButtonText}\n clientId={GOOGLE_CLIENT_ID}\n disabled={loading}\n scope={scopes}\n onSuccess={handleGoogleSuccess}\n onFailure={handleGoogleFailure}\n isSignedIn\n cookiePolicy=\"single_host_origin\"\n />\n </GoogleLoginWrapper>\n </Col>\n </Row>\n <Row>\n <Col style={{ textAlign: 'center' }}>\n {googleUser && gapiLoaded && (\n <Button autoFocus type=\"primary\" size=\"large\" onClick={incrementStep}>\n {t('common.continue')}\n <ArrowRightOutlined />\n </Button>\n )}\n </Col>\n </Row>\n </>\n );\n}\n\nGoogleAuthButton.propTypes = {\n googleUser: PropTypes.any,\n hideText: PropTypes.bool,\n incrementStep: PropTypes.func.isRequired,\n scopes: PropTypes.string,\n setGoogleUser: PropTypes.func.isRequired,\n};\n\nGoogleAuthButton.defaultProps = {\n hideText: false,\n scopes:\n 'https://www.googleapis.com/auth/contacts.readonly https://www.googleapis.com/auth/contacts.other.readonly https://www.googleapis.com/auth/gmail.send',\n};\n\nexport default GoogleAuthButton;\n","import { Avatar } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { media } from '../../../styles/theme';\n\nconst StyledContact = styled.li`\n align-items: center;\n cursor: ${({ hasCheckbox }) => (hasCheckbox ? 'pointer' : 'initial')};\n display: flex;\n list-style: none;\n padding: 20px;\n\n ${media.sm} {\n padding: 5px;\n }\n`;\n\nconst Checkbox = styled.input`\n margin-right: 10px;\n`;\n\nconst Email = styled.div`\n opacity: 0.8;\n`;\n\nconst Name = styled.span`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 16px;\n`;\n\nconst StyledAvatar = styled(Avatar)`\n ${media.sm} {\n display: none !important;\n }\n`;\n\nconst Right = styled.div`\n display: flex;\n flex-direction: column;\n margin-left: 16px;\n`;\n\nfunction Contact({\n email,\n hasCheckbox,\n disabledCheckbox,\n firstName,\n lastName,\n selected,\n toggleContact,\n}) {\n function getInitials() {\n let first = '';\n let last = '';\n if (firstName) {\n first = firstName[0].toUpperCase();\n }\n if (lastName) {\n last = lastName[0].toUpperCase();\n }\n return first + last;\n }\n\n const name = `${firstName || ''} ${lastName || ''}`;\n return (\n <StyledContact\n hasCheckbox={hasCheckbox}\n onClick={() => toggleContact({ email, name }, selected)}\n >\n {hasCheckbox && (\n <Checkbox\n type=\"checkbox\"\n onChange={() => null}\n checked={selected}\n disabled={disabledCheckbox}\n />\n )}\n <StyledAvatar size={50}>{getInitials()}</StyledAvatar>\n <Right>\n {(firstName || lastName) && <Name>{name}</Name>}\n <Email>{email.toLowerCase()}</Email>\n </Right>\n </StyledContact>\n );\n}\n\nContact.propTypes = {\n disabledCheckbox: PropTypes.bool,\n email: PropTypes.string.isRequired,\n firstName: PropTypes.string,\n hasCheckbox: PropTypes.bool,\n lastName: PropTypes.string,\n selected: PropTypes.bool,\n toggleContact: PropTypes.func,\n};\n\nContact.defaultProps = {\n disabledCheckbox: false,\n firstName: '',\n hasCheckbox: false,\n lastName: '',\n selected: false,\n toggleContact: () => null,\n};\n\nexport default Contact;\n","import styled from 'styled-components';\n\nconst ContactList = styled.ul`\n list-style: none;\n border: 1px solid ${({ theme }) => theme.colors.borderGray};\n border-radius: 5px;\n max-height: ${props => (props.maxHeight ? props.maxHeight : '')};\n padding: 0px;\n overflow-y: auto;\n`;\n\nexport default ContactList;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\n\nimport SuggestionMessage from './SuggestionMessage';\n\nconst StyledListTitle = styled.div`\n p:first-of-type {\n color: ${({ theme }) => theme.colors.black};\n font-size: 1.17em;\n line-height: 1.2;\n margin-top: 10px;\n }\n`;\n\nconst Selected = styled.p`\n color: ${({ theme }) => theme.colors.black};\n margin-top: 16px;\n font-size: 14px;\n opacity: 0.8;\n`;\n\nfunction ListTitle({ contactsType, selectedCount, step, stepDescription }) {\n const { t } = useTranslation();\n const text1 = t('contact.sync.list_title_1', {\n contactsType,\n step,\n });\n\n const text2 = t('contact.sync.list_title_2', {\n contactsType,\n selectedCount,\n });\n\n return (\n <StyledListTitle>\n <p>{text1}</p>\n {stepDescription && (\n <SuggestionMessage style={{ margin: '2rem 0' }}>{stepDescription}</SuggestionMessage>\n )}\n {!stepDescription && <Selected>{stepDescription || text2}</Selected>}\n </StyledListTitle>\n );\n}\n\nListTitle.propTypes = {\n contactsType: PropTypes.oneOf(['Google', 'Gmail']).isRequired,\n selectedCount: PropTypes.number.isRequired,\n step: PropTypes.number.isRequired,\n stepDescription: PropTypes.any,\n};\n\nListTitle.defaultProps = {\n stepDescription: null,\n};\n\nexport default ListTitle;\n","import { Spin } from 'antd';\nimport React from 'react';\n// import PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst StyledLoading = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nfunction Loading() {\n return (\n <StyledLoading>\n <Spin />\n </StyledLoading>\n );\n}\n\nLoading.propTypes = {};\n\nLoading.defaultProps = {};\n\nexport default Loading;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport ImpactiveButton from '../../ImpactiveButton';\n\nconst Button = styled(ImpactiveButton)`\n background: ${({ allSelected, theme }) => (allSelected ? theme.colors.gray : theme.colors.blue)};\n`;\n\nconst StyledSelectAll = styled.div`\n display: flex;\n justify-content: flex-start;\n outline: 0;\n`;\n\nfunction SelectAll({ allSelected, onClick }) {\n const { t } = useTranslation();\n return (\n <StyledSelectAll>\n <Button onClick={onClick}>\n {allSelected ? t('contact.sync.deselect_all') : t('contact.sync.select_all')}\n </Button>\n </StyledSelectAll>\n );\n}\n\nSelectAll.propTypes = {\n allSelected: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n};\n\nSelectAll.defaultProps = {};\n\nexport default SelectAll;\n","const transformConnections = connections => {\n return connections\n .filter(x => x.emailAddresses && x.emailAddresses.length)\n .map(connection => {\n const { photos, names, resourceName, emailAddresses } = connection;\n\n const id = resourceName;\n const photoUrl = (photos && photos.length > 0 && photos[0].url) || null;\n const name = (names && names.length > 0 && names[0].displayName) || null;\n const firstName = (names && names.length > 0 && names[0].givenName) || null;\n const lastName = (names && names.length > 0 && names[0].familyName) || null;\n const email =\n (emailAddresses && emailAddresses.length > 0 && emailAddresses[0].value) || null;\n\n return { emails: [{ email }], firstName, id, lastName, name, photoUrl };\n });\n};\n\nexport { transformConnections };\n","import { message } from 'antd';\nimport React from 'react';\nimport { transformConnections } from '../../../services/google/contacts';\n\nfunction useGoogleContacts(contactsType = 'my') {\n const [contacts, setContacts] = React.useState([]);\n const [loading, setLoading] = React.useState(false);\n\n React.useEffect(() => {\n setLoading(true);\n let promise;\n if (contactsType === 'my') {\n promise = window.gapi.client.people.people.connections.list({\n pageSize: 2000,\n personFields: 'emailAddresses,names,photos',\n resourceName: 'people/me',\n });\n } else if (contactsType === 'other') {\n promise = window.gapi.client.people.otherContacts.list({\n pageSize: 1000,\n readMask: 'emailAddresses,names',\n });\n }\n promise\n .then(response => {\n let contacts;\n if (contactsType === 'my') {\n const { connections } = response.result;\n contacts = (connections && transformConnections(connections)) || [];\n } else if (contactsType === 'other') {\n const { otherContacts: resOtherContacts } = response.result;\n contacts = (resOtherContacts && transformConnections(resOtherContacts)) || [];\n }\n\n if (!contacts || !contacts.length) {\n setLoading(false);\n return;\n }\n setLoading(false);\n setContacts(contacts);\n })\n .catch(response => {\n setLoading(false);\n const {\n error: { message: errorMessage },\n } = response.result;\n message.error(errorMessage);\n });\n }, [contactsType]);\n\n return { contacts, loading };\n}\n\nexport default useGoogleContacts;\n","import React from 'react';\nimport { user } from '../../../services/api';\n\nfunction useUserLocked() {\n const [lockedToCampaign, setLockedToCampaign] = React.useState(false);\n const [loading, setLoading] = React.useState(true);\n React.useEffect(() => {\n user.getProfile().then(({ data }) => {\n const { locked_campaign_contact_selection, locked_campaign_delete_unapproved } = data.data;\n const isLocked = !!(locked_campaign_contact_selection || locked_campaign_delete_unapproved);\n setLockedToCampaign(isLocked);\n setLoading(false);\n });\n }, []);\n return { loading, lockedToCampaign };\n}\n\nexport default useUserLocked;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\n\nimport Contact from './Contact';\nimport ContactList from './ContactList';\nimport ListTitle from './ListTitle';\nimport Loading from './Loading';\nimport SelectAll from './SelectAll';\nimport StepButtons from './StepButtons';\n\nimport useGoogleContacts from './useGoogleContacts';\nimport useUserLocked from './useUserLocked';\n\nconst SelectAndStep = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nfunction GoogleContacts({\n step,\n maxHeight,\n type,\n decrementStep,\n incrementStep,\n selectedContacts,\n setSelectedContacts,\n}) {\n const { t } = useTranslation();\n const [allSelected, setAllSelected] = React.useState(true);\n const { contacts, loading } = useGoogleContacts(type);\n const { lockedToCampaign } = useUserLocked();\n const checkboxesAvailable = lockedToCampaign || type === 'other';\n\n React.useEffect(() => {\n if (!loading && contacts) {\n setSelectedContacts(formatContacts(contacts));\n }\n // eslint-disable-next-line\n }, [contacts, loading]);\n\n function formatContacts(contacts) {\n return contacts.map(({ firstName, lastName, emails }) => ({\n email: emails[0].email,\n firstName,\n lastName,\n }));\n }\n\n function handleToggleContact(contact, selected) {\n if (selected) {\n return setSelectedContacts(selectedContacts.filter(el => el.email !== contact.email));\n }\n return setSelectedContacts(selectedContacts.concat([contact]));\n }\n\n function handleSelectAll() {\n const newAllSelected = !allSelected;\n setSelectedContacts(newAllSelected ? formatContacts(contacts) : []);\n setAllSelected(newAllSelected);\n }\n\n const noContacts = !loading && contacts.length === 0;\n\n if (loading) {\n return <Loading />;\n }\n\n const contactsType = 'Google';\n return (\n <div>\n <ListTitle\n contactsType={contactsType}\n selectedCount={selectedContacts.length}\n step={step}\n stepDescription={noContacts && t('contact.sync.load_contact_error', { contactsType })}\n />\n <ContactList maxHeight={maxHeight}>\n {contacts.map(({ id, firstName, lastName, emails }) => (\n <Contact\n key={id}\n email={emails[0].email}\n firstName={firstName}\n lastName={lastName}\n hasCheckbox={checkboxesAvailable}\n disabledCheckbox={type === 'my'}\n selected={!!selectedContacts.find(el => el.email === emails[0].email)}\n toggleContact={checkboxesAvailable ? handleToggleContact : () => null}\n />\n ))}\n </ContactList>\n <SelectAndStep>\n {!noContacts && checkboxesAvailable && (\n <SelectAll allSelected={allSelected} onClick={handleSelectAll} />\n )}\n <StepButtons hideBackward goBack={decrementStep} goForward={incrementStep} />\n </SelectAndStep>\n </div>\n );\n}\n\nGoogleContacts.propTypes = {\n decrementStep: PropTypes.func.isRequired,\n incrementStep: PropTypes.func.isRequired,\n maxHeight: PropTypes.string,\n selectedContacts: PropTypes.array.isRequired,\n setSelectedContacts: PropTypes.func.isRequired,\n step: PropTypes.number,\n type: PropTypes.string,\n};\n\nGoogleContacts.defaultProps = {\n maxHeight: '',\n step: 1,\n type: 'my',\n};\n\nexport default GoogleContacts;\n","import { CheckOutlined } from '@ant-design/icons';\nimport { Button } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Link } from 'react-router-dom';\nimport styled from 'styled-components';\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst SyncSuccess = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n margin-bottom: 15px;\n`;\n\nconst NiceWork = styled.div`\n margin-bottom: 15px;\n`;\n\nconst SyncToFrontline = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nconst StyledButton = styled(Button)`\n &&& {\n font-family: ${({ theme }) => theme.fonts.semibolditalic};\n }\n`;\n\nfunction ImportSuccess({ count }) {\n const { t } = useTranslation();\n return (\n <Container>\n <SyncSuccess>\n <CheckOutlined style={{ marginRight: 5 }} /> {t('contact.sync.synced_message', { count })}\n </SyncSuccess>\n <NiceWork>{t('contact.sync.nice_work')}</NiceWork>\n <SyncToFrontline>\n <Link to=\"/frontline\">\n <StyledButton type=\"primary\" size=\"large\">\n {t('contact.sync.to_frontline')}\n </StyledButton>\n </Link>\n </SyncToFrontline>\n </Container>\n );\n}\n\nImportSuccess.propTypes = {\n count: PropTypes.number.isRequired,\n};\n\nImportSuccess.defaultProps = {};\n\nexport default ImportSuccess;\n","import styled from 'styled-components';\n\nconst SyncWrapper = styled.div``;\n\nexport default SyncWrapper;\n","import { message } from 'antd';\n// import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Text from 'web/components/common/Text';\nimport { users } from '../../services/api';\nimport AppContainer from '../AppContainer';\nimport AppHeader from '../AppHeader';\nimport ContactApproval from './components/ContactApproval';\nimport GoogleAuthButton from './components/GoogleAuthButton';\nimport GoogleContacts from './components/GoogleContacts';\nimport ImportSuccess from './components/ImportSuccess';\nimport Loading from './components/Loading';\nimport SyncWrapper from './components/SyncWrapper';\n\nimport useUserLocked from './components/useUserLocked';\n\nconst ContactSync = () => {\n const { t } = useTranslation();\n const [currentStep, setCurrentStep] = React.useState(0);\n const [selectedGoogleContacts, setSelectedGoogleContacts] = React.useState([]);\n\n const { lockedToCampaign } = useUserLocked();\n const [googleUser, setGoogleUser] = useState(null);\n\n // We only include contacts.readyonly here. We ask for gmail.send permission\n // in the TextAFriend activity component.\n const scopes = 'https://www.googleapis.com/auth/contacts.readonly';\n\n function incrementStep(steps) {\n const count = Number(steps) || 1;\n return setCurrentStep(currentStep + count);\n }\n\n function decrementStep(steps) {\n const count = Number(steps) || 1;\n setCurrentStep(currentStep - count);\n }\n\n React.useEffect(() => {\n // This step is specifically for loading and is more of a state than a step.\n if (currentStep === 2) {\n syncContacts();\n }\n // eslint-disable-next-line\n }, [currentStep]);\n\n const syncContacts = () => {\n // MTS - In the future you can add gmail contacts here with .concat\n let allContacts = selectedGoogleContacts;\n // backend has a weird requirement for email structure\n allContacts = allContacts.map(contact => ({ ...contact, emails: [{ email: contact.email }] }));\n users\n .uploadEmailContacts(allContacts)\n .then(res => {\n incrementStep();\n })\n .catch(() => {\n message.error(t('errors.unexpected'));\n });\n };\n\n return (\n <>\n <AppHeader title={t('titles.settings')} />\n <AppContainer>\n <SyncWrapper>\n <h3>{t('contact.sync.header')}</h3>\n\n {/* Step 0 */}\n {currentStep === 0 && (\n <>\n <Text>{t('contact.sync.what')}</Text>\n <Text>{t('contact.sync.privacy')}</Text>\n <GoogleAuthButton\n appApproval\n googleUser={googleUser}\n incrementStep={incrementStep}\n scopes={scopes}\n setGoogleUser={user => setGoogleUser(user)}\n />\n </>\n )}\n\n {/* Step 1 - show/select google contacts*/}\n {currentStep === 1 && (\n <GoogleContacts\n decrementStep={decrementStep}\n incrementStep={incrementStep}\n selectedGoogleContacts={selectedGoogleContacts}\n setSelectedGoogleContacts={setSelectedGoogleContacts}\n />\n )}\n\n {/* Step 2 - send all of the contacts to the backend */}\n {currentStep === 2 && <Loading />}\n\n {/* Step 3 - send all of the contacts to the backend */}\n {currentStep === 3 && (\n <ContactApproval\n appApproval\n contactsToApprove={selectedGoogleContacts}\n decrementStep={decrementStep}\n lockedToCampaign={lockedToCampaign}\n onSuccess={incrementStep}\n />\n )}\n\n {/* Step 4 - send all of the contacts to the backend */}\n {currentStep === 4 && <ImportSuccess count={selectedGoogleContacts.length} />}\n </SyncWrapper>\n </AppContainer>\n </>\n );\n};\n\nContactSync.propTypes = {};\n\nexport default ContactSync;\n","import { message } from 'antd';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport styled from 'styled-components';\nimport { users } from '../../../services/api';\nimport Text from '../../common/Text';\nimport ContactApproval from './ContactApproval';\nimport GoogleAuthButton from './GoogleAuthButton';\nimport GoogleContacts from './GoogleContacts';\nimport ImportSuccess from './ImportSuccess';\nimport Loading from './Loading';\nimport SyncWrapper from './SyncWrapper';\n\nimport useUserLocked from './useUserLocked';\n\nconst Header = styled.div`\n color: ${({ theme }) => theme.colors.black};\n font-size: 22px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n margin-bottom: 10px;\n`;\n\nconst PrivacyText = styled.div`\n margin-top: 10px;\n font-size: 10px;\n`;\n\nconst ContactSyncInternal = () => {\n const { t } = useTranslation();\n const [currentStep, setCurrentStep] = React.useState(0);\n const [selectedMyContacts, setSelectedMyContacts] = React.useState([]);\n const [selectedOtherContacts, setSelectedOtherContacts] = React.useState([]);\n const [selectedGmailContacts] = React.useState([]);\n const selectedGoogleContacts = selectedMyContacts.concat(selectedOtherContacts);\n\n const { lockedToCampaign } = useUserLocked();\n const [googleUser, setGoogleUser] = useState(null);\n\n function incrementStep(steps) {\n const count = Number(steps) || 1;\n return setCurrentStep(currentStep + count);\n }\n\n function decrementStep(steps) {\n const count = Number(steps) || 1;\n setCurrentStep(currentStep - count);\n }\n\n React.useEffect(() => {\n if (currentStep === 3) {\n syncContacts();\n }\n // eslint-disable-next-line\n }, [currentStep]);\n\n const syncContacts = () => {\n let allContacts = selectedGoogleContacts.concat(selectedGmailContacts);\n // backend has a weird requirement for email structure\n allContacts = allContacts.map(contact => ({ ...contact, emails: [{ email: contact.email }] }));\n users\n .uploadEmailContacts(allContacts)\n .then(res => {\n incrementStep();\n })\n .catch(() => {\n message.error(t('errors.unexpected'));\n });\n };\n\n // if (checkApprovalLoading) {\n // return <Spin />;\n // }\n\n return (\n <>\n <SyncWrapper>\n <Header>\n {`${currentStep === 2 ? t('contact.sync.header_other') : t('contact.sync.header')}`}\n </Header>\n\n {/* Step 0 */}\n {currentStep === 0 && (\n <>\n <Text>{t('contact.sync.what')}</Text>\n <GoogleAuthButton\n googleUser={googleUser}\n incrementStep={incrementStep}\n setGoogleUser={user => setGoogleUser(user)}\n />\n <PrivacyText>{t('contact.sync.privacy')}</PrivacyText>\n </>\n )}\n\n {/* Step 1 - show/select my google contacts*/}\n {currentStep === 1 && (\n <GoogleContacts\n step={currentStep}\n type=\"my\"\n decrementStep={decrementStep}\n incrementStep={incrementStep}\n selectedContacts={selectedMyContacts}\n setSelectedContacts={setSelectedMyContacts}\n maxHeight=\"calc(70vh - 8rem)\"\n />\n )}\n\n {/* Step 2 - show/select other google contacts*/}\n {currentStep === 2 && (\n <GoogleContacts\n step={currentStep}\n type=\"other\"\n decrementStep={decrementStep}\n incrementStep={incrementStep}\n selectedContacts={selectedOtherContacts}\n setSelectedContacts={setSelectedOtherContacts}\n maxHeight=\"calc(70vh - 8rem)\"\n />\n )}\n\n {/* Step 2 - select gmail contacts*/}\n {/* {currentStep === 2 && (\n <GmailContacts\n decrementStep={decrementStep}\n incrementStep={incrementStep}\n filterEmails={selectedGoogleContacts\n .map(({ email }) => email.toLowerCase())\n .concat([googleUser.email])}\n selectedGmailContacts={selectedGmailContacts}\n setSelectedGmailContacts={setSelectedGmailContacts}\n />\n )} */}\n\n {/* Step 3 - send all of the contacts to the backend */}\n {currentStep === 3 && <Loading />}\n\n {/* Step 4 - send all of the contacts to the backend */}\n {currentStep === 4 && (\n <ContactApproval\n contactsToApprove={selectedGoogleContacts.concat(selectedGmailContacts)}\n decrementStep={decrementStep}\n lockedToCampaign={lockedToCampaign}\n onSuccess={incrementStep}\n />\n )}\n\n {/* Step 5 - send all of the contacts to the backend */}\n {currentStep === 5 && (\n <ImportSuccess count={selectedGoogleContacts.length + selectedGmailContacts.length} />\n )}\n </SyncWrapper>\n </>\n );\n};\n\nContactSyncInternal.propTypes = {};\n\nexport default ContactSyncInternal;\n","import { Modal } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport theme from '../../../styles/theme';\nimport ContactSyncInternal from './ContactSyncInternal';\n\nconst SyncContactsModal = ({ syncContactsModalVisible, setSyncContactsModalVisible }) => {\n return (\n <Modal\n destroyOnClose\n onCancel={() => setSyncContactsModalVisible(false)}\n visible={syncContactsModalVisible}\n maskClosable\n footer={null}\n width={720}\n bodyStyle={{ background: theme.colors.background }}\n >\n <ContactSyncInternal />\n </Modal>\n );\n};\n\nSyncContactsModal.propTypes = {\n setSyncContactsModalVisible: PropTypes.func.isRequired,\n syncContactsModalVisible: PropTypes.bool.isRequired,\n};\n\nexport default SyncContactsModal;\n","import { Formik } from 'formik';\nimport { Form, FormItem, Input, Radio, Select } from 'formik-antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport styled from 'styled-components';\nimport states from 'web/data/states';\nimport * as yup from 'yup';\nimport './voter-search-form.scss';\nimport ImpactiveButton from '../ImpactiveButton';\n\nconst Name = styled.div`\n display: flex;\n flex-wrap: wrap;\n`;\n\nconst Location = styled.div`\n display: flex;\n flex-wrap: wrap;\n align-items: flex-end;\n`;\n\nconst SectionTitle = styled.div`\n color: ${({ theme }) => theme.fonts.black};\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 16px;\n margin-bottom: 10px;\n`;\n\nconst ButtonContainer = styled.div`\n padding-left: 16px;\n`;\n\nconst IdVotersForm = ({\n firstName = '',\n lastName = '',\n isFriend,\n userActivityId,\n activityId,\n campaignId,\n onSubmit,\n}) => {\n const { t } = useTranslation();\n\n const IdVotersFormSchema = yup.object().shape({\n ageRange: yup.string().required(t('idvoters.validation.age')),\n city: yup.string(),\n firstName: yup.string().required(t('idvoters.validation.firstname')),\n lastName: yup.string().required(t('idvoters.validation.lastname')),\n stateAbbv: yup.string().required(t('idvoters.validation.state')),\n zipCode: yup.number(t('idvoters.validation.zip')),\n });\n\n return (\n <Formik\n initialValues={{\n ageRange: '18-255',\n city: '',\n firstName: firstName || '',\n lastName: lastName || '',\n stateAbbv: '',\n zipCode: '',\n }}\n validationSchema={IdVotersFormSchema}\n onSubmit={onSubmit}\n >\n <Form className=\"voter-search-form\">\n <Name>\n <FormItem name=\"firstName\" className=\"form-input px-3\">\n <label htmlFor=\"firstName\">\n <SectionTitle>{t('idvoters.labels.firstname')}</SectionTitle>\n </label>\n <Input name=\"firstName\" placeholder={t('idvoters.labels.firstname')} id=\"firstName\" />\n </FormItem>\n <FormItem name=\"lastName\" className=\"form-input px-3\">\n <label htmlFor=\"lastName\">\n <SectionTitle>{t('idvoters.labels.lastname')}</SectionTitle>\n </label>\n <Input name=\"lastName\" placeholder={t('idvoters.labels.lastname')} id=\"lastName\" />\n </FormItem>\n </Name>\n <FormItem name=\"ageRange\" className=\"px-3 py-2\">\n <label htmlFor=\"ageRange\">\n <SectionTitle>{t('idvoters.labels.age')}</SectionTitle>\n </label>\n <Radio.Group\n className=\"flex-row justify-content-between flex-wrap\"\n id=\"ageRange\"\n name=\"ageRange\"\n defaultValue=\"18-255\"\n buttonStyle=\"solid\"\n >\n <Radio value=\"18-255\">{t('idvoters.labels.age_all')}</Radio>\n <Radio value=\"18-28\">18-28</Radio>\n <Radio value=\"25-35\">25-35</Radio>\n <Radio value=\"30-45\">30-45</Radio>\n <Radio value=\"40-60\">40-60</Radio>\n <Radio value=\"55-150\">{t('idvoters.labels.age_55_up')}</Radio>\n </Radio.Group>\n </FormItem>\n <Location>\n <FormItem name=\"stateAbbv\" className=\"form-input px-3\">\n <label htmlFor=\"stateAbbv\">\n <SectionTitle>{t('idvoters.labels.state')}</SectionTitle>\n </label>\n <Select\n className=\"state-select\"\n name=\"stateAbbv\"\n id=\"state\"\n placeholder={t('idvoters.placeholders.state')}\n showSearch\n filterOption={(input, option) =>\n option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0\n }\n >\n {states.map(({ value, label }) => (\n <Select.Option key={value} value={value}>\n {label}\n </Select.Option>\n ))}\n </Select>\n </FormItem>\n <FormItem name=\"city\" className=\"form-input px-3\">\n <label htmlFor=\"city\">\n <SectionTitle>{t('idvoters.labels.city')}</SectionTitle>\n </label>\n <Input name=\"city\" placeholder={t('idvoters.placeholders.city')} id=\"city\" />\n </FormItem>\n <FormItem name=\"zipCode\" className=\"form-input px-3\">\n <label htmlFor=\"zipCode\">\n <SectionTitle>{t('idvoters.labels.zip')}</SectionTitle>\n </label>\n <Input name=\"zipCode\" placeholder={t('idvoters.labels.zip')} id=\"zipCode\" />\n </FormItem>\n </Location>\n <ButtonContainer>\n <ImpactiveButton htmlType=\"submit\">{t('idvoters.search')}</ImpactiveButton>\n </ButtonContainer>\n <div className=\"my-3 flex-row justify-content-between align-items-center\">\n {!isFriend && activityId && (\n <div className=\"mx-3\">\n <Link\n to={{\n pathname: '/voter/newVoterReport',\n state: {\n activityId,\n campaignId,\n userActivityId,\n },\n }}\n >\n {t('idvoters.add_new')}\n </Link>\n </div>\n )}\n </div>\n </Form>\n </Formik>\n );\n};\n\nIdVotersForm.propTypes = {\n activityId: PropTypes.number,\n campaignId: PropTypes.number,\n firstName: PropTypes.string,\n isFriend: PropTypes.bool,\n lastName: PropTypes.string,\n onSubmit: PropTypes.func.isRequired,\n userActivityId: PropTypes.number,\n};\n\nIdVotersForm.defaultProps = {\n activityId: null,\n campaignId: null,\n firstName: '',\n isFriend: false,\n lastName: '',\n userActivityId: null,\n};\n\nexport default IdVotersForm;\n","import { List } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport './voter-search-list-item.scss';\nimport styled from 'styled-components';\n\nconst { Item } = List;\n\nconst ItemContents = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst Info = styled.div`\n display: flex;\n`;\n\nconst Name = styled.div`\n font-family: ${({ theme }) => theme.fonts.semibold};\n min-width: 120px;\n max-width: 200px;\n margin-right: 10px;\n`;\nconst Location = styled.div`\n min-width: 120px;\n max-width: 200px;\n margin-right: 10px;\n`;\nconst Age = styled.div`\n min-width: 120px;\n max-width: 200px;\n margin-right: 10px;\n color: ${({ theme }) => theme.fonts.gray};\n`;\n\nconst ViewFile = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-family: ${({ theme }) => theme.fonts.semibolditalic};\n border: none;\n background: none;\n padding: 0;\n cursor: pointer;\n :hover {\n opacity: 0.5;\n }\n`;\n\nconst IdVotersListItem = ({\n voter,\n contactId,\n isFriend,\n activityId,\n userActivityId,\n campaignId,\n onListItemClick,\n}) => {\n const { t } = useTranslation();\n const {\n 'vb.tsmart_city': city,\n 'vb.tsmart_first_name': firstName,\n 'vb.tsmart_last_name': lastName,\n 'vb.tsmart_state': state,\n 'vb.voterbase_age': age,\n } = voter;\n\n return (\n <Item>\n <ItemContents>\n <Info>\n <Name>{`${firstName} ${lastName}`}</Name>\n <Location>{`${city}, ${state}`}</Location>\n {!!age && <Age>{t('idvoters.results.years_old', { age })}</Age>}\n </Info>\n </ItemContents>\n <ViewFile\n onClick={() => {\n onListItemClick(voter);\n }}\n >\n {t('idvoters.results.view_file')}\n </ViewFile>\n </Item>\n );\n};\n\nIdVotersListItem.propTypes = {\n activityId: PropTypes.number,\n campaignId: PropTypes.number,\n contactId: PropTypes.number,\n isFriend: PropTypes.bool.isRequired,\n onListItemClick: PropTypes.func.isRequired,\n userActivityId: PropTypes.number,\n voter: PropTypes.shape({\n 'vb.tsmart_city': PropTypes.string,\n 'vb.tsmart_first_name': PropTypes.string,\n 'vb.tsmart_last_name': PropTypes.string,\n 'vb.tsmart_state': PropTypes.string,\n 'vb.voterbase_age': PropTypes.string,\n }).isRequired,\n};\n\nIdVotersListItem.defaultProps = {\n activityId: null,\n campaignId: null,\n contactId: null,\n userActivityId: null,\n};\n\nexport default IdVotersListItem;\n","import { List } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport Note from '../Note';\nimport Loading from '../common/Loading';\nimport IdVotersListItem from './IdVotersListItem';\n\nconst SectionTitle = styled.div`\n font-family: ${({ theme }) => theme.fonts.semibold};\n color: ${({ theme }) => theme.fonts.black};\n font-size: 22px;\n margin-bottom: 10px;\n`;\n\nconst ListContainer = styled.div`\n background-color: white;\n border: 1px solid ${({ theme }) => theme.colors.borderGray};\n border-radius: 5px;\n`;\n\nconst ItemContainer = styled.div`\n border-bottom: 1px solid ${({ theme }) => theme.colors.borderGray};\n padding-left: 15px;\n padding-right: 15px;\n`;\n\n// A list of possible results given certain IdVoters search parameters\n// These results are passed in from the previous page (or you could pass in the form parameters and load them here either way). People may want to sort and filter them in the future so you may need to re-request anyway.\nconst IdVotersList = ({\n loading,\n show,\n voters,\n isFriend,\n userActivityId,\n activityId,\n campaignId,\n contactId = 0,\n onListItemClick,\n}) => {\n const { t } = useTranslation();\n if (!show) return null;\n\n const hasVoters = voters && voters.length > 0;\n\n return (\n <div className=\"voter-search-list p-3\">\n <SectionTitle>{t('idvoters.results.title')}</SectionTitle>\n <ListContainer>\n <List>\n {hasVoters &&\n voters.map(voter => (\n <ItemContainer key={voter.voterbase_id}>\n <IdVotersListItem\n isFriend={isFriend}\n userActivityId={userActivityId}\n activityId={activityId}\n campaignId={campaignId}\n voter={voter}\n contactId={contactId}\n onListItemClick={onListItemClick}\n />\n </ItemContainer>\n ))}\n {loading && <Loading centered />}\n </List>\n </ListContainer>\n\n {!loading && !hasVoters && (\n <Note title={t('idvoters.results.no_results_title')}>\n {t('idvoters.results.no_results_message')}\n </Note>\n )}\n </div>\n );\n};\n\nIdVotersList.propTypes = {\n activityId: PropTypes.number,\n campaignId: PropTypes.number,\n contactId: PropTypes.number,\n isFriend: PropTypes.bool.isRequired,\n loading: PropTypes.bool.isRequired,\n onListItemClick: PropTypes.func.isRequired,\n show: PropTypes.bool.isRequired,\n userActivityId: PropTypes.number,\n voters: PropTypes.arrayOf(PropTypes.shape({})),\n};\n\nIdVotersList.defaultProps = {\n activityId: null,\n campaignId: null,\n contactId: null,\n onListItemClick: null,\n userActivityId: null,\n voters: null,\n};\n\nexport default IdVotersList;\n","import { Modal } from 'antd';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport { users } from '../../services/api';\nimport theme from '../../styles/theme';\nimport IdVotersForm from './IdVotersForm';\nimport IdVotersList from './IdVotersList';\n\nconst StyledModal = styled(Modal)``;\n\nconst HeaderAndDescription = styled.div`\n padding: 0px 16px;\n`;\n\nconst ModalContent = styled.div`\n color: ${({ theme }) => theme.colors.black};\n`;\n\nconst Header = styled.div`\n font-size: 22px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n margin-bottom: 10px;\n`;\n\nconst Description = styled.div`\n font-size: 12px;\n margin-bottom: 20px;\n`;\n\n// Search the national voter file with the following parameters to find possible matches for either a contact or someone you've just met at an event\nconst IdVotersModal = ({\n contact_id,\n firstName,\n lastName,\n activityId,\n userActivityId,\n campaignId,\n setVisibleFn,\n setShowVoterMatchModal,\n setVoter,\n}) => {\n const { t } = useTranslation();\n\n // POST form to get a list of all possible voters, then navigate to search results page to select one. Could also pass the parameters to the search page and POST there since you may want to filter/sort results on the search page.\n // All fields are required\n // Keep in mind: this may be to match a user's contact or it may be to find someone who was just met or it may be used to add someone new who was just met\n const [voters, setVoters] = useState([]);\n const [loadingItems, setLoadingItems] = useState(false);\n const [searched, setSearched] = useState(false);\n\n const handleFormSubmit = async (formData, { setSubmitting }) => {\n setLoadingItems(true);\n setSearched(true);\n await users.searchVoters(formData).then(({ data }) => {\n setVoters(data);\n setSubmitting(false);\n setLoadingItems(false);\n });\n };\n\n const closeModal = () => {\n setVisibleFn(false);\n };\n return (\n <>\n <StyledModal\n bodyStyle={{ background: theme.colors.background }}\n visible\n maskClosable\n onCancel={closeModal}\n footer={null}\n width={700}\n >\n <ModalContent>\n <HeaderAndDescription>\n <Header>{t('idvoters.header')}</Header>\n <Description>{t('inbox.report.description')}</Description>\n </HeaderAndDescription>\n <IdVotersForm\n isFriend={!!contact_id}\n campaignId={campaignId}\n activityId={activityId}\n userActivityId={userActivityId}\n firstName={firstName}\n lastName={lastName}\n onSubmit={handleFormSubmit}\n />\n\n <IdVotersList\n isFriend={!!contact_id}\n campaignId={campaignId}\n activityId={activityId}\n userActivityId={userActivityId}\n loading={loadingItems}\n show={searched}\n voters={voters}\n contactId={contact_id}\n onListItemClick={voter => {\n setShowVoterMatchModal(true);\n setVisibleFn(false);\n setVoter(voter);\n }}\n />\n </ModalContent>\n </StyledModal>\n </>\n );\n};\n\nIdVotersModal.propTypes = {\n activityId: PropTypes.number,\n campaignId: PropTypes.number,\n contact_id: PropTypes.number,\n firstName: PropTypes.string,\n lastName: PropTypes.string,\n setShowVoterMatchModal: PropTypes.func.isRequired,\n setVisibleFn: PropTypes.func.isRequired,\n setVoter: PropTypes.func.isRequired,\n userActivityId: PropTypes.number,\n};\n\nIdVotersModal.defaultProps = {\n activityId: null,\n campaignId: null,\n contact_id: null,\n firstName: null,\n lastName: null,\n userActivityId: null,\n};\n\nexport default IdVotersModal;\n","import dayjs from 'dayjs';\n\nimport I18n from '@web/components/i18n';\nimport { capitalize } from '@web/utils/string';\n\nconst districtParser = (voter, district) => {\n return {\n // localization\n title: I18n.t(`idvoters.voter.district.${district}`),\n // return '' if no voter\n value: !voter\n ? ''\n : // return value if city council\n district === 'city_council'\n ? voter?.[`vb.vf_${district}`]\n : // return value if not city council\n voter?.[`vb.tsmart_${district}`],\n };\n};\n\nexport const getDistrictInfo = voter => [\n districtParser(voter, 'cd'),\n districtParser(voter, 'sd'),\n districtParser(voter, 'hd'),\n districtParser(voter, 'city_council'),\n];\n\nconst getFirstElectionYear = voter => {\n const year = voter?.['first_election_year'] || '';\n\n if (!year) return 0;\n\n return year;\n};\n\nconst generalParser = (voter, year) => {\n const firstElectionYear = getFirstElectionYear(voter);\n\n return {\n // localization\n title: `${year} ${I18n.t('idvoters.voter.match.general')}`,\n // return value if voted\n value: voter?.[`vb.vf_g${year}`]\n ? voter?.[`vb.vf_g${year}`]\n : //if not old enough return na\n firstElectionYear > year\n ? 'na'\n : //if didn't vote return miss\n 'miss',\n };\n};\n\nconst primaryParser = (voter, year) => {\n const firstElectionYear = getFirstElectionYear(voter);\n\n return {\n // localization\n title: `${year} ${I18n.t('idvoters.voter.match.primary')}`,\n // return value if voted\n value: voter?.[`vb.vf_p${year}`]\n ? voter?.[`vb.vf_p${year}`]\n : //if not old enough return na\n firstElectionYear > year\n ? 'na'\n : // if didn't vote return miss\n 'miss',\n };\n};\n\nexport const getVotingRecords = voter => [\n generalParser(voter, 2022),\n primaryParser(voter, 2022),\n generalParser(voter, 2020),\n primaryParser(voter, 2020),\n generalParser(voter, 2018),\n primaryParser(voter, 2018),\n generalParser(voter, 2016),\n primaryParser(voter, 2016),\n generalParser(voter, 2014),\n primaryParser(voter, 2014),\n generalParser(voter, 2012),\n primaryParser(voter, 2012),\n];\n\nexport const getGeneralVotingRecords = voter => [\n generalParser(voter, 2022),\n generalParser(voter, 2020),\n generalParser(voter, 2018),\n generalParser(voter, 2016),\n generalParser(voter, 2014),\n generalParser(voter, 2012),\n];\n\nexport const getPrimaryVotingRecords = voter => [\n primaryParser(voter, 2024),\n primaryParser(voter, 2022),\n primaryParser(voter, 2020),\n primaryParser(voter, 2018),\n primaryParser(voter, 2016),\n primaryParser(voter, 2014),\n primaryParser(voter, 2012),\n];\n\nexport const getFrequency = voter => {\n let frequency = I18n.t('idvoters.voter.tags.infrequent');\n let frequencyPercentage = 0;\n\n if (voter) {\n const votingRecords = getVotingRecords(voter);\n\n const total = votingRecords.length;\n const misses = votingRecords.filter(item => item.value === 'miss').length || 0;\n const ineligible = votingRecords.filter(item => item.value === 'na').length || 0;\n const eligible = total - ineligible;\n const hits = total - misses - ineligible;\n\n frequencyPercentage = hits / eligible;\n\n if (frequencyPercentage > 0.49) {\n frequency = I18n.t('idvoters.voter.tags.frequent');\n }\n\n if (frequencyPercentage > 0.69) {\n frequency = I18n.t('idvoters.voter.tags.super');\n }\n }\n\n return { frequency, frequencyPercentage };\n};\n\nexport const getVoteScorePoint = voter => {\n if (voter) {\n const generalRecords = getGeneralVotingRecords(voter);\n const primaryRecords = getPrimaryVotingRecords(voter);\n\n // if this field is available - that's mean that user voted and we have include 2024 general election\n if (voter['g2024_vote_method']) {\n generalRecords.push({\n title: '2024 General',\n value: 'Y',\n });\n }\n\n const generalRecordsDoubleCounted = [...generalRecords, ...generalRecords];\n\n const allRecords = [...generalRecordsDoubleCounted, ...primaryRecords];\n\n const total = allRecords.length;\n const misses = allRecords.filter(item => item.value === 'miss').length || 0;\n const ineligible = allRecords.filter(item => item.value === 'na').length || 0;\n const eligible = total - ineligible;\n const hits = total - misses - ineligible;\n\n const frequencyPercentage = hits / eligible;\n\n return frequencyPercentage * 5;\n }\n\n return 0;\n};\n\nexport const frequencyTagConverter = frequency => {\n switch (frequency) {\n case I18n.t('idvoters.voter.tags.infrequent'):\n return 'infrequent';\n case I18n.t('idvoters.voter.tags.frequent'):\n return 'frequent';\n case I18n.t('idvoters.voter.tags.super'):\n return 'super';\n case I18n.t('idvoters.voter.tags.unregistered'):\n return 'infrequent';\n case I18n.t('idvoters.voter.tags.never_voted'):\n return 'infrequent';\n default:\n return undefined;\n }\n};\n\nexport const getInfo = (contactFormResult, selectedVoter) => {\n const age =\n Math.abs(dayjs(contactFormResult.date_of_birth, 'YYYY/DD/MM').diff(dayjs(), 'years')) ||\n Math.abs(dayjs(contactFormResult.date_of_birth, 'MM/DD/YYYY').diff(dayjs(), 'years')) ||\n '';\n\n if (selectedVoter && Object.keys(selectedVoter).length !== 0) {\n return {\n address: `${selectedVoter.addressLine1} ${selectedVoter.addressLine2}`,\n age: selectedVoter.age || age || '',\n name: capitalize(selectedVoter.name),\n state: selectedVoter.state,\n zip: selectedVoter.zip,\n };\n }\n\n const address = [\n contactFormResult.address,\n contactFormResult.city,\n contactFormResult.state_abbrev,\n contactFormResult.zip_code,\n ]\n .filter(item => !!item)\n .join(', ');\n\n return {\n address,\n age,\n name: capitalize(`${contactFormResult.first_name} ${contactFormResult.last_name}`),\n state: contactFormResult.state_abbrev,\n zip: contactFormResult.zip_code,\n };\n};\n\nexport const getParty = voter => {\n const party = voter?.['vb.vf_party'] || '';\n\n switch (party) {\n case 'Democrat':\n return {\n icon: 'democrat',\n party: I18n.t('idvoters.voter.tags.democrat'),\n };\n case 'Republican':\n return {\n icon: 'republican',\n party: I18n.t('idvoters.voter.tags.republican'),\n };\n\n default:\n return {\n icon: '',\n party: '',\n };\n }\n};\n\nexport const getVoterInfo = voter => {\n const firstName = voter?.['vb.tsmart_first_name'] || '';\n const secondName = voter?.['vb.tsmart_last_name'] || '';\n const fullName = [firstName, secondName].filter(Boolean).join(' ');\n const city = voter?.['vb.tsmart_city'] || '';\n const state = voter?.['vb.tsmart_state'] || '';\n const address = [city, state].filter(Boolean).join(', ');\n\n return {\n address,\n city,\n firstName,\n fullName,\n secondName,\n state,\n };\n};\n","import { Button, message, Spin, Switch } from 'antd';\nimport TextArea from 'antd/lib/input/TextArea';\nimport { Formik } from 'formik';\nimport { Form, FormItem, Input } from 'formik-antd';\nimport isEmpty from 'lodash/isEmpty';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Redirect } from 'react-router-dom';\nimport styled from 'styled-components';\nimport * as yup from 'yup';\nimport imageElectionCheck from '../../../../assets/images/web/election-check.png';\nimport imageElectionX from '../../../../assets/images/web/election-x.png';\nimport { track } from '../../services/analytics';\nimport { user, userReportApi, users } from '../../services/api';\nimport { sortByDisplayOrderFn } from '../../utils/other';\nimport ImpactiveButton from '../ImpactiveButton';\nimport FilterButton from '../common/FilterButton';\nimport './voter-match.scss';\nimport {\n getVoterInfo,\n getParty,\n getVotingRecords,\n getFrequency,\n frequencyTagConverter,\n} from '@web/utils/getVoterInfo';\n\nconst phoneRegExp =\n /^((\\\\ +[1-9]{1,4}[ \\\\-]*)|(\\\\([0-9]{2,3}\\\\)[ \\\\-]*)|([0-9]{2,4})[ \\\\-]*)*?[0-9]{3,4}?[ \\\\-]*[0-9]{3,4}?$/;\n\nconst NameAndBadLink = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nconst Name = styled.div`\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 16px;\n`;\n\nconst StyledButton = styled(Button)`\n &&& {\n font-family: ${({ theme }) => theme.fonts.blackItalic};\n color: ${({ theme }) => theme.colors.blue};\n text-transform: uppercase;\n }\n`;\n\nconst RecentElections = styled.div`\n font-size: 16px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n`;\n\nconst RecentElectionSection = styled.div`\n margin-bottom: 30px;\n`;\n\nconst ElectionRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n max-width: 60%;\n margin-bottom: 10px;\n`;\n\nconst ElectionName = styled.div`\n font-size: 14px;\n`;\n\nconst StyledElectionImage = styled.img`\n height: 16px;\n width: 16px;\n`;\n\n/**\n * This should show the contact's voter file match using the \"selected_voterbase_id\" column\n * If this is empty, the contact is not matched and there should be a button to find a match which takes the user to the ID Voter Screen\n * Otherwise it should show the labels and the voting history of the contact and some basic details such as name, state, city, age range, and so on\n * There should be a BAD MATCH button that also takes the user to the ID Voter screen\n * The ID voter result will be used to update the contact's selected_voterbase_id.\n *\n * NOTE: this component will show both contact's voter file, and will be used to select voter if contact is passed to it as described above\n */\nconst VoterMatchCore = ({\n contactId,\n voterParams,\n voterbaseId,\n isFriend,\n userActivityId,\n activityId,\n campaignId,\n onBadMatch,\n onSaveMatchFinally,\n redirectIfNoVoterInfo,\n}) => {\n const { t } = useTranslation();\n\n // MTS - It looks like this setContact isn't being used\n // eslint-disable-next-line\n const [contact, setContact] = useState({});\n const [userActivity, setUserActivity] = useState({});\n const [voter, setVoter] = useState({});\n const [loading, setLoading] = useState(true);\n const [userReport, setUserReport] = useState({});\n const { tags = [], custom_fields = [] } = userReport;\n\n const [redirectURL, setRedirectURL] = useState(null);\n const [redirectToVoterForm, setRedirectToVoterForm] = useState(null);\n\n const ReportFormSchema = yup.object().shape({\n email: yup.string().email(t('idvoters.validation.email')).notRequired(),\n phone: yup.string().matches(phoneRegExp, t('idvoters.validation.phone')).notRequired(),\n });\n\n useEffect(() => {\n // if voter params are passed then use that, otherwise fetch voter from the db\n\n if (voterParams) {\n setVoter(voterParams);\n setLoading(false);\n } else {\n users\n .getVoter(contactId, voterbaseId)\n .then(({ data }) => {\n setVoter(data);\n setLoading(false);\n })\n .catch(() => {\n setLoading(false);\n });\n }\n // TODO fetch contact if we need contact info\n\n if (isFriend || !campaignId || !activityId) {\n // don't need report if trying to match contact\n return;\n }\n\n user\n .getUserActivity(userActivityId)\n .then(({ data: { data: userActivity } }) => {\n setUserActivity(userActivity);\n })\n .catch(x => {}); // Noop\n\n userReportApi\n .getBlankReport({ activity_id: activityId, campaign_id: campaignId })\n .then(({ data }) => {\n // strip tags first so that they can be used for POST request updateOutreachReport\n const { campaign_id, taggings, customizations } = data;\n\n const strippedTags = taggings\n .map(tagging => {\n const {\n tag: { id, slug, name, display_order, prompt },\n value,\n } = tagging;\n return { campaign_id, display_order, id, name, prompt, slug, value };\n })\n .sort(sortByDisplayOrderFn);\n\n const strippedFields = customizations\n .filter(customization => customization.custom_field.is_user_reportable !== false)\n .map(customization => {\n const {\n custom_field: { id, name, type, slug, available_values, display_order, prompt },\n value,\n } = customization;\n return {\n available_values,\n campaign_id,\n display_order,\n id,\n name,\n prompt,\n slug,\n type,\n value,\n };\n })\n .sort(sortByDisplayOrderFn);\n\n setUserReport({\n custom_fields: strippedFields,\n tags: strippedTags,\n });\n })\n .catch(err => {\n message.error(t('errors.fetch_outreach_report'));\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isFriend, campaignId, activityId]);\n\n const onSwitchToggle = (selectedSlug, selectionChange) => {\n const updatedTags = tags.map(tag => {\n if (tag.slug !== selectedSlug) {\n return tag;\n }\n return {\n ...tag,\n value: selectionChange,\n };\n });\n\n setUserReport({\n custom_fields,\n tags: updatedTags,\n });\n };\n\n const onCustomFieldTextUpdate = (selectedSlug, e) => {\n const updatedFields = custom_fields.map(field => {\n if (field.slug !== selectedSlug) {\n return field;\n }\n return {\n ...field,\n value: e.target.value,\n };\n });\n\n setUserReport({\n custom_fields: updatedFields,\n tags,\n });\n };\n\n const onCustomFieldSelectUpdate = (selectedSlug, val) => {\n const updatedFields = custom_fields.map(field => {\n if (field.slug !== selectedSlug) {\n return field;\n }\n return {\n ...field,\n value: val,\n };\n });\n\n setUserReport({\n custom_fields: updatedFields,\n tags,\n });\n };\n\n // Post to set_voter to update selected_voterbase_id\n const saveMatch = () => {\n users\n .setVoter(contactId, voter.voterbase_id)\n .then(({ data }) => {\n message.success(`${t('idvoters.voter.match.saved_to_match_contact')} ${data.full_name}`);\n setRedirectURL('/headquarters');\n })\n .catch(() => message.error(t('idvoters.voter.match.could_not_save')))\n .finally(onSaveMatchFinally());\n };\n\n const { firstName, secondName, fullName, address } = getVoterInfo(voter);\n const party = getParty(voter);\n const votingRecords = getVotingRecords(voter);\n const { frequency } = getFrequency(voter);\n const inDistrict = !!contact.in_district;\n\n const onSaveError = () => {\n message.error(t('errors.submit_outreach_report'));\n };\n\n const submitReport = async formData => {\n if (!formData) {\n return;\n }\n\n const newUserReportBody = {\n activity_id: activityId,\n email: formData.email,\n first_name: firstName,\n last_name: secondName,\n phone: formData.phone,\n selected_voterbase_id: voterbaseId,\n };\n\n const userReportRes = await userReportApi\n .findOrCreateReport({ activity_id: activityId, campaign_id: campaignId }, newUserReportBody)\n .catch(err => {\n onSaveError();\n return;\n });\n\n if (!userReportRes || userReportRes.status !== 200) {\n onSaveError();\n return;\n }\n\n const {\n data: { id: newReportId, taggings, customizations },\n } = userReportRes;\n\n let updatedReport = {\n ...newUserReportBody,\n customizations_attributes: customizations.map(cust => {\n const existingCf = custom_fields.find(x => x.id === cust.custom_field_id);\n cust.value = existingCf && existingCf.value;\n const { id, custom_field_id, value } = cust;\n return { custom_field_id, id, value };\n }),\n taggings_attributes: taggings.map(tagging => {\n const existingTag = tags.find(x => x.id === tagging.tag_id);\n tagging.value = existingTag && existingTag.value;\n const { id, tag_id, value } = tagging;\n return { id, tag_id, value };\n }),\n };\n\n await userReportApi\n .update({ campaign_id: campaignId, report_id: newReportId }, updatedReport)\n .catch(err => {\n onSaveError();\n });\n\n const activity = userActivity && userActivity.activity;\n const campaign = activity && activity.campaign;\n track('COMPLETED_ACTIVITY', {\n activity_id: activityId,\n activity_title: activity && activity.title,\n campaign_id: campaign && campaign.id,\n campaign_name: campaign && campaign.name,\n });\n\n await users.sendCanvasserMessagePublic(\n {\n activity_id: activityId,\n campaign_id: campaignId,\n contact_id: null,\n report_id: newReportId,\n user_activity_id: userActivityId,\n },\n updatedReport,\n );\n\n await user.updateUserActivity(userActivityId, { completed: true });\n await user.userActivityAddPerform(userActivityId);\n\n message.success(t('idvoters.voter.outreach_report_sent'));\n setRedirectToVoterForm(true);\n };\n\n // Explicit redirect for when save action is performed\n if (redirectURL) {\n return <Redirect push to={redirectURL} />;\n }\n\n if (redirectToVoterForm) {\n return (\n <Redirect\n push\n to={{\n pathname: '/voters',\n state: {\n activityId,\n campaignId,\n userActivityId,\n },\n }}\n />\n );\n }\n\n if (loading) {\n return (\n <>\n <div>{t('common.loading')}</div>\n <Spin />\n </>\n );\n }\n\n // case when url was opened directly and there is no voter info in location state\n if (redirectIfNoVoterInfo) {\n if (!loading && isEmpty(voter) && isEmpty(contact)) {\n return <Redirect to=\"/frontline\" />;\n }\n }\n\n return (\n <div>\n {/* ***************************** Voter Info **************************************** */}\n <div className=\"voter-match-container flexbox justify-content-center\">\n <div className=\"voter-match-section p-3\">\n <NameAndBadLink>\n <Name>{fullName}</Name>\n <StyledButton onClick={onBadMatch} type=\"link\">\n {t('idvoters.voter.match.bad_match')}\n </StyledButton>\n </NameAndBadLink>\n <div>{address}</div>\n\n {/* ***************************** /Voter Info **************************************** */}\n\n <hr />\n\n {/* ***************************** Voter Tags **************************************** */}\n <div className=\"flex-row flex-wrap\">\n <div className=\"m-2\">\n <FilterButton icon=\"inDistrict\" active={inDistrict} onClick={() => {}}>\n {t('idvoters.voter.tags.in_district')}\n </FilterButton>\n </div>\n\n {party.party && (\n <div className=\"m-2\">\n <FilterButton icon={party.icon} active onClick={() => null}>\n {party.party}\n </FilterButton>\n </div>\n )}\n\n <div className=\"m-2\">\n <FilterButton icon={frequencyTagConverter(frequency)} active onPress={() => null}>\n {frequency}\n </FilterButton>\n </div>\n </div>\n\n {/* ***************************** /Voter Tags **************************************** */}\n\n <hr />\n\n {/* ***************************** Election Attendance ******************************** */}\n\n <RecentElections>{t('idvoters.voter.recent_elections')}</RecentElections>\n <RecentElectionSection>\n {votingRecords.map(\n (vote, index) =>\n // na === not old enough to vote\n vote.value !== 'na' && (\n <ElectionRow key={`${vote}-${index}`}>\n <ElectionName>{vote.title}</ElectionName>\n <StyledElectionImage\n alt=\"election\"\n src={vote.value === 'miss' ? imageElectionX : imageElectionCheck}\n />\n </ElectionRow>\n ),\n )}\n </RecentElectionSection>\n {/* ***************************** /Election Attendance ******************************** */}\n\n {/* ***************************** Outreach Report ******************************** */}\n\n {!isFriend && (\n <Formik\n initialValues={{\n email: '',\n phone: '',\n }}\n validationSchema={ReportFormSchema}\n onSubmit={submitReport}\n >\n {({ errors, touched }) => (\n <Form className=\"voter-search-form\">\n <FormItem name=\"phone\" className=\"form-input px-3\">\n <label htmlFor=\"phone\">{t('idvoters.labels.phone')}</label>\n <Input name=\"phone\" placeholder={t('idvoters.labels.phone')} />\n </FormItem>\n\n <FormItem name=\"email\" className=\"form-input px-3\">\n <label htmlFor=\"email\">{t('idvoters.labels.email')}</label>\n <Input name=\"email\" placeholder={t('idvoters.labels.email')} />\n </FormItem>\n\n <div className=\"p-3\">\n {tags &&\n tags.map(({ name, value, slug, prompt }) => (\n <div className=\"py-2\" key={slug}>\n <span className=\"pr-3\">{prompt || name}</span>\n <Switch\n slug={slug}\n checked={value}\n onChange={(to, e) => onSwitchToggle(slug, to, e)}\n />\n </div>\n ))}\n </div>\n\n <div className=\"px-3 py-2\">\n {custom_fields &&\n custom_fields.map((field, i) => (\n <div className=\"py-2\" key={field.slug}>\n <div className=\"pb-2\">{field.prompt || field.name}</div>\n\n {field.type === 'TextField' && (\n <TextArea\n name={field.slug}\n value={field.value}\n autoSize={{ minRows: 4 }}\n onChange={e => onCustomFieldTextUpdate(field.slug, e)}\n />\n )}\n\n {field.type === 'SelectionField' && (\n <div className=\"flex-row flex-wrap\">\n {field.available_values.map(val => (\n <div key={val} className=\"m-2\">\n <div\n className={`selection-box ${\n field.value === val ? 'selected' : ''\n }`}\n onClick={e => onCustomFieldSelectUpdate(field.slug, val)}\n >\n {val}\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n ))}\n </div>\n\n <div className=\"flex-row justify-content-end m-3\">\n <Button\n type=\"primary\"\n htmlType=\"submit\"\n className=\"w-100\"\n disabled={errors.phone || errors.email}\n >\n {t('common.send_to_campaign')}\n </Button>\n </div>\n </Form>\n )}\n </Formik>\n )}\n\n {/* ***************************** /Outreach Report ******************************** */}\n\n {isFriend && (\n <ImpactiveButton className=\"w-100\" type=\"primary\" onClick={saveMatch}>\n {t('idvoters.voter.save_match')}\n </ImpactiveButton>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nVoterMatchCore.propTypes = {\n activityId: PropTypes.number,\n campaignId: PropTypes.number,\n contactId: PropTypes.number,\n isFriend: PropTypes.bool,\n onBadMatch: PropTypes.func,\n onSaveMatchFinally: PropTypes.func,\n redirectIfNoVoterInfo: PropTypes.bool,\n userActivityId: PropTypes.number,\n voterbaseId: PropTypes.string,\n voterParams: PropTypes.object,\n};\n\nVoterMatchCore.defaultProps = {\n redirectIfNoVoterInfo: false,\n};\n\nexport default VoterMatchCore;\n","import { Modal } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\nimport theme from '../../styles/theme';\n\nimport VoterMatchCore from './VoterMatchCore';\n\nconst StyledModal = styled(Modal)`\n &&& {\n color: ${({ theme }) => theme.colors.black};\n }\n`;\n\nconst VoterMatchModal = ({\n contactId,\n voter: voterParams,\n voterbaseId,\n isFriend,\n userActivityId,\n activityId,\n campaignId,\n setVisibleFn,\n setShowIdVotersModal,\n}) => {\n return (\n <div>\n <StyledModal\n bodyStyle={{ background: theme.colors.background }}\n visible\n maskClosable\n onCancel={() => setVisibleFn(false)}\n footer={null}\n >\n <VoterMatchCore\n contactId={contactId}\n voterParams={voterParams}\n voterbaseId={voterbaseId}\n isFriend={isFriend}\n userActivityId={userActivityId}\n activityId={activityId}\n campaignId={campaignId}\n onBadMatch={() => {\n setVisibleFn(false);\n setShowIdVotersModal(true);\n }}\n onSaveMatchFinally={() => setVisibleFn(false)}\n />\n </StyledModal>\n </div>\n );\n};\n\nVoterMatchModal.propTypes = {\n activityId: PropTypes.number,\n campaignId: PropTypes.number,\n contactId: PropTypes.number,\n isFriend: PropTypes.bool,\n setShowIdVotersModal: PropTypes.func,\n setVisibleFn: PropTypes.func,\n userActivityId: PropTypes.number,\n voter: PropTypes.object,\n voterbaseId: PropTypes.string,\n};\n\nexport default VoterMatchModal;\n","import democratIconImage from '@assets/images/democrat-icon-active.png';\nimport frequentVoterEmoji from '@assets/images/frequent-voter-emoji.png';\nimport inDistrictIconImage from '@assets/images/in-district-icon-active.png';\nimport infrequentVoterEmoji from '@assets/images/infrequent-voter-emoji.png';\nimport republicanIconImage from '@assets/images/republican-icon-active.png';\nimport superVoterEmoji from '@assets/images/super-voter-emoji.png';\nimport inSwingIconImage from '@assets/images/swing-district-icon-active.png';\nimport unknownVoterIcon from '@assets/images/unknown-voter-icon.png';\nimport { Button, message, List } from 'antd';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport { users } from 'web/services/api';\nimport IdVotersModal from '../IdVotersActivity/IdVotersModal';\nimport VoterMatchModal from '../IdVotersActivity/VoterMatchModal';\n\nconst { Item } = List;\n\nconst ContactName = styled.div`\n padding-left: 1em;\n`;\n\nconst Flags = styled.small`\n padding-left: 2em;\n`;\n\nconst Flag = styled.span`\n padding-left: 1em;\n`;\n\nconst Checkbox = styled.input`\n margin: 1em;\n`;\n\nconst ItemContent = styled.div`\n padding-left: 10px;\n display: flex;\n`;\n\nconst StyledButton = styled(Button)`\n &&& {\n font-family: ${({ theme }) => theme.fonts.semibolditalic};\n }\n`;\n\nconst resolveFrequencyIcon = freqency => {\n const sourceByFrequency = {\n 'Frequent Voter': frequentVoterEmoji,\n 'Infrequent Voter': infrequentVoterEmoji,\n 'Never Voted': infrequentVoterEmoji,\n 'Super Voter': superVoterEmoji,\n Unregistered: infrequentVoterEmoji,\n };\n\n return sourceByFrequency[freqency] || unknownVoterIcon;\n};\n\nconst resolveAffilitationIcon = party => {\n const sourceByAffilitation = {\n Democrat: democratIconImage,\n Republican: republicanIconImage,\n };\n\n return sourceByAffilitation[party] || null;\n};\n\nconst ContactListItem = ({\n contact: {\n id,\n first_name: firstName,\n last_name: lastName,\n full_name: fullName,\n email,\n party_affiliation: party,\n voter_frequency: frequency,\n in_district: inDistrict,\n in_swing_district: inSwingDistrict,\n selected_voterbase_id: selectedVoterbaseId,\n invited: _invited,\n },\n hideCheckbox,\n onClickHandler,\n selected = false,\n withSelection = false,\n noLabels = false,\n}) => {\n const { t } = useTranslation();\n const [invited, setInvited] = useState(_invited);\n const [showIdVotersModal, setShowIdVotersModal] = useState(false);\n\n const [showVoterMatchModal, setShowVoterMatchModal] = useState(false);\n const [voter, setVoter] = useState(null);\n\n const handleRecruitClick = async () => {\n if (!invited) {\n await users\n .sendInvite(id)\n .then(res => {\n setInvited(true);\n })\n .catch(() => {\n message.error(t('contacts.failed_to_invite'));\n });\n }\n };\n\n // When a contact is clicked that does not have a match we go to the IdVoter screen\n // to search for them with prefilled name parameters\n const SearchButton = (\n <StyledButton\n type=\"link\"\n onClick={() => {\n setShowIdVotersModal(true);\n }}\n >\n {t('contacts.search')}\n </StyledButton>\n );\n\n // When a contact is clicked that has a match to the voter file, we should go to the voter info page.\n const VoterViewButton = (\n <StyledButton\n type=\"link\"\n onClick={() => {\n setShowVoterMatchModal(true);\n }}\n >\n {t('contacts.see_file')}\n </StyledButton>\n );\n\n const searchOrSeeFileLink = selectedVoterbaseId ? VoterViewButton : SearchButton;\n const partyAffiliationIcon = resolveAffilitationIcon(party);\n const nameToShow =\n firstName || lastName\n ? `${firstName ? firstName.trim() : ''} ${lastName ? lastName.trim() : ''}`\n : email;\n\n if (!nameToShow) return <></>;\n\n return (\n <>\n <Item\n // TODO: Contact should link to FriendVoterReport if identified (when is this?)\n onClick={onClickHandler}\n actions={\n withSelection\n ? [] // no exterenal actions in selection mode\n : [\n searchOrSeeFileLink,\n // MTS - Temporarily removing\n <Button\n type=\"link\"\n disabled={invited}\n onClick={handleRecruitClick}\n style={{ display: 'none' }}\n >\n {invited ? t('contacts.invited') : t('contacts.invite')}\n </Button>,\n ]\n }\n >\n <ItemContent>\n {!hideCheckbox && <Checkbox type=\"checkbox\" readOnly checked={selected} />}\n <img height={22} src={resolveFrequencyIcon(frequency)} alt=\"frequency\" />\n <ContactName>{nameToShow}</ContactName>\n {withSelection && (\n <Flags>\n {!noLabels && partyAffiliationIcon && (\n <Flag>\n <img\n src={partyAffiliationIcon}\n height={16}\n width={16}\n alt=\"party-affiliation-flag\"\n />\n </Flag>\n )}\n {inDistrict && (\n <Flag>\n <img src={inDistrictIconImage} height={16} width={16} alt=\"in-district-flag\" />\n </Flag>\n )}\n {inSwingDistrict && (\n <Flag>\n <img src={inSwingIconImage} height={16} width={16} alt=\"in-swing-district-flag\" />\n </Flag>\n )}\n </Flags>\n )}\n <div style={{ flex: 1 }}></div>\n </ItemContent>\n </Item>\n {showIdVotersModal && (\n <IdVotersModal\n setVisibleFn={setShowIdVotersModal}\n setShowVoterMatchModal={setShowVoterMatchModal}\n setVoter={setVoter}\n isFriend\n contact_id={id}\n firstName={firstName}\n lastName={lastName}\n />\n )}\n\n {showVoterMatchModal && (\n <VoterMatchModal\n setVisibleFn={setShowVoterMatchModal}\n setShowIdVotersModal={setShowIdVotersModal}\n isFriend\n contactId={id}\n voter={voter}\n voterbaseId={selectedVoterbaseId}\n />\n )}\n </>\n );\n};\n\nContactListItem.propTypes = {\n contact: PropTypes.shape({\n email: PropTypes.string,\n first_name: PropTypes.string,\n full_name: PropTypes.string,\n id: PropTypes.number,\n in_district: PropTypes.bool,\n in_swing_district: PropTypes.bool,\n invited: PropTypes.bool,\n last_name: PropTypes.string,\n party_affiliation: PropTypes.string,\n selected_voterbase_id: PropTypes.string,\n voter_frequency: PropTypes.string,\n }).isRequired,\n hideCheckbox: PropTypes.bool,\n noLabels: PropTypes.bool,\n onClickHandler: PropTypes.func,\n selected: PropTypes.bool,\n withSelection: PropTypes.bool,\n};\n\nContactListItem.defaultProps = {\n hideCheckbox: false,\n noLabels: false,\n onClickHandler: undefined,\n selected: false,\n withSelection: false,\n};\n\nexport default ContactListItem;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport { colors, fonts } from '../../styles/theme';\nimport FilterButtonUnstyled from '../common/FilterButton';\n\nconst StyledFilters = styled.div`\n margin: 1em 0 1em 0;\n`;\n\nconst FilterLabel = styled.div`\n font-family: ${fonts.boldItalic};\n font-size: 10px;\n color: ${colors.black};\n letter-spacing: 1px;\n margin-right: 8px;\n opacity: 0.7;\n`;\n\nconst FiltersContainer = styled.div``;\n\nconst FilterButton = styled(FilterButtonUnstyled)`\n width: 150px;\n`;\n\nfunction Filters({ handleFrequencyChange, setUnmatched, unmatched, voterFrequency }) {\n const { t } = useTranslation();\n return (\n <StyledFilters>\n <FilterLabel>{t('filters.filters')}: </FilterLabel>\n <FiltersContainer>\n <FilterButton\n type={voterFrequency === 'super' ? 'primary' : 'default'}\n shape=\"round\"\n icon=\"super\"\n onClick={() => handleFrequencyChange('super')}\n >\n {t('filters.super_voter')}\n </FilterButton>\n <FilterButton\n type={voterFrequency === 'frequent' ? 'primary' : 'default'}\n shape=\"round\"\n icon=\"frequent\"\n onClick={() => handleFrequencyChange('frequent')}\n >\n {t('filters.frequent')}\n </FilterButton>\n <FilterButton\n type={voterFrequency === 'infrequent' ? 'primary' : 'default'}\n shape=\"round\"\n icon=\"infrequent\"\n onClick={() => handleFrequencyChange('infrequent')}\n >\n {t('filters.infrequent')}\n </FilterButton>\n <FilterButton\n type={unmatched ? 'primary' : 'default'}\n shape=\"round\"\n icon=\"unmatched\"\n onClick={() => setUnmatched(!unmatched)}\n >\n {t('filters.unmatched')}\n </FilterButton>\n </FiltersContainer>\n </StyledFilters>\n );\n}\n\nFilters.propTypes = {\n handleFrequencyChange: PropTypes.func.isRequired,\n setUnmatched: PropTypes.func.isRequired,\n unmatched: PropTypes.bool,\n voterFrequency: PropTypes.string,\n};\n\nFilters.defaultProps = {};\n\nexport default Filters;\n","import { Button, Input, List } from 'antd';\nimport debounce from 'lodash/debounce';\nimport React, { useContext, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport InfiniteScroll from 'react-infinite-scroller';\nimport styled from 'styled-components';\n\nimport { useDocumentTitle } from 'web/hooks/useDocumentTitle';\nimport { toObject, usePaginatedApi } from 'web/hooks/usePaginatedApi';\nimport { track } from 'web/services/analytics';\nimport { users } from 'web/services/api';\nimport { AuthContext } from 'web/utils/context';\n\nimport { colors, fonts } from '../../styles/theme';\nimport AppContainer from '../AppContainer';\nimport AppHeader from '../AppHeader';\nimport SyncContactsModal from '../ContactSync/components/SyncContactsModal';\nimport Loading from '../common/Loading';\nimport MaxWidthContainer from '../common/MaxWidthContainer';\nimport Title from '../common/Title';\nimport ContactListItem from './ContactListItem';\nimport Filters from './Filters';\n\nconst ContactsContainer = styled.div`\n padding-left: 24px;\n`;\n\nconst SearchLeft = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst StyledContacts = styled.div`\n min-height: calc(100vh - 63px);\n`;\n\nconst SearchContainer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: right;\n margin-top: 11px;\n margin-bottom: 0px;\n border-bottom-width: 1px;\n border-bottom-color: ${colors.borderGray};\n`;\n\nconst StyledTitle = styled(Title)`\n display: inline;\n`;\n\nconst Description = styled.div`\n color: ${colors.black};\n font-size: 14px;\n`;\n\nconst HeaderAndSearch = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst ResyncContacts = styled(Button)`\n font-family: ${fonts.blackItalic};\n`;\n\nconst NotSyncedMessage = styled.div`\n margin: 20px 0px;\n font-size: 16px;\n`;\n\nconst ItemContent = styled.div`\n ${({ key }) => key % 2 === 0 && `background-color: ${colors.lightGray}`}\n border-radius: 10px;\n`;\n\nconst StyledButton = styled(Button)`\n &&& {\n font-family: ${fonts.semibold};\n border-radius: 12.5px;\n }\n`;\n\nconst Contacts = () => {\n const { t } = useTranslation();\n const { token } = useContext(AuthContext);\n const [foundContacts, setFoundContacts] = React.useState(false);\n const [contactsQuery, setContactsQuery] = React.useState(null);\n const [contactsScrollRef, setContactsScrollRef] = React.useState(null);\n const [shouldLoadContacts, setShouldLoadContacts] = React.useState(true);\n const [voterFrequency, setVoterFrequency] = React.useState(undefined);\n const [unmatched, setUnmatched] = React.useState(undefined);\n\n const [syncContactsModalVisible, setSyncContactsModalVisible] = React.useState(false);\n\n const title = t('titles.contacts');\n useDocumentTitle(title);\n\n // Track the page view\n useEffect(() => {\n track('VIEW_CONTACTS_SCREEN');\n }, []);\n\n const contactsPaginator = toObject(\n usePaginatedApi(users.getContacts, null, {\n search: contactsQuery,\n unmatched: unmatched || undefined,\n voter_frequency: voterFrequency,\n }),\n );\n\n // This prevents a flash of the sync button when searching\n React.useEffect(() => {\n if (!foundContacts && contactsPaginator.items.length > 0) {\n setFoundContacts(true);\n }\n // eslint-disable-next-line\n }, [contactsPaginator.items]);\n\n // Reset pagination on query change, voterFrequency change or unmatched filter change\n React.useEffect(() => {\n contactsPaginator.resetPagination();\n setShouldLoadContacts(true);\n // eslint-disable-next-line\n }, [contactsQuery, voterFrequency, unmatched]);\n\n // Load more contacts if the flag is set\n React.useEffect(() => {\n if (shouldLoadContacts) {\n contactsPaginator.loadMore();\n setShouldLoadContacts(false);\n }\n // eslint-disable-next-line\n }, [shouldLoadContacts]);\n\n // Debounced contact search - delay querying backend while user is still typing\n const debouncedHandleSearch = debounce(e => {\n const { value } = e.target;\n setContactsQuery(value);\n }, 200);\n\n const handleSearch = e => {\n e.persist();\n debouncedHandleSearch(e);\n };\n\n // This will update the search parameters to toggle a filter on or off\n const handleFrequencyChange = frequency => {\n // allow toggling filter off if the same button is pressed again\n const toFrequency = frequency !== voterFrequency ? frequency : undefined;\n setVoterFrequency(toFrequency);\n };\n\n const userNotSynced = !contactsPaginator.loading && !foundContacts;\n\n return (\n <>\n <AppHeader title={title} />\n <AppContainer>\n <MaxWidthContainer>\n <ContactsContainer>\n <HeaderAndSearch>\n <div>\n <div>\n <StyledTitle>{t('contacts.title')}</StyledTitle>\n {!userNotSynced && (\n <ResyncContacts type=\"link\" onClick={() => setSyncContactsModalVisible(true)}>\n {t('contacts.resync')}\n </ResyncContacts>\n )}\n </div>\n <Description>{t('contacts.description')}</Description>\n </div>\n\n {!userNotSynced && (\n <SearchContainer>\n <SearchLeft>\n <Input.Search\n placeholder={t('contacts.search_placeholder')}\n onChange={handleSearch}\n />\n </SearchLeft>\n </SearchContainer>\n )}\n </HeaderAndSearch>\n\n {/* Render Sync button if a user hasn't synced yet */}\n {userNotSynced && (\n <>\n <NotSyncedMessage>{t('contact.sync.what')}</NotSyncedMessage>\n <StyledButton type=\"primary\" onClick={() => setSyncContactsModalVisible(true)}>\n {t('contacts.sync')}\n </StyledButton>\n </>\n )}\n\n {/* User has synced contacts */}\n {!userNotSynced && (\n <StyledContacts>\n <Filters\n handleFrequencyChange={handleFrequencyChange}\n setUnmatched={setUnmatched}\n unmatched={unmatched}\n voterFrequency={voterFrequency}\n />\n\n <div ref={contactsScrollRef}>\n {(token && contactsPaginator.initialLoading) ||\n (contactsPaginator.items && contactsPaginator.items.length > 0 && (\n <InfiniteScroll\n initialLoad={false}\n pageStart={0}\n threshold={0}\n loadMore={contactsPaginator.loadMore}\n hasMore={!contactsPaginator.loading && contactsPaginator.hasMore}\n useWindow\n getScrollParent={() => setContactsScrollRef}\n >\n <List>\n {contactsPaginator.items.map((contact, ix) => (\n <ItemContent key={ix}>\n <ContactListItem key={contact.id} contact={contact} hideCheckbox />\n </ItemContent>\n ))}\n </List>\n {contactsPaginator.loading && <Loading centered />}\n </InfiniteScroll>\n ))}\n </div>\n </StyledContacts>\n )}\n </ContactsContainer>\n {syncContactsModalVisible && (\n <SyncContactsModal\n syncContactsModalVisible={syncContactsModalVisible}\n setSyncContactsModalVisible={setSyncContactsModalVisible}\n />\n )}\n </MaxWidthContainer>\n </AppContainer>\n </>\n );\n};\n\nexport default Contacts;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { useSelector } from 'react-redux';\n\nconst CloseButton = styled.button`\n border: 0;\n background-color: transparent;\n color: black;\n cursor: pointer;\n text-decoration: underline;\n padding: 0;\n`;\n\nconst Details = styled.ul`\n list-style: none;\n margin: 0;\n padding: 0;\n`;\n\nconst Detail = styled.li`\n color: black;\n font-size: 16px;\n margin-bottom: 4px;\n`;\n\nconst Title = styled.p`\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 24px;\n letter-spacing: 0.94px;\n margin-bottom: 0;\n`;\n\nconst StyledContact = styled.div`\n display: flex;\n flex-direction: column;\n padding: 13px 40px 13px;\n width: 100%;\n align-items: flex-start;\n`;\n\nconst Top = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n align-items: flex-start;\n`;\n\nfunction Contact({ activity }) {\n const [detailsOpen, setDetailsOpen] = React.useState(true);\n const { connectedContact } = useSelector(state => state.dialer);\n\n function renderDetail(el) {\n const label = activity?.localized_presented_contact_details[el];\n let text = '';\n try {\n text = connectedContact[el];\n } catch (e) {}\n if (typeof text === 'boolean') {\n text = text.toString();\n }\n if (text) {\n return (\n <Detail key={el}>\n {label}: {text}\n </Detail>\n );\n }\n return null;\n }\n\n if (detailsOpen) {\n return (\n <StyledContact>\n <Top>\n <Title>\n {connectedContact?.first_name} {connectedContact?.last_name}\n </Title>\n <Details style={{ marginTop: 8 }}>\n <Detail>\n {connectedContact?.state_abbrev || 'Unknown State'} |{' '}\n {connectedContact?.party_affiliation || 'Unknown Party Affiliation'}\n </Detail>\n {connectedContact && activity?.presented_contact_details.map(renderDetail)}\n </Details>\n <CloseButton onClick={() => setDetailsOpen(false)}>Hide details</CloseButton>\n </Top>\n </StyledContact>\n );\n }\n\n return (\n <StyledContact>\n <Top>\n <Title>\n {connectedContact?.first_name} {connectedContact?.last_name}\n </Title>\n </Top>\n <CloseButton onClick={() => setDetailsOpen(true)}>Show details</CloseButton>\n </StyledContact>\n );\n}\n\nContact.propTypes = {\n activity: PropTypes.object.isRequired,\n};\n\nContact.defaultProps = {};\n\nexport default Contact;\n","import PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nfunction getColor(color, theme) {\n switch (color) {\n case 'darkBlue':\n return theme.colors.darkBlue;\n case 'yellow':\n return '#E8BC72';\n case 'teal':\n return theme.colors.darkTeal;\n case 'red':\n return '#E37D70';\n default:\n return theme.colors.darkBlue;\n }\n}\n\nconst StatusBar = styled.div`\n align-items: center;\n background-color: ${({ bgColor, theme }) => getColor(bgColor, theme)};\n color: white;\n display: flex;\n font-family: ${({ theme }) => theme.fonts.black};\n font-size: 14px;\n height: 70px;\n justify-content: space-between;\n letter-spacing: 1.2px;\n padding: 24px;\n text-transform: uppercase;\n`;\n\nStatusBar.propTypes = {\n bgColor: PropTypes.oneOf(['darkBlue', 'red', 'teal', 'yellow']),\n};\n\nStatusBar.defaultProps = {\n bgColor: 'darkBlue',\n};\n\nexport default StatusBar;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { PhoneFilled } from '@ant-design/icons';\n\nconst StyledTextWithIcon = styled.div`\n align-items: center;\n display: flex;\n`;\n\nconst Title = styled.span`\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.black};\n font-size: 14px;\n margin-left: 12px;\n text-align: center;\n text-transform: uppercase;\n`;\n\nfunction TextWithIcon({ children }) {\n const iconProps = { fontSize: 10, marginTop: 1, transform: 'rotate(90deg)' };\n return (\n <StyledTextWithIcon>\n <PhoneFilled style={iconProps} /> <Title>{children}</Title>\n </StyledTextWithIcon>\n );\n}\n\nTextWithIcon.propTypes = {\n children: PropTypes.any,\n};\n\nTextWithIcon.defaultProps = {\n children: null,\n};\n\nexport default TextWithIcon;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Contact from '../Contact';\nimport StatusBar from '../StatusBar';\nimport TextWithIcon from '../TextWithIcon';\n\nconst Content = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n`;\n\nfunction CallEnded({ activity }) {\n return (\n <>\n <StatusBar bgColor=\"red\">\n <TextWithIcon>Call Ended</TextWithIcon>\n </StatusBar>\n <Content>\n <Contact activity={activity} />\n </Content>\n </>\n );\n}\n\nCallEnded.propTypes = {\n activity: PropTypes.object.isRequired,\n};\n\nCallEnded.defaultProps = {};\n\nexport default CallEnded;\n","import styled from 'styled-components';\n\nexport const Body = styled.p`\n color: ${({ theme }) => theme.colors.darkBlue};\n font-size: 16px;\n text-align: center;\n`;\n\nexport const Title = styled.h2`\n color: ${({ theme }) => theme.colors.darkBlue};\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 24px;\n line-height: 34px;\n text-align: center;\n`;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { keyframes } from 'styled-components';\n\nconst blink = keyframes`\n 0% {\n opacity: 0.2;\n }\n 20% {\n opacity: 1;\n }\n 100% {\n opacity: 0.2;\n }\n`;\n\nconst Dot = styled.div`\n background-color: ${({ $color, theme }) => theme.colors[$color]};\n border-radius: ${({ $size }) => $size / 2}px;\n height: ${({ $size }) => $size}px;\n margin: 0 ${({ $size }) => $size / 4}px;\n width: ${({ $size }) => $size}px;\n`;\n\nconst StyledDotLoader = styled.div`\n display: inline-flex;\n div {\n animation-duration: 1.2s;\n animation-fill-mode: both;\n animation-iteration-count: infinite;\n animation-name: ${blink};\n }\n div:nth-child(2) {\n animation-delay: 0.2s;\n }\n div:nth-child(3) {\n animation-delay: 0.4s;\n }\n`;\n\nconst Centered = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nfunction DotLoader({ centered, centeredStyle, color, size, ...rest }) {\n const dots = ['', '', ''];\n\n const dotLoader = (\n <StyledDotLoader {...rest}>\n {dots.map((el, i) => (\n <Dot $color={color} key={i} $size={size} />\n ))}\n </StyledDotLoader>\n );\n\n if (centered) {\n return <Centered centeredStyle={centeredStyle}>{dotLoader}</Centered>;\n }\n\n return dotLoader;\n}\n\nDotLoader.propTypes = {\n centered: PropTypes.bool,\n centeredStyle: PropTypes.object,\n color: PropTypes.string,\n size: PropTypes.number,\n};\n\nDotLoader.defaultProps = {\n centered: false,\n centeredStyle: {},\n color: 'white',\n size: 8,\n};\n\nexport default DotLoader;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport DotLoader from '@web/components/DotLoader';\n\nconst StyledStatusBarButton = styled.button`\n align-items: center;\n background-color: ${({ $bgColor }) => $bgColor};\n border: none;\n border-radius: 12px;\n cursor: ${({ disabled, $loading }) => (disabled || $loading ? 'not-allowed' : 'pointer')};\n display: inline-flex;\n height: 24px;\n justify-content: center;\n min-width: 70px;\n padding: 0 20px;\n`;\n\nconst Text = styled.span`\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.blackItalic};\n font-size: 10.5px;\n letter-spacing: 1.15px;\n text-transform: uppercase;\n`;\n\nfunction StatusBarButton({ bgColor, children, loading, ...rest }) {\n function getColor() {\n switch (bgColor) {\n case 'yellow':\n return '#D89B35';\n case 'darkBlue':\n return '#0F1423';\n case 'teal':\n return '#4299A4';\n default:\n return '#D89B35';\n }\n }\n return (\n <StyledStatusBarButton $bgColor={getColor()} $loading={loading} {...rest}>\n {loading ? <DotLoader /> : <Text>{children}</Text>}\n </StyledStatusBarButton>\n );\n}\n\nStatusBarButton.propTypes = {\n bgColor: PropTypes.oneOf(['darkBlue', 'teal', 'yellow']),\n children: PropTypes.any,\n loading: PropTypes.bool.isRequired,\n};\n\nStatusBarButton.defaultProps = {\n bgColor: 'darkBlue',\n children: null,\n loading: false,\n};\n\nexport default StatusBarButton;\n","import * as React from 'react';\nimport axios from 'axios';\n\nimport { message } from 'antd';\n\nimport { addBreadcrumb } from '@web/utils/sendError';\nimport {\n connectingToVoter,\n OUT_OF_SYNC_VOTER_HANG_UP,\n} from '@web/reducers/dialerReducer/dialerMachine';\nimport { machineTransition } from '@web/reducers/dialerReducer';\nimport sendError from '@web/utils/sendError';\nimport { useDispatch, useSelector } from 'react-redux';\n\n// MTS - The purpose of this hook is to add a layer of protection\n// around the hang up transitions during periods of high latency in\n// order to prevent hanging up on a current voter via a previous\n// voter's hang up event. Further explaination can be found here:\n// https://github.com/outvote/web-app/issues/7327\n\nfunction useHangUp() {\n const dispatch = useDispatch();\n const { activityId, currentState, voter_call_id } = useSelector(state => state.dialer);\n const currentStateRef = React.useRef(null);\n\n // MTS - This is absolutely required. For some reason I am receiving stale values\n // for currentState. I've tried modifying the function to use `React.useCallback`\n // as well as passing the `currentState` from the component that called the function.\n React.useEffect(() => {\n currentStateRef.current = currentState;\n }, [currentState]);\n\n async function handleHangUp(transition, voterCallId) {\n if (voter_call_id && voter_call_id !== voterCallId) {\n sendError('Dialer - Invalid hang up prevented', {\n currentState: currentStateRef.current,\n voter_call_id,\n voterCallId,\n });\n return null;\n }\n\n // it is safe to let this pass through\n return dispatch(machineTransition(transition));\n }\n\n async function handleVoterHangUp(transition, voterCallId) {\n // For details on this check please see: https://github.com/outvote/web-app/issues/7561\n if (currentStateRef?.current === connectingToVoter) {\n const conferenceIdle = await checkConferenceIdle();\n if (conferenceIdle) {\n addBreadcrumb({\n category: 'Dialer',\n message:\n 'Attempting to recover from voter_left while in connectingToVoter -- missed voter_joined event',\n });\n // Further details can be found in this comment:\n // https://github.com/outvote/web-app/issues/7561#issuecomment-1095360091\n handleHangUp(OUT_OF_SYNC_VOTER_HANG_UP, voterCallId);\n return message.error(\n 'We had a connection issue with the server. Please try queuing another call.',\n );\n } else {\n sendError(\n 'Dialer | The conference is not in an idle state after missing the voter_joined event.',\n );\n return handleHangUp(OUT_OF_SYNC_VOTER_HANG_UP, voterCallId);\n }\n } else {\n // Let the hangup go through\n return handleHangUp(transition, voterCallId);\n }\n }\n\n async function checkConferenceIdle() {\n try {\n const url = `/api/v2/activities/${activityId}/volunteer_conference`;\n const result = await axios(url);\n const conferenceState = result?.data?.state;\n addBreadcrumb({\n category: 'Dialer',\n message: `Current conference state: ${conferenceState}`,\n });\n return conferenceState === 'idle';\n } catch (err) {\n return false;\n }\n }\n\n return { checkConferenceIdle, handleHangUp, handleVoterHangUp };\n}\n\nexport default useHangUp;\n","import * as React from 'react';\n\nfunction useIsMounted() {\n const isMountedRef = React.useRef(true);\n const isMounted = React.useCallback(() => isMountedRef.current, []);\n\n React.useEffect(() => {\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n return isMounted;\n}\n\nexport default useIsMounted;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\nimport sendError, { addBreadcrumb } from '@web/utils/sendError';\n\nimport { message } from 'antd';\nimport StatusBarButton from '../StatusBarButton';\n\nimport { connectingToVoter, VOLUNTEER_HANG_UP } from '@web/reducers/dialerReducer/dialerMachine';\nimport { machineTransition } from '@web/reducers/dialerReducer';\nimport useHangUp from '@web/components/DialerActivity/pages/InCall/useHangUp';\nimport useIsMounted from '@web/hooks/useIsMounted';\nimport { useDispatch, useSelector } from 'react-redux';\n\nfunction HangUpButton({ bgColor }) {\n const dispatch = useDispatch();\n const [loading, setLoading] = React.useState(false);\n const { callData, currentState, voter_call_id } = useSelector(state => state.dialer);\n const { checkConferenceIdle, handleHangUp } = useHangUp();\n const isMounted = useIsMounted();\n\n const callIdRef = React.useRef(voter_call_id);\n const currentStateRef = React.useRef(currentState);\n\n // Necessary to prevent stale values\n React.useEffect(() => {\n callIdRef.current = voter_call_id;\n currentStateRef.current = currentState;\n }, [currentState, voter_call_id]);\n\n function hangUp() {\n if (loading) {\n return;\n }\n // This is the volunteer call id\n const callId = callData?.call_id;\n // MTS - I need to keep track of the value at the time the function was called not\n // the current value, which could be different.\n const voterCallId = callIdRef?.current;\n setLoading(true);\n const url = `/api/v2/volunteer_voice_calls/${callId}/voter_voice_call`;\n axios\n .delete(url)\n .then(res => {\n handleHangUp(VOLUNTEER_HANG_UP, voterCallId);\n })\n .catch(async err => {\n // See https://github.com/outvote/web-app/issues/7561 for details\n if (err?.response?.status === 422 && currentStateRef?.current === connectingToVoter) {\n const conferenceIdle = await checkConferenceIdle();\n // The user is in an out of sync state with the backend and we need to transition them\n // back to idle\n if (conferenceIdle) {\n addBreadcrumb({\n category: 'dialer',\n message:\n 'Dialer - Transitioning user back to idle from 422 hang up in connectingToVoter',\n });\n return dispatch(machineTransition(VOLUNTEER_HANG_UP));\n }\n }\n\n sendError('Dialer - Unable to hang up call', {\n request: err?.request,\n response: err?.response,\n });\n\n // MTS - Only show the error message if the component is still mounted\n if (isMounted()) {\n message.error('An error occurred while hanging up the call. Please try again.');\n }\n })\n .finally(() => {\n if (isMounted()) {\n setLoading(false);\n }\n });\n }\n\n return (\n <StatusBarButton bgColor={bgColor} disabled={loading} loading={loading} onClick={hangUp}>\n Hang Up\n </StatusBarButton>\n );\n}\n\nHangUpButton.propTypes = {\n bgColor: PropTypes.string.isRequired,\n loading: PropTypes.bool,\n};\n\nHangUpButton.defaultProps = {\n bgColor: 'yellow',\n loading: false,\n};\n\nexport default HangUpButton;\n","import * as React from 'react';\n// import PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Body, Title } from '@web/components/DialerActivity/components/TextStyles';\nimport HangUpButton from '../HangUpButton';\nimport StatusBar from '../StatusBar';\nimport TextWithIcon from '../TextWithIcon';\n\nimport { useSelector } from 'react-redux';\n\nconst Teal = styled.span`\n &&& {\n color: ${({ theme }) => theme.colors.teal};\n font-family: ${({ theme }) => theme.fonts.bold};\n }\n`;\n\nconst Content = styled.div`\n padding: 37px 34px;\n`;\n\nfunction ConnectingVoter() {\n const waitTime = useSelector(state => state.dialer.waitTime);\n\n function getWait() {\n if (Number.isInteger(waitTime) && waitTime > 0) {\n let mins = 0;\n const secs = waitTime % 60;\n if (waitTime > 59) {\n mins = Math.floor(waitTime / 60);\n }\n return `${mins}:${`0${secs}`.slice(-2)}`;\n }\n return false;\n }\n\n const formattedWaitTime = getWait();\n\n return (\n <>\n <StatusBar bgColor=\"yellow\">\n <TextWithIcon>Connecting</TextWithIcon>\n <HangUpButton />\n </StatusBar>\n <Content>\n <Title>We are connecting you with the next contact.</Title>\n {formattedWaitTime && (\n <Body>\n Average Wait Time: <Teal>{formattedWaitTime}</Teal>\n </Body>\n )}\n </Content>\n </>\n );\n}\n\nConnectingVoter.propTypes = {};\n\nConnectingVoter.defaultProps = {};\n\nexport default ConnectingVoter;\n","import * as React from 'react';\n// import PropTypes from 'prop-types';\nimport { Title } from '@web/components/DialerActivity/components/TextStyles';\n\nfunction PhoneBankEnded() {\n return <Title>The phone bank has ended.</Title>;\n}\n\nPhoneBankEnded.propTypes = {};\n\nPhoneBankEnded.defaultProps = {};\n\nexport default PhoneBankEnded;\n","import * as React from 'react';\n// import PropTypes from 'prop-types';\n\nimport { Body, Title } from '@web/components/DialerActivity/components/TextStyles';\n\nfunction PhoneBankNotStarted() {\n return (\n <>\n <Title>This phone bank has not yet started.</Title>\n <Body style={{ marginTop: 16 }}>\n Once the phone bank begins you will be able to make a call.\n </Body>\n </>\n );\n}\n\nPhoneBankNotStarted.propTypes = {};\n\nPhoneBankNotStarted.defaultProps = {};\n\nexport default PhoneBankNotStarted;\n","import * as React from 'react';\n// import PropTypes from 'prop-types';\n\nimport { Body, Title } from '@web/components/DialerActivity/components/TextStyles';\n\nfunction PhoneBankPaused() {\n return (\n <>\n <Title>Your phone bank admin has paused the phone bank.</Title>\n <Body style={{ marginTop: 16 }}>\n Please contact them to find out when it will resume again.\n </Body>\n </>\n );\n}\n\nPhoneBankPaused.propTypes = {};\n\nPhoneBankPaused.defaultProps = {};\n\nexport default PhoneBankPaused;\n","import * as React from 'react';\n// import PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport StatusBar from '../StatusBar';\n\nconst BannerText = styled.span`\n color: white;\n font-family: ${({ theme }) => theme.fonts.black};\n font-size: 14px;\n letter-spacing: 1.2px;\n text-transform: uppercase;\n`;\n\nfunction SessionEnded() {\n return (\n <StatusBar bgColor=\"red\">\n <BannerText>Session Ended</BannerText>\n </StatusBar>\n );\n}\n\nSessionEnded.propTypes = {};\n\nSessionEnded.defaultProps = {};\n\nexport default SessionEnded;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport { Spinner } from '@web/components/common/Loading';\n\nimport styled, { css } from 'styled-components';\n\nconst variants = {\n gray: {\n bgColor: 'transparent',\n color: 'rgba(35, 41, 62, .5)', // darkblue with opacity\n },\n outline: {\n bgColor: '#F4F4F4',\n color: '#93969F', // gray\n },\n primary: {\n bgColor: 'darkBlue',\n color: 'white',\n },\n secondary: {\n bgColor: 'transparent',\n color: 'red',\n },\n teal: {\n bgColor: 'darkTeal',\n color: 'white',\n },\n};\n\nconst outline = css`\n background-color: ${({ theme }) => theme.colors.whiteSmoke};\n text-decoration-color: rgba(147, 150, 159, 0);\n &&& {\n color: #93969f;\n border: 1px solid #93969f;\n }\n :hover {\n text-decoration-color: rgba(147, 150, 159, 1);\n }\n`;\n\nconst gray = css`\n background-color: transparent;\n text-decoration-color: rgba(35, 41, 62, 0);\n &&& {\n color: rgba(35, 41, 62, 0.5);\n }\n :hover {\n text-decoration-color: rgba(35, 41, 62, 0.5);\n }\n`;\n\nconst primary = css`\n background-color: ${({ theme }) => theme.colors.darkBlue};\n text-decoration-color: rgba(255, 255, 255, 0);\n &&& {\n color: ${({ theme }) => theme.colors.white};\n }\n :hover {\n text-decoration-color: rgba(255, 255, 255, 1);\n }\n`;\n\nconst secondary = css`\n background-color: transparent;\n &&& {\n color: ${({ theme }) => theme.colors.red};\n }\n text-decoration-color: rgba(228, 72, 82, 0);\n :hover {\n text-decoration-color: rgba(228, 72, 82, 1);\n }\n`;\n\nconst teal = css`\n background-color: ${({ theme }) => theme.colors.darkTeal};\n text-decoration-color: rgba(255, 255, 255, 0);\n &&& {\n color: ${({ theme }) => theme.colors.white};\n }\n :hover {\n text-decoration-color: rgba(255, 255, 255, 1);\n }\n`;\n\nconst StyledButton = styled.button`\n align-items: center;\n border: none;\n border-radius: 2px;\n display: flex;\n font-family: ${({ theme }) => theme.fonts.boldItalic};\n font-size: 16px;\n height: 44px;\n justify-content: center;\n letter-spacing: 1.4px;\n padding: 0 16px;\n text-decoration: underline;\n transition: text-decoration-color 150ms;\n white-space: nowrap;\n ${({ $variant }) => $variant} :hover {\n cursor: pointer;\n }\n :disabled {\n cursor: not-allowed;\n opacity: 0.7;\n }\n`;\n\nfunction Button(props) {\n const { children, loading, style, to, variant, ...rest } = props;\n\n function getVariantStyles() {\n switch (props.variant) {\n case 'primary':\n return primary;\n case 'secondary':\n return secondary;\n case 'gray':\n return gray;\n case 'teal':\n return teal;\n case 'outline':\n return outline;\n default:\n return primary;\n }\n }\n\n const buttonProps = {\n $variant: getVariantStyles(),\n as: to ? Link : 'button',\n // MTS - This prevents a bug where the text decoration is blue\n style: to ? { color: variants[props.variant].color, ...style } : style,\n to: to || undefined,\n ...rest,\n };\n\n const loadingColor = variants[props.variant].color;\n return (\n <StyledButton {...buttonProps}>\n {loading ? <Spinner color={loadingColor} /> : children}\n </StyledButton>\n );\n}\n\nButton.propTypes = {\n children: PropTypes.any.isRequired,\n loading: PropTypes.bool,\n style: PropTypes.object,\n to: PropTypes.string,\n variant: PropTypes.oneOf(['gray', 'outline', 'primary', 'secondary', 'teal']),\n};\n\nButton.defaultProps = {\n loading: false,\n style: {},\n to: null,\n variant: 'primary',\n};\n\nexport default Button;\n","import * as React from 'react';\n// import PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport dayjs from 'dayjs';\n\nimport { useSelector } from 'react-redux';\n\nconst StyledElapsed = styled.span`\n color: #929cbb;\n`;\n\nfunction Elapsed() {\n const { sessionStartTime } = useSelector(state => state.dialer);\n const [elapsed, setElapsed] = React.useState(null);\n const startTime = sessionStartTime || dayjs();\n\n React.useEffect(() => {\n const interval = setInterval(() => {\n const diffMs = dayjs().diff(startTime);\n setElapsed(hms(diffMs / 1000));\n }, 1000);\n return () => clearInterval(interval);\n // eslint-disable-next-line\n }, [sessionStartTime]);\n\n function hms(secs) {\n var hours = Math.floor(secs / (60 * 60));\n\n var divisorForMinutes = secs % (60 * 60);\n var minutes = Math.floor(divisorForMinutes / 60);\n\n var divisorForSeconds = divisorForMinutes % 60;\n var seconds = Math.ceil(divisorForSeconds);\n\n var obj = {\n h: hours,\n m: `0${minutes.toString()}`.slice(-2),\n s: `0${seconds.toString()}`.slice(-2),\n };\n return obj;\n }\n\n return <StyledElapsed>{elapsed && ` ${elapsed?.h}:${elapsed?.m}:${elapsed?.s}`}</StyledElapsed>;\n}\n\nElapsed.propTypes = {};\n\nElapsed.defaultProps = {};\n\nexport default Elapsed;\n","import * as React from 'react';\nimport axios from 'axios';\n\nimport { message } from 'antd';\nimport Pusher from 'pusher-js';\nimport sendError, { addBreadcrumb } from '@web/utils/sendError';\nimport { setWaitTime } from '@web/reducers/dialerReducer';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport { machineTransition } from '@web/reducers/dialerReducer';\nimport {\n QUEUE_CALL_ERROR,\n QUEUE_NEXT_CALL,\n VOLUNTEER_NOT_CONNECTED,\n} from '@web/reducers/dialerReducer/dialerMachine';\n\nfunction useQueueCall(activityId) {\n const pusherRef = React.useRef(null);\n const dispatch = useDispatch();\n const { callData } = useSelector(state => state.dialer);\n\n const [loading, setLoading] = React.useState(false);\n\n React.useEffect(() => {\n pusherRef.current = new Pusher(process.env.PUSHER_APP_KEY, {\n cluster: process.env.PUSHER_APP_CLUSTER,\n });\n }, []);\n\n // Only queue the call if the volunteer is indeed connected\n function queueCallIfConnected() {\n // first make sure that we are connected to Pusher\n const pusherState = pusherRef?.current?.connection?.state;\n if (pusherState !== 'connected') {\n addBreadcrumb({\n category: 'Dialer',\n message: `Prevented queueCall due to Pusher state: ${pusherState}`,\n });\n return message.error(\n 'There is an issue connecting to the server. Please wait a few moments and try again.',\n );\n }\n\n setLoading(true);\n const url = `/api/v2/activities/${activityId}/volunteer_conference`;\n axios(url)\n .then(({ data }) => {\n const volunteerConnected = data?.volunteer_voice_call?.state === 'in_progress';\n if (volunteerConnected) {\n return queueCall();\n } else {\n setLoading(false);\n return dispatch(machineTransition(VOLUNTEER_NOT_CONNECTED));\n }\n })\n .catch(err => {\n setLoading(false);\n if (err?.response?.status === 404) {\n return dispatch(machineTransition(VOLUNTEER_NOT_CONNECTED));\n } else {\n sendError('Dialer Web - Unable to check volunteer connection status', err);\n message.error('Unable to retrieve connection status at this time. Please try again.');\n }\n });\n }\n\n async function queueCall() {\n // MTS - We still want to queue the call whether or not the authorize request\n // is successful.\n await authorize();\n const url = `/api/v2/volunteer_voice_calls/${callData?.call_id}/voter_voice_call`;\n axios\n .post(url, {\n activity_id: activityId,\n volunteer_voice_call_id: callData?.call_id,\n })\n .then(res => {\n const waitTime = parseInt(res.data.volunteer_average_calls_interval_seconds, 10);\n dispatch(setWaitTime(waitTime));\n dispatch(machineTransition(QUEUE_NEXT_CALL));\n })\n .catch(err => {\n // Go back to idle state\n dispatch(machineTransition(QUEUE_CALL_ERROR));\n message.error(\n 'The system is experiencing a high volume at the moment. Please try again in a few minutes',\n );\n sendError('Dialer - Error readyForContact', {\n request: err?.request,\n response: err?.response,\n });\n })\n .finally(() => {\n setLoading(false);\n });\n }\n\n function authorize() {\n const url = `/api/v2/activities/${activityId}/voice_call_pool/authorizations`;\n return axios\n .post(url)\n .then(() => {\n // Don't do anything here\n })\n .catch(err =>\n sendError('Dialer - error authorizing', {\n request: err?.request,\n response: err?.response,\n }),\n );\n }\n\n return { loading, queueCall, queueCallIfConnected, setLoading };\n}\n\nexport default useQueueCall;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport axios from 'axios';\n\nimport Button from '@web/components/DialerActivity/components/Button';\nimport Elapsed from './Elapsed';\nimport StatusBar from '../StatusBar';\nimport StatusBarButton from '../StatusBarButton';\n\nimport { END_SESSION } from '@web/reducers/dialerReducer/dialerMachine';\nimport { machineTransition } from '@web/reducers/dialerReducer';\nimport sendError from '@web/utils/sendError';\nimport { useDispatch, useSelector } from 'react-redux';\nimport useQueueCall from './useQueueCall';\n\nconst Content = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n padding: 32px 30px;\n`;\n\nconst BannerText = styled.span`\n color: white;\n font-family: ${({ theme }) => theme.fonts.black};\n font-size: 14px;\n letter-spacing: 1.2px;\n text-transform: uppercase;\n`;\n\nfunction VolunteerIdle({ activity, content }) {\n const dispatch = useDispatch();\n const { dialerLoading } = useSelector(state => state.dialer);\n const { loading, queueCallIfConnected, setLoading } = useQueueCall(activity?.id);\n\n function handleEndSession() {\n setLoading(true);\n const url = `/api/v2/activities/${activity?.id}/volunteer_voice_call`;\n axios\n .delete(url)\n .then(res => {})\n .catch(err => {\n sendError('Error ending session via end session button', {\n request: err?.request,\n response: err?.response,\n });\n })\n .finally(() => {\n setLoading(false);\n dispatch(machineTransition(END_SESSION));\n });\n }\n\n const isLoading = React.useMemo(() => dialerLoading || loading, [dialerLoading, loading]);\n const hasContent = !!content;\n return (\n <>\n <StatusBar bgColor=\"darkBlue\">\n <BannerText color={'white'}>\n {'Your Session'}\n <Elapsed />\n </BannerText>\n <StatusBarButton\n bgColor=\"darkBlue\"\n disabled={loading}\n loading={loading}\n onClick={handleEndSession}\n style={{ padding: '0 10px' }}\n >\n End Session\n </StatusBarButton>\n </StatusBar>\n <Content>\n {hasContent && content}\n {!hasContent && (\n <Button\n disabled={isLoading}\n loading={isLoading}\n onClick={queueCallIfConnected}\n variant=\"teal\"\n >\n Queue Next Call\n </Button>\n )}\n </Content>\n </>\n );\n}\n\nVolunteerIdle.propTypes = {\n activity: PropTypes.shape({\n id: PropTypes.number.isRequired,\n }).isRequired,\n content: PropTypes.any,\n};\n\nVolunteerIdle.defaultProps = {\n content: null,\n};\n\nexport default VolunteerIdle;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Radio } from 'antd';\n\nconst StyledRadioGroup = styled(Radio.Group)`\n display: flex !important;\n flex-direction: column;\n margin-bottom: 1rem !important;\n`;\n\nconst Label = styled.p`\n margin-bottom: 0;\n`;\n\nconst StyledRadio = styled(Radio)`\n margin: 0.25rem 0;\n`;\n\nfunction RadioGroup({ options, title, ...rest }) {\n return (\n <>\n <Label>{title}</Label>\n <StyledRadioGroup {...rest}>\n {options.map((el, i) => (\n <StyledRadio key={i} value={el}>\n {el}\n </StyledRadio>\n ))}\n </StyledRadioGroup>\n </>\n );\n}\n\nRadioGroup.propTypes = {\n onChange: PropTypes.func.isRequired,\n options: PropTypes.arrayOf(PropTypes.string).isRequired,\n title: PropTypes.string.isRequired,\n value: PropTypes.string,\n};\n\nRadioGroup.defaultProps = {};\n\nexport default RadioGroup;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Input } from 'antd';\nimport RadioGroup from './RadioGroup';\n\nconst Label = styled.label`\n color: ${({ theme }) => theme.colors.black};\n margin-bottom: 0.25rem;\n`;\n\nconst TextField = styled.div`\n margin-bottom: 1rem;\n`;\n\nfunction CustomFieldList({ answers, customFields, handleAnswerChange }) {\n if (!customFields) {\n return null;\n }\n\n function changeHandler(el, value) {\n handleAnswerChange('customField', { ...el, value });\n }\n\n function renderComponent(el) {\n const value = answers.find(answer => el.id === answer.id)?.value || '';\n const { name, prompt, type } = el.custom_field;\n switch (type) {\n case 'SelectionField':\n return (\n <RadioGroup\n key={el.id}\n onChange={e => changeHandler(el, e.target.value)}\n options={el.custom_field.available_values}\n title={prompt || name}\n value={value}\n />\n );\n case 'TextField':\n return (\n <TextField key={el.id}>\n <Label htmlFor={el.id}>{prompt || name}</Label>\n <Input id={el.id} onChange={e => changeHandler(el, e.target.value)} value={value} />\n </TextField>\n );\n default:\n return null;\n }\n }\n return (\n <div>\n {customFields.map(el => (\n <div key={el.id}>{renderComponent(el)}</div>\n ))}\n </div>\n );\n}\n\nCustomFieldList.propTypes = {\n answers: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n value: PropTypes.string,\n }),\n ),\n customFields: PropTypes.arrayOf(\n PropTypes.shape({\n available_values: PropTypes.array,\n id: PropTypes.number.isRequired,\n prompt: PropTypes.string.isRequired,\n }),\n ),\n handleAnswerChange: PropTypes.func.isRequired,\n};\n\nCustomFieldList.defaultProps = {};\n\nexport default CustomFieldList;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Switch } from 'antd';\n\nconst Label = styled.p`\n margin-bottom: 0.25rem;\n`;\n\nconst StyledTag = styled.div`\n margin: 1rem 0;\n`;\n\nconst StyledTagsList = styled.ul`\n margin: 0;\n padding: 0;\n`;\n\nfunction TagsList({ answers, handleAnswerChange, tags }) {\n function changeHandler(el, value) {\n handleAnswerChange('tag', { ...el, value });\n }\n\n function getValue(id) {\n return answers.find(el => el.id === id)?.value || false;\n }\n\n if (!tags?.length) {\n return null;\n }\n\n return (\n <StyledTagsList>\n {tags.map(el => (\n <StyledTag key={el.id}>\n <Label>{el.tag.name}</Label>\n <Switch\n checked={getValue(el.id)}\n checkedChildren=\"Yes\"\n defaultChecked={false}\n onChange={checked => changeHandler(el, checked)}\n unCheckedChildren=\"No\"\n />\n </StyledTag>\n ))}\n </StyledTagsList>\n );\n}\n\nTagsList.propTypes = {\n answers: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n value: PropTypes.string,\n }),\n ),\n handleAnswerChange: PropTypes.func.isRequired,\n tags: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number.isRequired,\n }),\n ),\n};\n\nTagsList.defaultProps = {};\n\nexport default TagsList;\n","// MTS - The main reason for this hook is to make this logic easily sharable\n// between web and mobile.\nimport * as React from 'react';\nimport axios from 'axios';\n\nimport { machineTransition, reportUpdated } from '@web/reducers/dialerReducer';\nimport sendError from '@web/utils/sendError';\nimport {\n NO_TAGS_OR_CUSTOM_FIELDS,\n TAGS_AND_CUSTOM_FIELDS_SUBMITTED,\n} from '@web/reducers/dialerReducer/dialerMachine';\nimport { useDispatch, useSelector } from 'react-redux';\n\nfunction useReportApi(activity, reportDuringCall = false) {\n const dispatch = useDispatch();\n const connectedContact = useSelector(state => state.dialer.connectedContact);\n const initialData = useSelector(state => state.dialer.reportData);\n const [customFieldAnswers, setCustomFieldAnswers] = React.useState([]);\n const [tagAnswers, setTagAnswers] = React.useState([]);\n const [loading, setLoading] = React.useState(true);\n const [report, setReport] = React.useState(null);\n const campaignId = activity.campaign.id;\n\n // On mount, generate a report\n React.useEffect(() => {\n createReport();\n // eslint-disable-next-line\n }, []);\n\n function handleSubmit() {\n setLoading(true);\n const userReport = buildUserReport();\n axios\n .put(`/api/v2/client/campaigns/${campaignId}/user_reports/${report.id}`, {\n user_report: userReport,\n })\n .then(res => {\n // We don't need to do anything here because we navigate to the\n // session stats screen on success and failure.\n })\n .catch(err => {\n sendError('Dialer - Error submitting tags and custom fields', {\n request: err?.request,\n response: err?.response,\n userReport,\n });\n })\n .finally(() => {\n dispatch(machineTransition(TAGS_AND_CUSTOM_FIELDS_SUBMITTED));\n });\n }\n\n function createReport() {\n const tags = activity.activity_tags;\n const customFields = activity.activity_custom_fields;\n\n // We don't need to get the report unless custom fields or tags are set\n if ((tags?.length || 0) === 0 && (customFields?.length || 0) === 0) {\n if (!reportDuringCall) {\n dispatch(machineTransition(NO_TAGS_OR_CUSTOM_FIELDS));\n } else {\n setLoading(false);\n }\n return;\n }\n\n setLoading(true);\n axios\n .post(`/api/v2/client/campaigns/${campaignId}/user_reports/find_or_create`, {\n activity_id: activity?.id,\n contact_id: connectedContact.contact.id,\n })\n .then(({ data }) => {\n // We only display this UI if the activity has the reporting options\n // configured.\n if (data.customizations.length === 0 && data.taggings.length === 0) {\n if (!reportDuringCall) {\n dispatch(machineTransition(NO_TAGS_OR_CUSTOM_FIELDS));\n }\n } else {\n setReport(data);\n\n setCustomFieldAnswers(\n mergeBlankDataWithInitialData(\n data.customizations,\n initialData?.customFieldAnswers ?? [],\n ),\n );\n setTagAnswers(\n mergeBlankDataWithInitialData(data.taggings, initialData?.tagAnswers ?? []),\n );\n }\n })\n .catch(err => {\n sendError('Dialer - Error generating tagsAndCustomFields report', {\n request: err?.request,\n response: err?.response,\n });\n })\n .finally(() => setLoading(false));\n }\n\n function buildUserReport() {\n return {\n customizations_attributes: customFieldAnswers.map(el => {\n return { custom_field_id: el.custom_field_id, id: el.id, value: el.value };\n }),\n id: report.id,\n taggings_attributes: tagAnswers.map(el => {\n return { id: el.id, tag_id: el.tag_id, value: el.value };\n }),\n };\n }\n\n function handleAnswerChange(type, answer) {\n if (type === 'customField') {\n if (customFieldAnswers.length === 0) {\n const newAnswers = [answer];\n updateReportDataInRedux(newAnswers, tagAnswers);\n return setCustomFieldAnswers(newAnswers);\n }\n const index = customFieldAnswers.findIndex(el => el.id === answer.id);\n if (index >= 0) {\n let newAnswers = [...customFieldAnswers];\n newAnswers[index] = answer;\n updateReportDataInRedux(newAnswers, tagAnswers);\n return setCustomFieldAnswers(newAnswers);\n } else {\n const newAnswers = [answer];\n updateReportDataInRedux(newAnswers, tagAnswers);\n return setCustomFieldAnswers(customFieldAnswers.concat(newAnswers));\n }\n }\n if (type === 'tag') {\n if (tagAnswers.length === 0) {\n const newAnswers = [answer];\n updateReportDataInRedux(customFieldAnswers, newAnswers);\n return setTagAnswers(newAnswers);\n }\n const index = tagAnswers.findIndex(el => el.id === answer.id);\n if (index >= 0) {\n const newAnswers = [...tagAnswers];\n newAnswers[index] = answer;\n updateReportDataInRedux(customFieldAnswers, newAnswers);\n return setTagAnswers(newAnswers);\n } else {\n const newAnswers = tagAnswers.concat([answer]);\n updateReportDataInRedux(customFieldAnswers, newAnswers);\n return setTagAnswers(newAnswers);\n }\n }\n }\n\n const updateReportDataInRedux = React.useCallback((customFields, tags) => {\n if (!reportDuringCall) return;\n dispatch(\n reportUpdated({\n customFieldAnswers: customFields,\n tagAnswers: tags,\n }),\n );\n // Ignore to avoid this looping\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const mergeBlankDataWithInitialData = React.useCallback((blank, initial) => {\n const ids = new Set(initial.map(d => d.id));\n return [...initial, ...blank.filter(d => !ids.has(d.id))].filter(\n data => data.value !== null && data.value !== undefined,\n );\n }, []);\n\n return {\n customFieldAnswers,\n handleAnswerChange,\n handleSubmit,\n loading,\n report,\n tagAnswers,\n };\n}\n\nexport default useReportApi;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport Button from '@web/components/DialerActivity/components/Button';\nimport CustomFieldList from './components/CustomFieldList';\nimport DotLoader from '@web/components/DotLoader';\nimport TagsList from './components/TagsList';\n\nimport useReportApi from './useReportApi';\n\nconst ButtonArea = styled.div`\n display: flex;\n margin-top: 2rem;\n`;\n\nconst Title = styled.h1`\n color: ${({ theme }) => theme.colors.black};\n font-size: 1.5rem;\n font-weight: 600;\n`;\n\nconst Wrapper = styled.div`\n ${({ $reportDuringCall }) =>\n $reportDuringCall &&\n css`\n width: 100%;\n padding: 7px 40px 20px;\n\n label {\n > span:nth-child(2) {\n white-space: pre-wrap;\n }\n }\n `}\n`;\n\nfunction TagsAndCustomFields({ activity, reportDuringCall }) {\n const { customFieldAnswers, handleAnswerChange, handleSubmit, loading, report, tagAnswers } =\n useReportApi(activity, reportDuringCall);\n\n if (loading) {\n return <DotLoader centered color=\"darkBlue\" />;\n }\n\n if (!report?.customizations?.length && !report?.taggings?.length) {\n return null;\n }\n\n return (\n <Wrapper $reportDuringCall={reportDuringCall}>\n <Title>Fill Report</Title>\n <TagsList\n answers={tagAnswers}\n handleAnswerChange={handleAnswerChange}\n tags={report?.taggings}\n />\n <CustomFieldList\n answers={customFieldAnswers}\n customFields={report?.customizations}\n handleAnswerChange={handleAnswerChange}\n />\n {!reportDuringCall && (\n <ButtonArea>\n <Button loading={loading} onClick={handleSubmit} style={{ width: '100%' }}>\n Submit Report\n </Button>\n </ButtonArea>\n )}\n </Wrapper>\n );\n}\n\nTagsAndCustomFields.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n id: PropTypes.number.isRequired,\n }),\n id: PropTypes.number.isRequired,\n }),\n reportDuringCall: PropTypes.bool,\n};\n\nTagsAndCustomFields.defaultProps = {\n reportDuringCall: false,\n};\n\nexport default TagsAndCustomFields;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Contact from '../Contact';\nimport HangUpButton from '../HangUpButton';\nimport StatusBar from '../StatusBar';\nimport TextWithIcon from '../TextWithIcon';\nimport TagsAndCustomFields from '../../../TagsAndCustomFields';\n\nconst Content = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n height: calc(100vh - 140px);\n overflow: auto;\n`;\n\nfunction VoterConnected({ activity }) {\n return (\n <>\n <StatusBar bgColor=\"teal\">\n <TextWithIcon>Active Call</TextWithIcon>\n <HangUpButton bgColor=\"teal\" />\n </StatusBar>\n <Content>\n <Contact activity={activity} />\n <TagsAndCustomFields activity={activity} reportDuringCall />\n </Content>\n </>\n );\n}\n\nVoterConnected.propTypes = {\n activity: PropTypes.object.isRequired,\n};\n\nVoterConnected.defaultProps = {};\n\nexport default VoterConnected;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport TextWithIcon from '../TextWithIcon';\nimport StatusBar from '../StatusBar';\nimport styled from 'styled-components';\nimport Contact from '../Contact';\nimport TagsAndCustomFields from '../../../TagsAndCustomFields';\nimport { useTranslation } from 'react-i18next';\n\nconst Content = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n height: calc(100vh - 140px);\n overflow: auto;\n`;\n\nconst PatchedThroughCall = ({ activity }) => {\n const { t } = useTranslation();\n return (\n <>\n <StatusBar bgColor=\"teal\">\n <TextWithIcon>{t('activity.phone_bank.patch_through.banner_title')}</TextWithIcon>\n </StatusBar>\n <Content>\n <Contact activity={activity} />\n <TagsAndCustomFields activity={activity} reportDuringCall />\n </Content>\n </>\n );\n};\n\nPatchedThroughCall.propTypes = {\n activity: PropTypes.object.isRequired,\n};\n\nexport default PatchedThroughCall;\n","import PatchedThroughCall from './PatchThroughCall';\n\nexport default PatchedThroughCall;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport CallEnded from './components/CallEnded';\nimport ConnectingVoter from './components/ConnectingVoter';\nimport PhoneBankEnded from './components/PhoneBankEnded';\nimport PhoneBankNotStarted from './components/PhoneBankNotStarted';\nimport PhoneBankPaused from './components/PhoneBankPaused';\nimport SessionEnded from './components/SessionEnded';\nimport VolunteerIdle from './components/VolunteerIdle';\nimport VoterConnected from './components/VoterConnected';\n\nimport { useSelector } from 'react-redux';\n\nimport {\n autoConnectLoader,\n callOutcome,\n connectingToVoter,\n idle,\n patchThroughConnected,\n patchThroughSuccess,\n phoneBankEnded,\n phoneBankNotStarted,\n phoneBankPaused,\n sessionEnded,\n sessionStats,\n tagsAndCustomFields,\n viewResponses,\n voterConnected,\n} from '@web/reducers/dialerReducer/dialerMachine';\nimport PatchedThroughCall from './components/PatchThroughCall';\n\nconst StyledCallStatus = styled.div`\n border-left: 3px solid #ededed;\n box-shadow: 0px 3px 12px rgba(0, 0, 0, 0.1);\n position: relative;\n`;\n\nfunction CallStatus({ activity }) {\n const { currentState } = useSelector(state => state.dialer);\n\n if (currentState === 'sessionEnded') {\n return null;\n }\n\n function getContent() {\n const props = { activity };\n switch (currentState) {\n case callOutcome:\n return <CallEnded {...props} />;\n case connectingToVoter:\n return <ConnectingVoter />;\n case idle:\n return <VolunteerIdle {...props} />;\n case autoConnectLoader:\n return <VolunteerIdle {...props} content={<div>Loading...</div>} />;\n case phoneBankEnded:\n return <VolunteerIdle content={<PhoneBankEnded />} {...props} />;\n case phoneBankNotStarted:\n return <VolunteerIdle content={<PhoneBankNotStarted />} {...props} />;\n case phoneBankPaused:\n return <VolunteerIdle content={<PhoneBankPaused />} {...props} />;\n case sessionEnded:\n return <SessionEnded />;\n case sessionStats:\n return <CallEnded {...props} />;\n case viewResponses:\n return <CallEnded {...props} />;\n case tagsAndCustomFields:\n return <CallEnded {...props} />;\n case voterConnected:\n return <VoterConnected {...props} />;\n case patchThroughSuccess:\n return <CallEnded />;\n case patchThroughConnected:\n return <PatchedThroughCall {...props} />;\n default:\n return null;\n }\n }\n return <StyledCallStatus>{getContent()}</StyledCallStatus>;\n}\n\nCallStatus.propTypes = {\n activity: PropTypes.shape({\n id: PropTypes.number.isRequired,\n }),\n};\n\nCallStatus.defaultProps = {};\n\nexport default CallStatus;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Link } from 'react-router-dom';\n\nconst StyledLink = styled(Link)`\n align-items: center;\n display: flex;\n :hover {\n text-decoration-color: ${({ theme }) => theme.colors.black};\n }\n`;\n\nconst Svg = styled.svg`\n path {\n fill: ${({ theme }) => theme.colors.black};\n }\n`;\n\nconst Text = styled.span`\n color: ${({ theme }) => theme.colors.black};\n font-size: 16px;\n font-family: ${({ theme }) => theme.fonts.bold};\n margin-left: 9px;\n`;\n\nfunction BackLink({ backLink, backText }) {\n return (\n <StyledLink to={backLink}>\n <Svg width=\"7\" height=\"13\" viewBox=\"0 0 7 13\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M0.171875 6.5002L0.532805 6.90332L5.93281 12.9033L6.82813 12.0971L1.78903 6.50027L6.82813 0.903472L5.93281 0.097222L0.532805 6.09722L0.171875 6.5002Z\"\n fill=\"#2D343C\"\n />\n </Svg>\n <Text>{backText}</Text>\n </StyledLink>\n );\n}\n\nBackLink.propTypes = {\n backLink: PropTypes.string.isRequired,\n backText: PropTypes.any,\n};\n\nBackLink.defaultProps = {\n backText: 'Back',\n};\n\nexport default BackLink;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Avatar } from 'antd';\nimport BackLink from './BackLink';\nimport { Link, useParams } from 'react-router-dom';\nimport { replaceDefaultCampaignImage } from '@web/utils/string';\n\nconst StyledHeader = styled.div``;\n\nconst Content = styled.div`\n align-items: center;\n display: flex;\n margin-bottom: 35px;\n margin-top: 17px;\n`;\n\nconst CampaignName = styled(Link)`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 24px;\n margin-left: 21px;\n :hover {\n color: ${({ theme }) => theme.colors.black};\n text-decoration-color: ${({ theme }) => theme.colors.black};\n }\n`;\n\nconst Column = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n`;\n\nconst ActivityTitle = styled.span`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 14px;\n margin-left: 21px;\n`;\n\nfunction Header({ activity, backLink, backText, backTo }) {\n let { userActivityId } = useParams();\n\n if (!activity) {\n return null;\n }\n\n const baseRoute = `/activities/${userActivityId}/phone-bank`;\n return (\n <StyledHeader>\n <BackLink backLink={backTo || `${baseRoute}/${backLink}`} backText={backText} />\n <Content>\n <Avatar size={54} src={replaceDefaultCampaignImage(activity?.campaign?.url_profile_img)} />\n <Column>\n <CampaignName to={`/campaigns/${activity?.campaign?.slug}`}>\n {activity?.campaign?.name}\n </CampaignName>\n {activity && <ActivityTitle>{activity?.title}</ActivityTitle>}\n </Column>\n </Content>\n </StyledHeader>\n );\n}\n\nHeader.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n name: PropTypes.string.isRequired,\n slug: PropTypes.string.isRequired,\n url_profile_img: PropTypes.string.isRequired,\n }).isRequired,\n title: PropTypes.string,\n }).isRequired,\n backLink: PropTypes.string,\n backText: PropTypes.any,\n backTo: PropTypes.string,\n};\n\nHeader.defaultProps = {\n backLink: '',\n backText: 'Back',\n backTo: null,\n};\n\nexport default Header;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Button from '@web/components/DialerActivity/components/Button';\n\nconst StyledButton = styled(Button)`\n font-family: ${({ theme }) => theme.fonts.bold};\n letter-spacing: 0px;\n margin-bottom: 6px;\n ${({ disabled }) =>\n disabled &&\n `\n text-decoration: none;\n :hover {\n text-decoration: none;\n }\n `}\n\n &&& {\n height: unset;\n padding: 10px;\n white-space: unset;\n }\n`;\n\nfunction AnswerItem({ children, disabled, onPress, selected, variant, ...rest }) {\n function getButtonVariant() {\n if (disabled) {\n return 'outline';\n }\n if (selected) {\n return 'teal';\n }\n if (variant) {\n return variant;\n }\n return 'primary'; // darkBlue;\n }\n\n const buttonVariant = getButtonVariant();\n return (\n <StyledButton disabled={disabled} variant={buttonVariant} onClick={onPress} {...rest}>\n {children}\n </StyledButton>\n );\n}\n\nAnswerItem.propTypes = {\n children: PropTypes.any.isRequired,\n disabled: PropTypes.bool.isRequired,\n onPress: PropTypes.func,\n selected: PropTypes.bool,\n variant: PropTypes.string,\n};\n\nAnswerItem.defaultProps = {\n selected: false,\n variant: null,\n};\n\nexport default AnswerItem;\n","import * as React from 'react';\nimport axios from 'axios';\nimport sendError from '@web/utils/sendError';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { machineTransition } from '@web/reducers/dialerReducer';\nimport { CALL_SUCCESSFUL, CALL_UNSUCCESSFUL } from '@web/reducers/dialerReducer/dialerMachine';\n\nfunction useCallOutcomeQuestions(campaignId) {\n const dispatch = useDispatch();\n const [loading, setLoading] = React.useState(true);\n const [answers, setAnswers] = React.useState([]);\n const callId = useSelector(state => state.dialer.voter_call_id);\n\n React.useEffect(() => {\n setLoading(true);\n const url = `/api/v2/campaigns/${campaignId}/voice_call_outcome_options`;\n axios(url)\n .then(res => {\n setAnswers(res.data);\n })\n .catch(err => {\n sendError('Error fetching call outcome questions', err, { campaignId });\n })\n .finally(() => {\n setLoading(false);\n });\n // eslint-disable-next-line\n }, []);\n\n function handleSubmit(answer) {\n setLoading(true);\n const url = `/api/v2/voter_voice_calls/${callId}/voice_call_outcome`;\n const showSurvey = !!answer?.survey;\n if (!callId) {\n sendError('Volunteer Web - Dialer - submitting call outcome without callId');\n return nextScreen(showSurvey);\n }\n axios\n .patch(url, { reference: answer.reference })\n .then(res => {\n // we don't need to do anything here\n })\n .catch(err => {\n sendError('Error submitting voice call outcome', err, { campaignId });\n })\n .finally(() => {\n nextScreen(showSurvey);\n setLoading(false);\n });\n }\n\n function nextScreen(showSurvey) {\n if (showSurvey) {\n dispatch(machineTransition(CALL_SUCCESSFUL));\n } else {\n dispatch(machineTransition(CALL_UNSUCCESSFUL));\n }\n }\n\n return { answers, handleSubmit, loading };\n}\n\nexport default useCallOutcomeQuestions;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport AnswerItem from '@web/components/DialerActivity/components/ScriptBlock/AnswerItem';\nimport Loading from '@web/components/common/Loading';\n\nimport useCallOutcomeQuestions from './useCallOutcomeQuestions';\n\nconst AnswerSection = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst Title = styled.h2`\n &&& {\n color: ${({ theme }) => theme.colors.darkBlue};\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 24px;\n line-height: 34px;\n margin-bottom: 20px;\n text-align: center;\n }\n`;\n\nfunction CallOutcome({ activity }) {\n const { answers, handleSubmit, loading } = useCallOutcomeQuestions(activity.campaign.id);\n\n if (loading) {\n return <Loading />;\n }\n\n return (\n <>\n <Title>Why did the call end?</Title>\n <AnswerSection>\n {answers.map(answer => (\n <AnswerItem\n disabled={loading}\n key={answer.reference}\n onPress={() => handleSubmit(answer)}\n >\n {answer.label}\n </AnswerItem>\n ))}\n </AnswerSection>\n </>\n );\n}\n\nCallOutcome.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n id: PropTypes.number.isRequired,\n }).isRequired,\n }).isRequired,\n};\n\nCallOutcome.defaultProps = {};\n\nexport default CallOutcome;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst StyledMessage = styled.div`\n background-color: #d5ecef;\n border-radius: 7px;\n margin-bottom: 16px;\n margin-top: 16px;\n padding: 22px;\n`;\n\nconst Text = styled.p`\n font-size: 16px;\n line-height: 24px;\n margin-bottom: 0;\n text-align: center;\n`;\n\nconst HelpMessage = ({ helpMessageKey = 'activity.phone_bank.script_help' }) => {\n const { t } = useTranslation();\n return (\n <StyledMessage>\n <Text>{t(helpMessageKey)}</Text>\n </StyledMessage>\n );\n};\n\nHelpMessage.propTypes = {\n helpMessageKey: PropTypes.string,\n};\n\nexport default HelpMessage;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Connect({ size, ...rest }) {\n return (\n <svg height={size} viewBox=\"0 0 78 78\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...rest}>\n <circle cx=\"39\" cy=\"39\" r=\"39\" fill=\"#D5ECEF\" />\n <path\n d=\"M33.5464 14.8507L14.8503 33.5474L44.4535 63.1495L63.1495 44.4527L33.5464 14.8507Z\"\n fill=\"#8CC4CA\"\n />\n <path\n d=\"M31.2099 23.4199L23.4199 31.2099L18.7454 29.6521L29.6521 18.7454L31.2099 23.4199Z\"\n fill=\"#4D9DA6\"\n />\n <path\n d=\"M21.0265 44.5091L18.6895 46.8462L31.1539 59.3102L33.4909 56.9731L21.0265 44.5091Z\"\n fill=\"#8CC4CA\"\n />\n <path\n d=\"M18.6351 51.5745L16.2981 53.9116L24.0884 61.7016L26.4254 59.3646L18.6351 51.5745Z\"\n fill=\"#8CC4CA\"\n />\n <path\n d=\"M56.9733 33.4909L59.3103 31.1538L46.8458 18.6898L44.5088 21.0269L56.9733 33.4909Z\"\n fill=\"#8CC4CA\"\n />\n <path\n d=\"M59.3647 26.4255L61.7017 24.0884L53.9114 16.2984L51.5744 18.6354L59.3647 26.4255Z\"\n fill=\"#8CC4CA\"\n />\n </svg>\n );\n}\n\nConnect.propTypes = {\n size: PropTypes.number,\n};\n\nConnect.defaultProps = {\n size: 78,\n};\n\nexport default Connect;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction PhoneNumber({ size, ...rest }) {\n return (\n <svg height={size} viewBox=\"0 0 78 78\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...rest}>\n <circle cx=\"39\" cy=\"39\" r=\"39\" fill=\"#D5ECEF\" />\n <g clipPath=\"url(#clip0_652:3068)\">\n <path\n d=\"M26.8 23C25.7922 23 24.8256 23.4004 24.113 24.113C23.4004 24.8256 23 25.7922 23 26.8C23 27.8078 23.4004 28.7744 24.113 29.487C24.8256 30.1996 25.7922 30.6 26.8 30.6C27.8078 30.6 28.7744 30.1996 29.487 29.487C30.1996 28.7744 30.6 27.8078 30.6 26.8C30.6 25.7922 30.1996 24.8256 29.487 24.113C28.7744 23.4004 27.8078 23 26.8 23ZM36.9333 23C35.9255 23 34.959 23.4004 34.2463 24.113C33.5337 24.8256 33.1333 25.7922 33.1333 26.8C33.1333 27.8078 33.5337 28.7744 34.2463 29.487C34.959 30.1996 35.9255 30.6 36.9333 30.6C37.9412 30.6 38.9077 30.1996 39.6203 29.487C40.333 28.7744 40.7333 27.8078 40.7333 26.8C40.7333 25.7922 40.333 24.8256 39.6203 24.113C38.9077 23.4004 37.9412 23 36.9333 23ZM26.8 33.1333C25.7922 33.1333 24.8256 33.5337 24.113 34.2463C23.4004 34.959 23 35.9255 23 36.9333C23 37.9412 23.4004 38.9077 24.113 39.6203C24.8256 40.333 25.7922 40.7333 26.8 40.7333C27.8078 40.7333 28.7744 40.333 29.487 39.6203C30.1996 38.9077 30.6 37.9412 30.6 36.9333C30.6 35.9255 30.1996 34.959 29.487 34.2463C28.7744 33.5337 27.8078 33.1333 26.8 33.1333ZM46.51 33.779C46.472 33.779 46.4342 33.7787 46.3962 33.7914C45.5096 33.8421 44.7487 34.5258 44.5333 35.3871L44.4962 35.6543C44.4709 35.7303 44.469 35.8059 44.469 35.8819V37.2253V44.3057V49.8276V50.5747C44.469 50.5747 43.1389 49.5751 41.2009 48.7391C40.9602 48.6251 40.7071 48.5352 40.4538 48.4719C40.4158 48.4592 40.3656 48.4471 40.3276 48.4471L40.2262 48.3457C40.0995 48.3584 39.974 48.3578 39.86 48.3704C39.7587 48.3578 39.6571 48.3581 39.5557 48.3581C37.1237 48.3581 36.5284 50.1712 36.3891 50.8172C36.3637 50.9565 36.3495 51.0448 36.3495 51.0448L39.6176 52.9572L42.7471 56.7572H42.7719L43.2914 57.3905L43.8629 58.1005C44.4582 58.8225 45.1411 59.4035 45.9138 59.8595C46.9778 60.4928 48.1682 60.8993 49.4095 60.9753C49.5995 61.0006 49.7761 61 49.9661 61H55.4262C57.1995 61 58.7833 60.1139 59.7333 58.7586C60.3667 57.8846 60.7328 56.8067 60.7328 55.6414V46.7995C60.7328 45.3935 59.6692 44.2416 58.2885 44.1276L51.8538 43.331H51.829L48.89 42.9747L48.8652 42.4552L48.6129 37.4009L48.5362 35.8819C48.5362 35.7426 48.5244 35.6152 48.4991 35.4885C48.4738 35.3872 48.448 35.2878 48.41 35.1991C48.1314 34.3884 47.3714 33.779 46.51 33.779ZM26.8 43.2667C25.7922 43.2667 24.8256 43.667 24.113 44.3797C23.4004 45.0923 23 46.0588 23 47.0667C23 48.0745 23.4004 49.041 24.113 49.7537C24.8256 50.4663 25.7922 50.8667 26.8 50.8667C27.8078 50.8667 28.7744 50.4663 29.487 49.7537C30.1996 49.041 30.6 48.0745 30.6 47.0667C30.6 46.0588 30.1996 45.0923 29.487 44.3797C28.7744 43.667 27.8078 43.2667 26.8 43.2667ZM36.9333 43.2667C34.8307 43.2667 33.1333 44.964 33.1333 47.0667C33.1333 48.232 33.6534 49.2698 34.4767 49.9538C34.6034 49.2951 34.907 48.4216 35.6543 47.6109C36.731 46.4456 38.3651 45.8377 40.5057 45.8124C39.9991 44.3304 38.5927 43.2667 36.9333 43.2667Z\"\n fill=\"#8CC4CA\"\n />\n <path\n d=\"M34.2463 34.2463C34.9589 33.5337 35.9255 33.1333 36.9333 33.1333C37.9411 33.1333 38.9077 33.5337 39.6203 34.2463C40.3329 34.9589 40.7333 35.9255 40.7333 36.9333C40.7333 37.9411 40.3329 38.9077 39.6203 39.6203C38.9077 40.3329 37.9411 40.7333 36.9333 40.7333C35.9255 40.7333 34.9589 40.3329 34.2463 39.6203C33.5337 38.9077 33.1333 37.9411 33.1333 36.9333C33.1333 35.9255 33.5337 34.9589 34.2463 34.2463Z\"\n fill=\"#4D9DA6\"\n />\n <path\n d=\"M44.3796 24.113C45.0922 23.4004 46.0588 23 47.0666 23C48.0744 23 49.041 23.4004 49.7536 24.113C50.4662 24.8256 50.8666 25.7922 50.8666 26.8C50.8666 27.8078 50.4662 28.7744 49.7536 29.487C49.041 30.1996 48.0744 30.6 47.0666 30.6C46.0588 30.6 45.0922 30.1996 44.3796 29.487C43.667 28.7744 43.2666 27.8078 43.2666 26.8C43.2666 25.7922 43.667 24.8256 44.3796 24.113Z\"\n fill=\"#4D9DA6\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_652:3068\">\n <rect width=\"38\" height=\"38\" fill=\"white\" transform=\"translate(23 23)\" />\n </clipPath>\n </defs>\n </svg>\n );\n}\n\nPhoneNumber.propTypes = {\n size: PropTypes.number,\n};\n\nPhoneNumber.defaultProps = {\n size: 78,\n};\n\nexport default PhoneNumber;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Phone({ size, ...rest }) {\n return (\n <svg height={size} viewBox=\"0 0 78 78\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...rest}>\n <circle cx=\"39\" cy=\"39\" r=\"39\" fill=\"#D5ECEF\" />\n <path\n d=\"M58.6652 28.6991H19.3347V28.5015C19.3347 24.9908 22.1815 22.144 25.6922 22.144H52.3077C55.8184 22.144 58.6652 24.9908 58.6652 28.5015V28.6991Z\"\n fill=\"#8CC4CA\"\n />\n <path d=\"M58.6653 28.5267H44.6187V32.2725H58.6653V28.5267Z\" fill=\"#8CC4CA\" />\n <path d=\"M33.3813 28.5267H19.3347V32.2725H33.3813V28.5267Z\" fill=\"#8CC4CA\" />\n <path\n d=\"M44.6187 26.8262V28.6991H58.6653V28.5015C58.6653 27.9209 58.581 27.3609 58.4349 26.8262H44.6187Z\"\n fill=\"#4D9DA6\"\n />\n <path\n d=\"M19.5651 26.8262C19.419 27.3609 19.3347 27.9209 19.3347 28.5015V28.6991H33.3813V26.8262H19.5651Z\"\n fill=\"#4D9DA6\"\n />\n <path d=\"M30.572 37.1271H24.9534V40.8728H30.572V37.1271Z\" fill=\"#8CC4CA\" />\n <path d=\"M41.8093 37.1271H36.1907V40.8728H41.8093V37.1271Z\" fill=\"#8CC4CA\" />\n <path d=\"M53.0466 37.1271H47.428V40.8728H53.0466V37.1271Z\" fill=\"#8CC4CA\" />\n <path d=\"M30.572 44.6187H24.9534V48.3644H30.572V44.6187Z\" fill=\"#8CC4CA\" />\n <path d=\"M41.8093 44.6187H36.1907V48.3644H41.8093V44.6187Z\" fill=\"#8CC4CA\" />\n <path d=\"M53.0466 44.6187H47.428V48.3644H53.0466V44.6187Z\" fill=\"#8CC4CA\" />\n <path d=\"M30.572 52.1101H24.9534V55.8559H30.572V52.1101Z\" fill=\"#8CC4CA\" />\n <path d=\"M41.8093 52.1101H36.1907V55.8559H41.8093V52.1101Z\" fill=\"#8CC4CA\" />\n <path d=\"M53.0466 52.1101H47.428V55.8559H53.0466V52.1101Z\" fill=\"#8CC4CA\" />\n </svg>\n );\n}\n\nPhone.propTypes = {\n size: PropTypes.number,\n};\n\nPhone.defaultProps = {\n size: 78,\n};\n\nexport default Phone;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst StyledInstructionItem = styled.div`\n display: flex;\n flex-direction: column;\n margin: 22px 0;\n max-width: 650px;\n`;\n\nconst IconSection = styled.div`\n margin-bottom: 10px;\n`;\n\nconst Title = styled.h2`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 24px;\n line-height: 34px;\n`;\n\nconst Description = styled.p`\n font-size: 16px;\n line-height: 24px;\n`;\n\nfunction InstructionItem({ children, icon, title }) {\n return (\n <StyledInstructionItem>\n <IconSection>{icon}</IconSection>\n <Title>{title}</Title>\n <Description>{children}</Description>\n </StyledInstructionItem>\n );\n}\n\nInstructionItem.propTypes = {\n children: PropTypes.any,\n icon: PropTypes.any.isRequired,\n title: PropTypes.any.isRequired,\n};\n\nInstructionItem.defaultProps = {\n children: null,\n};\n\nexport default InstructionItem;\n","import * as React from 'react';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\n// icons\nimport Connect from '../../icons/Connect';\nimport PhoneNumber from '../../icons/PhoneNumber';\nimport Phone from '../../icons/Phone';\n\nimport InstructionItem from './InstructionItem';\n\nconst StyledInstructions = styled.div`\n padding-top: 4px;\n`;\n\nfunction Instructions() {\n const { t } = useTranslation();\n\n return (\n <StyledInstructions>\n <InstructionItem icon={<Connect />} title={`1. ${t('activity.phone_bank.grab_phone')}`}>\n {t('activity.phone_bank.grab_phone_description')}\n </InstructionItem>\n <InstructionItem icon={<PhoneNumber />} title={`2. ${t('activity.phone_bank.receive_call')}`}>\n {t('activity.phone_bank.receive_call_description')}\n </InstructionItem>\n <InstructionItem icon={<Phone />} title={`3. ${t('activity.phone_bank.queue_first_call')}`}>\n {t('activity.phone_bank.queue_first_call_description')}\n </InstructionItem>\n </StyledInstructions>\n );\n}\n\nexport default Instructions;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\n// import PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst StyledButton = styled.button`\n background-color: ${({ theme }) => theme.colors.white};\n border: none;\n cursor: pointer;\n margin-top: 60px;\n padding: 14px;\n`;\n\nconst Text = styled.span`\n color: ${({ theme }) => theme.colors.darkTeal};\n font-family: ${({ theme }) => theme.fonts.black};\n font-size: 16px;\n letter-spacing: 1.5px;\n`;\n\nfunction BackButton(props) {\n const { t } = useTranslation();\n\n return (\n <StyledButton {...props}>\n <Text>↠{t('common.previous_question')}</Text>\n </StyledButton>\n );\n}\n\nBackButton.propTypes = {};\n\nBackButton.defaultProps = {};\n\nexport default BackButton;\n","import * as React from 'react';\n\nconst PhoneSecondary = props => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={19}\n height={19}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n {...props}\n >\n <path\n stroke=\"#fff\"\n fill=\"#fff\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={1.5}\n d=\"M16 5h6m0 0-3-3m3 3-3 3M18.118 14.702 14 15.5c-2.782-1.396-4.5-3-5.5-5.5l.77-4.13L7.815 2H4.064c-1.128 0-2.016.932-1.847 2.047.42 2.783 1.66 7.83 5.283 11.453 3.805 3.805 9.286 5.456 12.302 6.113 1.165.253 2.198-.655 2.198-1.848v-3.584l-3.882-1.479Z\"\n />\n </svg>\n);\nexport default PhoneSecondary;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\n\nconst StyledAnswerBlock = styled.div`\n background-color: #eee;\n border-radius: 7px;\n display: flex;\n flex-direction: column;\n padding: 14px 18px 25px;\n width: 100%;\n`;\n\nconst Text = styled.p`\n color: ${({ theme }) => theme.colors.darkBlue};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 16px;\n margin-bottom: 10px;\n text-align: center;\n text-transform: uppercase;\n`;\n\nfunction AnswerBlock({ children }) {\n const { t } = useTranslation();\n\n return (\n <StyledAnswerBlock>\n <Text>{t('activity.phone_bank.recipient_response')}</Text>\n {children}\n </StyledAnswerBlock>\n );\n}\n\nAnswerBlock.propTypes = {\n children: PropTypes.any.isRequired,\n};\n\nAnswerBlock.defaultProps = {};\n\nexport default AnswerBlock;\n","import * as React from 'react';\nimport { Liquid } from 'liquidjs';\nimport sendError from '@web/utils/sendError';\nimport { formatPhoneNumber } from '@admin/utils/formatPhoneNumber';\nimport { convertLinks } from '@web/utils/string';\n\nconst engine = new Liquid();\n\nconst defaultValues = {\n campaign: {\n description: '{{campaign.description}}',\n join_code: '{{campaign.join_code}}',\n name: '{{campaign.name}}',\n },\n email: '{{email}}',\n first_name: '{{first_name}}',\n full_name: '{{full_name}}',\n last_name: '{{last_name}}',\n phone: '{{phone}}',\n state_abbrev: '{{state_abbrev}}',\n user: {\n email: '{{user.email}}',\n first_name: '{{user.first_name}}',\n fullname: '{{user.fullname}}',\n last_name: '{{user.last_name}}',\n phone: '{{user.phone}}',\n },\n};\n\nfunction useInterpolation(str, connectedContact) {\n const [interpolated, setInterpolated] = React.useState('');\n const [loading, setLoading] = React.useState(false);\n\n React.useEffect(() => {\n async function interpolate() {\n try {\n // Create a copy of defaultValues and merge connectedContact\n const allValues = { ...defaultValues, ...formatPhoneFields(connectedContact) };\n\n // Convert links to clickable links\n const formattedString = convertLinks(str);\n\n // Find all placeholders in the format {{variable}}\n const placeholders = formattedString.match(/\\{\\{(.*?)\\}\\}/g) || [];\n\n // Add missing variables to allValues to preview them until contact is added\n placeholders.forEach(placeholder => {\n const key = placeholder.replace(/\\{\\{|\\}\\}/g, '').trim();\n if (!(key in allValues)) {\n allValues[key] = placeholder; // Assign placeholder to the missing key\n }\n });\n\n const result = await engine.parseAndRender(formattedString, allValues);\n setInterpolated(result);\n setLoading(false);\n } catch (err) {\n sendError('Error attempting to interpolate interactive script', err);\n // In case of an error, just use the initial string to prevent the odd empty string confusing customers\n setInterpolated(str);\n setLoading(false);\n }\n }\n interpolate();\n }, [connectedContact, str]);\n\n return { interpolated, interpolationLoading: loading };\n}\n\nexport const formatPhoneFields = obj => {\n const newObj = Array.isArray(obj) ? [] : {};\n\n for (const key in obj) {\n if (\n obj.hasOwnProperty(key) &&\n key.toLowerCase().includes('phone') &&\n typeof obj[key] === 'string' &&\n obj[key] !== `{{${key}}}`\n ) {\n newObj[key] = formatPhoneNumber(obj[key]);\n } else if (obj[key] && typeof obj[key] === 'object') {\n newObj[key] = formatPhoneFields(obj[key]); // Recursive call for nested objects\n } else {\n newObj[key] = typeof obj[key] === 'string' ? convertLinks(obj[key]) : obj[key]; // Copy other properties as-is and try to convert urls to links if value is string\n }\n }\n return newObj;\n};\nexport default useInterpolation;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\n\nimport PhoneSecondary from '../../icons/PhoneSecondary';\nimport AnswerBlock from './AnswerBlock';\nimport AnswerItem from './AnswerItem';\n\nimport useInterpolation from '@web/components//DialerActivity/useInterpolation';\n\nconst StyledScriptBlock = styled.div`\n margin-bottom: 24px;\n width: 100%;\n`;\n\nconst Text = styled.p`\n color: ${({ theme }) => theme.colors.darkBlue};\n font-family: ${({ theme }) => theme.fonts.light};\n font-size: 24px;\n line-height: 34px;\n margin-bottom: 22px;\n`;\n\nconst TextSection = styled.div``;\n\nconst PatchThroughItem = styled(AnswerItem)`\n display: flex;\n align-items: center;\n gap: 10px;\n background: ${({ theme }) => theme.colors.coral};\n &:disabled {\n background: rgb(124, 122, 124);\n border-color: rgb(124, 122, 124) !important;\n color: white !important;\n opacity: 1;\n }\n`;\n\nfunction ScriptBlock({\n answersDisabled,\n connectedContact,\n onAnswerSelect,\n options,\n selectedAnswerRef,\n stem,\n ...rest\n}) {\n const { t } = useTranslation();\n const { interpolated } = useInterpolation(stem, connectedContact);\n const hasOptions = options?.length > 0;\n\n if (!options) {\n return null;\n }\n\n const paragraphs = interpolated.split('\\n').filter(el => el !== '');\n\n return (\n <StyledScriptBlock>\n <TextSection>\n {paragraphs.map((el, i) => (\n <Text key={i} dangerouslySetInnerHTML={{ __html: el }} />\n ))}\n </TextSection>\n <AnswerBlock>\n {options.map(option => {\n if (option.patch_through) {\n const isDisabled = answersDisabled.includes(option.reference);\n return (\n <PatchThroughItem\n disabled={isDisabled}\n key={option.reference}\n onPress={() => onAnswerSelect(option)}\n selected={selectedAnswerRef === option.reference}\n >\n <PhoneSecondary />\n {isDisabled ? t('activity.phone_bank.patch_through.loading') : option.label}\n </PatchThroughItem>\n );\n }\n\n return (\n <AnswerItem\n key={option.reference}\n onPress={() => onAnswerSelect(option)}\n selected={selectedAnswerRef === option.reference}\n >\n {option.label}\n </AnswerItem>\n );\n })}\n {!hasOptions && (\n <Text style={{ marginTop: 16, textAlign: 'center' }}>No Response Needed</Text>\n )}\n </AnswerBlock>\n </StyledScriptBlock>\n );\n}\n\nScriptBlock.propTypes = {\n answersDisabled: PropTypes.bool,\n connectedContact: PropTypes.object.isRequired,\n onAnswerSelect: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.any),\n selectedAnswerRef: PropTypes.string,\n stem: PropTypes.string.isRequired,\n};\n\nScriptBlock.defaultProps = {\n answersDisabled: false,\n onAnswerSelect: () => null,\n selectedAnswerRef: null,\n};\n\nexport default ScriptBlock;\n","import { useCallback, useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport useIsMounted from '@web/hooks/useIsMounted';\nimport useHangUp from './pages/InCall/useHangUp';\nimport {\n CALL_SUCCESSFUL,\n connectingToVoter,\n VOLUNTEER_HANG_UP,\n} from '@web/reducers/dialerReducer/dialerMachine';\nimport sendError, { addBreadcrumb } from '@web/utils/sendError';\nimport { machineTransition, setDisabledPatchThrough } from '@web/reducers/dialerReducer';\nimport { message } from 'antd';\nimport axios from 'axios';\nimport { useTranslation } from 'react-i18next';\n\nconst usePatchThrough = () => {\n const [isTerminating, setIsTerminating] = useState(false);\n const dispatch = useDispatch();\n const { callData, currentState, voter_call_id } = useSelector(state => state.dialer);\n const { checkConferenceIdle, handleHangUp } = useHangUp();\n const isMounted = useIsMounted();\n const { t } = useTranslation();\n // MTS - Assign refs because we are mysteriously getting stale values\n const callIdRef = useRef(voter_call_id);\n const currentStateRef = useRef(currentState);\n // Necessary to prevent stale values\n useEffect(() => {\n callIdRef.current = voter_call_id;\n currentStateRef.current = currentState;\n }, [currentState, voter_call_id]);\n\n /**\n * This function do the same thing as handleSubmit in the useCallOutcomeQuestions hook that we use for regular phone banking\n * The main difference that we have to always send \"completed\" as the reference\n * because if the user reach this place it meant that the call was successful and we need to send \"completed\" to API to update metrics\n */\n const handlePatchThroughCallOutcome = useCallback(() => {\n // Just use the default flow to not interrupt the user\n // in this case we will not update the metrics, but the call will complete successfully\n dispatch(machineTransition(CALL_SUCCESSFUL));\n\n const voterCallId = callIdRef.current;\n const url = `/api/v2/voter_voice_calls/${voterCallId}/voice_call_outcome`;\n\n axios\n .patch(url, { reference: 'completed' })\n .then(res => {\n // we don't need to do anything here\n })\n .catch(err => {\n sendError('[PATCH- THROUGH] Error submitting voice call outcome', err);\n });\n }, [dispatch]);\n\n // RH - this is mostly a copy of app/screens/DialerActivityScreen/screens/DialerActive/components/SessionBanner/components/HangUpButton/HangUpButton.js and will be rewritten when on terminate call only third party person will be disconnected\n const handleTerminate = useCallback(() => {\n if (isTerminating) return;\n\n setIsTerminating(true);\n const volunteerCallId = callData?.call_id;\n const url = `/api/v2/volunteer_voice_calls/${volunteerCallId}/voter_voice_call`;\n // MTS - I need to keep track of the value at the time the function was called not\n // the current value, which could be different.\n const voterCallId = callIdRef.current;\n axios\n .delete(url)\n .then(res => {\n handleHangUp(VOLUNTEER_HANG_UP, voterCallId);\n })\n .catch(async err => {\n // See https://github.com/outvote/web-app/issues/7561 for details\n if (err?.response?.status === 422 && currentStateRef?.current === connectingToVoter) {\n const conferenceIdle = await checkConferenceIdle();\n // The user is in an out of sync state with the backend and we need to transition them\n // back to idle\n if (conferenceIdle) {\n addBreadcrumb({\n category: 'dialer',\n message:\n 'Dialer - Transitioning user back to idle from 422 hang up in connectingToVoter',\n });\n return dispatch(machineTransition(VOLUNTEER_HANG_UP));\n }\n }\n\n sendError('Dialer - Unable to hang up call', {\n request: err?.request,\n response: err?.response,\n });\n // MTS - This request can resolve after the component is unmounted\n // we only show the message while it is mounted.\n if (isMounted()) {\n message.error('An error occurred while hanging up the call. Please try again.');\n }\n })\n .finally(() => {\n setIsTerminating(false);\n });\n }, [isTerminating, callData?.call_id, handleHangUp, isMounted, checkConferenceIdle, dispatch]);\n\n // RH - this is a new function that will be used to patch through a third party person but also uses MTS code approach\n const handlePatchThrough = useCallback(() => {\n // MTS - I need to keep track of the value at the time the function was called not\n // the current value, which could be different.\n const volunteerCallId = callData?.call_id;\n const url = `/api/v2/client/user_voice_calls/${volunteerCallId}/patch_through_requests`;\n\n axios\n .post(url)\n .then(res => {\n // we subscribed for `patch_through_joined` event in the machine, but it could be also triggered by the next action\n // dispatch(machineTransition(PATCH_THROUGH_CONNECTED))\n })\n .catch(async err => {\n sendError('Dialer - Unable to patch through a call', {\n request: err?.request,\n response: err?.response,\n });\n dispatch(setDisabledPatchThrough([]));\n // MTS - This request can resolve after the component is unmounted\n // we only show the message while it is mounted.\n if (isMounted()) {\n if (err?.response?.status === 404) {\n message.error(t('activity.phone_bank.patch_through.error404'));\n }\n if (err?.response?.status === 409) {\n message.error(t('activity.phone_bank.patch_through.error409'));\n }\n }\n });\n }, [callData?.call_id, dispatch, isMounted, t]);\n\n return { handlePatchThrough, handlePatchThroughCallOutcome, handleTerminate };\n};\n\nexport default usePatchThrough;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport ImpactiveModal from '@web/components/common/ImpactiveModal';\nimport ImpactiveButton from '@web/components/ImpactiveButton';\n\nconst ModalContent = styled.div`\n background-color: ${({ theme }) => theme.colors.borderColor};\n border-radius: 25px;\n padding: 25px;\n gap: 25px;\n`;\n\nconst Text = styled.div`\n color: ${({ theme }) => theme.colors.darkBlue};\n font-size: 18px;\n text-align: center;\n margin-bottom: 24px;\n\n ${({ theme }) => theme.fonts.regular};\n`;\n\nconst TerminateButton = styled(ImpactiveButton)`\n width: 100%;\n height: 45px;\n font-family: ${({ theme }) => theme.fonts.boldItalic};\n font-size: 16px;\n height: 44px;\n letter-spacing: 1.4px;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst TerminateText = styled.div`\n color: ${({ theme }) => theme.colors.white};\n font-size: 16px;\n letter-spacing: 1.5px;\n text-align: center;\n ${({ theme }) => theme.fonts.bold};\n`;\n\nconst Title = styled.div`\n color: ${({ theme }) => theme.colors.darkBlue};\n font-size: 30px;\n text-align: center;\n margin-bottom: 16px;\n\n ${({ theme }) => theme.fonts.regular};\n`;\n\nconst TerminateModal = ({ isModalOpen, modalHandler, name, onTerminate }) => {\n const { t } = useTranslation();\n return (\n <ImpactiveModal visible={isModalOpen} onCancel={() => modalHandler(false)}>\n <ModalContent>\n <Title>{t('activity.phone_bank.patch_through.terminate_question')}</Title>\n <Text>{t('activity.phone_bank.patch_through.terminate_warning', { name })}</Text>\n <TerminateButton onClick={onTerminate}>\n <TerminateText>{t('activity.phone_bank.patch_through.terminate_yes')}</TerminateText>\n </TerminateButton>\n </ModalContent>\n </ImpactiveModal>\n );\n};\n\nTerminateModal.propTypes = {\n isModalOpen: PropTypes.bool.isRequired,\n modalHandler: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n onTerminate: PropTypes.func.isRequired,\n};\n\nexport default TerminateModal;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useSelector } from 'react-redux';\n\nimport styled from 'styled-components';\nimport TerminateModal from './TerminateModal';\nimport usePatchThrough from '@web/components/DialerActivity/usePatchThrough';\nimport ImpactiveButton from '@web/components/ImpactiveButton';\n\nconst StyledPatchThroughInfo = styled.div`\n background-color: #eee;\n border-radius: 7px;\n padding: 25px 40px;\n`;\n\nconst Title = styled.div`\n color: ${({ theme }) => theme.colors.darkBlue};\n white-space: pre;\n font-size: 26px;\n margin-bottom: 32px;\n text-align: center;\n ${({ theme }) => theme.fonts.regular};\n`;\n\nconst TerminateWarningText = styled.div`\n color: ${({ theme }) => theme.colors.darkBlue};\n font-size: 16px;\n text-align: center;\n margin-top: 20px;\n ${({ theme }) => theme.fonts.regular};\n`;\n\nconst TerminateButton = styled(ImpactiveButton)`\n width: 100%;\n height: 45px;\n text-transform: none;\n font-family: ${({ theme }) => theme.fonts.boldItalic};\n font-size: 16px;\n height: 44px;\n letter-spacing: 1.4px;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst PatchThroughInfo = () => {\n const { t } = useTranslation();\n const [isModalOpen, setIsModalOpen] = useState(false);\n const { connectedContact: contact } = useSelector(state => state.dialer);\n const { handleTerminate } = usePatchThrough();\n\n const name = useMemo(() => `${contact?.first_name || ''} ${contact?.last_name || ''}`, [contact]);\n\n const onModalOpen = useCallback(() => setIsModalOpen(true), []);\n const onTerminate = useCallback(() => {\n setIsModalOpen(false);\n handleTerminate();\n }, [handleTerminate]);\n\n return (\n <StyledPatchThroughInfo>\n <Title>{t('activity.phone_bank.patch_through.description', { name })}</Title>\n <TerminateButton onClick={onModalOpen}>\n {t('activity.phone_bank.patch_through.terminate_the_call')}\n </TerminateButton>\n <TerminateWarningText>\n {t('activity.phone_bank.patch_through.terminate_warning', { name })}\n </TerminateWarningText>\n <TerminateModal\n isModalOpen={isModalOpen}\n modalHandler={setIsModalOpen}\n name={name}\n onTerminate={onTerminate}\n />\n </StyledPatchThroughInfo>\n );\n};\n\nPatchThroughInfo.propTypes = {};\n\nexport default PatchThroughInfo;\n","import * as React from 'react';\n\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\n\nimport BackButton from './components/BackButton';\nimport Button from '@web/components/DialerActivity/components/Button';\nimport ScriptBlock from '@web/components/DialerActivity/components/ScriptBlock';\nimport { voterConnected } from '@web/reducers/dialerReducer/dialerMachine';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setDisabledPatchThrough } from '@web/reducers/dialerReducer';\nimport usePatchThrough from '@web/components/DialerActivity/usePatchThrough';\nimport PatchThroughInfo from './components/PatchThroughInfo';\n\nconst StyledInteractiveScript = styled.div`\n background-color: ${({ theme }) => theme.colors.white};\n display: flex;\n flex-direction: column;\n flex: 1;\n justify-content: space-between;\n margin-top: 18px;\n`;\nconst ScrollView = styled.div`\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column;\n overflow-y: auto;\n`;\n\nconst Text = styled.p`\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 18px;\n line-height: 28px;\n margin: 0 auto;\n max-width: 470px;\n text-align: center;\n`;\n\nfunction InteractiveScript({\n answers = [],\n connectedContact,\n handleDoneClick = () => null,\n isEdit = false,\n questions = [],\n setAnswers,\n isPatchThroughConnected,\n}) {\n const { t } = useTranslation();\n const { disabledPatchThrough, currentState } = useSelector(state => state.dialer);\n const dispatch = useDispatch();\n\n const { handlePatchThrough } = usePatchThrough();\n\n const [currentQuestion, setCurrentQuestion] = React.useState(questions[0]);\n const [endReached, setEndReached] = React.useState(false);\n\n React.useEffect(() => {\n if (!currentQuestion && questions.length) {\n setCurrentQuestion(questions[0]);\n }\n }, [currentQuestion, questions]);\n\n function handleSelect(option) {\n if (option?.patch_through) {\n // ignore patch through click in any state other than voterConnected\n if (currentState !== voterConnected) return;\n // if the option is a patch through, disable it until third party call is connected\n dispatch(setDisabledPatchThrough([option.reference]));\n handlePatchThrough();\n return;\n }\n\n setAnswers(\n answers.concat([\n {\n answerReference: option.reference,\n questionReference: currentQuestion.reference,\n },\n ]),\n );\n if (option?.next_item) {\n setCurrentQuestion(questions.find(question => question.reference === option.next_item));\n } else {\n setEndReached(true);\n }\n }\n\n function goBack() {\n const questionIndex = answers.length;\n const prevQuestionRef = answers[questionIndex - 1].questionReference;\n setCurrentQuestion(questions.find(q => q.reference === prevQuestionRef));\n setAnswers(answers.filter((el, i) => i < questionIndex - 1));\n setEndReached(false);\n }\n\n function getSelected() {\n const questionRef = currentQuestion?.reference;\n const answerObj = answers.find(el => el.questionReference === questionRef);\n if (answerObj) {\n return answerObj.answerReference;\n }\n return null;\n }\n\n const showBackButton = answers.length > 0;\n\n const endOfScriptMessage = `${t('activity.phone_bank.script_end')} ${t(\n 'activity.phone_bank.script_end_continue',\n )}`;\n const endScriptEditingMessage = t('activity.phone_bank.script_end');\n const endMessage = isEdit ? endScriptEditingMessage : endOfScriptMessage;\n\n if (!currentQuestion) return null;\n\n if (isPatchThroughConnected) {\n return (\n <StyledInteractiveScript>\n <ScrollView>\n <PatchThroughInfo />\n </ScrollView>\n </StyledInteractiveScript>\n );\n }\n\n return (\n <StyledInteractiveScript>\n <ScrollView>\n {endReached && <Text>{endMessage}</Text>}\n {!endReached && (\n <ScriptBlock\n connectedContact={connectedContact}\n onAnswerSelect={handleSelect}\n selectedAnswerRef={getSelected()}\n answersDisabled={disabledPatchThrough}\n {...currentQuestion}\n />\n )}\n {showBackButton && <BackButton onClick={goBack} />}\n </ScrollView>\n {isEdit && <Button onClick={handleDoneClick}>I'm Done Editing</Button>}\n </StyledInteractiveScript>\n );\n}\n\nInteractiveScript.propTypes = {\n answers: PropTypes.array,\n connectedContact: PropTypes.object.isRequired,\n handleDoneClick: PropTypes.func,\n isEdit: PropTypes.bool,\n isPatchThroughConnected: PropTypes.bool,\n questions: PropTypes.array,\n setAnswers: PropTypes.func.isRequired,\n};\n\nexport default InteractiveScript;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst Line = styled.div`\n background-color: #cfcfcf;\n bottom: 0px;\n display: flex;\n height: 1px;\n position: absolute;\n width: 100%;\n z-index: 0;\n`;\n\nconst Tab = styled.button`\n align-items: center;\n background-color: transparent;\n border: none;\n color: ${({ theme }) => theme.colors.mediumGray};\n cursor: pointer;\n display: flex;\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 15px;\n justify-content: center;\n letter-spacing: 1.2px;\n margin-right: 14px;\n min-width: 50px;\n padding: 0px 4px;\n position: relative;\n height: 32px;\n text-transform: uppercase;\n z-index: 1;\n ${({ $active, theme }) =>\n $active &&\n `\n border-bottom: 3px solid ${theme.colors.black};\n color: ${theme.colors.black};\n `};\n`;\n\nconst TabContent = styled.div`\n display: flex;\n flex: 1;\n flex-direction: column;\n height: 100%;\n width: 100%;\n`;\n\nconst TabRow = styled.div`\n display: flex;\n position: relative;\n`;\n\nfunction Tabs({ pages }) {\n const [activeIndex, setActiveIndex] = React.useState(0);\n\n if (!pages || !pages.length) {\n return null;\n }\n\n return (\n <>\n <TabRow>\n {pages.map((el, i) => (\n <Tab $active={i === activeIndex} key={i} onClick={() => setActiveIndex(i)}>\n {el.title}\n </Tab>\n ))}\n <Line />\n </TabRow>\n <TabContent>{pages[activeIndex]?.content}</TabContent>\n </>\n );\n}\n\nTabs.propTypes = {\n pages: PropTypes.arrayOf(\n PropTypes.shape({\n content: PropTypes.any,\n title: PropTypes.string,\n }),\n ),\n};\n\nTabs.defaultProps = {};\n\nexport default Tabs;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport HelpMessage from '@web/components/DialerActivity/components/HelpMessage';\nimport Instructions from '@web/components/DialerActivity/components/Instructions';\nimport InteractiveScript from '../InteractiveScript';\nimport Tabs from '@web/components/DialerActivity/components/Tabs';\n\nimport { AuthContext } from '@web/utils/context';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nfunction InCallTabs({ activity, interactiveScriptProps, isPatchThroughConnected }) {\n const { connectedContact } = useSelector(state => state.dialer);\n const { user } = React.useContext(AuthContext);\n const simulatedContact = { campaign: activity.campaign, user };\n const [simulatedAnswers, setSimulatedAnswers] = React.useState([]);\n const { loading } = interactiveScriptProps;\n const { t } = useTranslation();\n\n // Reset the preview script once a contact has connected\n React.useEffect(() => {\n setSimulatedAnswers([]);\n }, [connectedContact]);\n\n function getScriptComponent() {\n if (loading || !interactiveScriptProps?.questions?.length) {\n return null;\n }\n\n if (connectedContact) {\n return (\n <InteractiveScript\n connectedContact={connectedContact}\n {...interactiveScriptProps}\n isPatchThroughConnected={isPatchThroughConnected}\n />\n );\n }\n\n // User is in an idle state and we don't have a contact connected so we need\n // to override answers and setAnswers so that we're not changing the values\n // in Redux.\n const simulatedProps = {\n ...interactiveScriptProps,\n answers: simulatedAnswers,\n setAnswers: setSimulatedAnswers,\n };\n\n return (\n <>\n <HelpMessage />\n <InteractiveScript connectedContact={simulatedContact} {...simulatedProps} />\n </>\n );\n }\n\n const pages = [\n {\n content: getScriptComponent(),\n title: t('common.script'),\n },\n {\n content: (\n <>\n <HelpMessage helpMessageKey=\"activity.phone_bank.instructions_help\" />\n <Instructions />\n </>\n ),\n title: t('common.instructions'),\n },\n ];\n return <Tabs pages={pages} />;\n}\n\nInCallTabs.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n id: PropTypes.number.isRequired,\n }),\n description: PropTypes.string.isRequired,\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n }),\n interactiveScriptProps: PropTypes.shape({\n answers: PropTypes.array.isRequired,\n loading: PropTypes.bool.isRequired,\n questions: PropTypes.array.isRequired,\n setAnswers: PropTypes.func.isRequired,\n }).isRequired,\n isPatchThroughConnected: PropTypes.bool,\n};\n\nInCallTabs.defaultProps = {};\n\nexport default InCallTabs;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Button from '@web/components/DialerActivity/components/Button';\n\nconst StyledButton = styled(Button)`\n margin: 0 auto;\n max-width: 500px;\n width: 100%;\n`;\n\nconst StyledInfoBox = styled.div`\n align-items: center;\n background-color: ${({ theme }) => theme.colors.whiteSmokeLighter};\n border-radius: 7px;\n display: flex;\n flex-direction: column;\n max-width: 612px;\n padding: 56px 30px;\n`;\n\nconst Text = styled.p`\n color: ${({ theme }) => theme.colors.darkBlue};\n margin-top: 2px;\n margin-bottom: 40px;\n text-align: center;\n`;\n\nconst Title = styled.h2`\n &&& {\n color: ${({ theme }) => theme.colors.darkBlue};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 24px;\n line-height: 34px;\n text-align: center;\n }\n`;\n\nfunction InfoBox({ buttonProps, icon, text, title }) {\n return (\n <StyledInfoBox>\n {icon}\n <Title>{title}</Title>\n <Text>{text}</Text>\n <StyledButton {...buttonProps} />\n </StyledInfoBox>\n );\n}\n\nInfoBox.propTypes = {\n buttonProps: PropTypes.object,\n icon: PropTypes.any,\n text: PropTypes.any,\n title: PropTypes.any,\n};\n\nInfoBox.defaultProps = {\n buttonProps: {},\n icon: null,\n text: '',\n title: '',\n};\n\nexport default InfoBox;\n","import * as React from 'react';\n// import PropTypes from 'prop-types';\nimport dayjs from 'dayjs';\nimport sendError from '@web/utils/sendError';\nimport styled from 'styled-components';\n\nimport InfoBox from '../InfoBox';\n\nimport { useSelector } from 'react-redux';\n\nconst Bold = styled.span`\n font-family: ${({ theme }) => theme.fonts.bold};\n`;\n\nfunction SessionEnded() {\n const { sessionStartTime, totalCalls } = useSelector(state => state?.dialer);\n const plural = totalCalls !== 1;\n\n function hourStr(h) {\n if (h === 0) {\n return '';\n }\n if (h === 1) {\n return `1 hour and `;\n }\n return `${h} hours and `;\n }\n\n function hms(secs) {\n const hours = Math.floor(secs / (60 * 60));\n\n const divisorForMinutes = secs % (60 * 60);\n const minutes = Math.floor(divisorForMinutes / 60);\n\n const divisorForSeconds = divisorForMinutes % 60;\n const seconds = Math.ceil(divisorForSeconds);\n const obj = {\n h: hours,\n m: `0${minutes.toString()}`.slice(-2),\n s: `0${seconds.toString()}`.slice(-2),\n };\n return obj;\n }\n\n function getTime() {\n try {\n const diffMs = dayjs().diff(sessionStartTime);\n const hmsObj = hms(diffMs / 1000);\n const hours = parseInt(hmsObj.h, 10);\n const mins = parseInt(hmsObj.m, 10);\n return `${hourStr(hours)}${mins} minutes`;\n } catch (err) {\n sendError('Dialer Web - Error retrieving time in SessionEnded', err);\n }\n }\n\n const text = (\n <>\n You were connected to{' '}\n <Bold>\n {totalCalls} {plural ? 'people' : 'person'}\n </Bold>{' '}\n for a total time of <Bold>{getTime()}</Bold>.\n </>\n );\n\n return (\n <InfoBox\n buttonProps={{ children: 'Back to Home', to: '/frontline' }}\n text={text}\n title=\"Your session has ended\"\n />\n );\n}\n\nSessionEnded.propTypes = {};\n\nSessionEnded.defaultProps = {};\n\nexport default SessionEnded;\n","import * as React from 'react';\n// import PropTypes from 'prop-types';\n\nfunction PartyIcon(props) {\n return (\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 118 118\" {...props}>\n <circle cx=\"59\" cy=\"59\" r=\"59\" fill=\"#D5ECEF\" />\n <path\n d=\"M62.2025 52.7976C57.707 48.3021 52.811 45.5211 49.8125 45.5001C48.932 45.4941 48.215 45.7251 47.72 46.2201C45.5375 48.4026 48.482 54.8871 54.2975 60.7026C60.113 66.5181 66.596 69.4626 68.78 67.2801C70.9625 65.0976 68.018 58.6131 62.2025 52.7976Z\"\n fill=\"#4D9DA6\"\n />\n <path\n d=\"M76.25 65L74.75 66.5L74 67.25L74.96 68.21L76.25 69.5L77.75 68L78.5 67.25L77.375 66.125L76.25 65Z\"\n fill=\"#8CC4CA\"\n />\n <path\n d=\"M47.75 81.5L46.25 83L45.5 83.75L46.553 84.803L47.75 86L49.0625 84.6875L50 83.75L49.2515 83L47.75 81.5Z\"\n fill=\"#4D9DA6\"\n />\n <path\n d=\"M43.25 32L41.711 33.539L41 34.25L41.633 34.883L43.25 36.5L44.402 35.348L45.5 34.25L44.2565 33.0065L43.25 32Z\"\n fill=\"#8CC4CA\"\n />\n <path\n d=\"M59.75 32L57.9185 33.8315L57.5 34.25L58.079 34.829L59.75 36.5L62 34.25L59.75 32Z\"\n fill=\"#4D9DA6\"\n />\n <path\n d=\"M62.75 41L61.289 42.461L60.5 43.25L61.52 44.27L62.75 45.5L64.061 44.189L65 43.25L63.9665 42.2165L62.75 41Z\"\n fill=\"#4D9DA6\"\n />\n <path\n d=\"M83.75 48.5L82.742 49.508L81.5 50.75L82.3445 51.5945L83.75 53L85.133 51.617L86 50.75L85.13 49.88L83.75 48.5Z\"\n fill=\"#8CC4CA\"\n />\n <path\n d=\"M34.25 59L32.7035 60.5465L32 61.25L32.8445 62.0945L34.25 63.5L35.7035 62.0465L36.5 61.25L35.681 60.431L34.25 59Z\"\n fill=\"#4D9DA6\"\n />\n <path\n d=\"M83 69.5L81.0785 71.4215L80 72.5L81.008 73.508L83 75.5L85.109 73.391L86 72.5L85.274 71.774L83 69.5Z\"\n fill=\"#4D9DA6\"\n />\n <path\n d=\"M59 75.5L56.9375 77.5625L56 78.5L56.7965 79.2965L59 81.5L61.0625 79.4375L62 78.5L61.2965 77.7965L59 75.5ZM53 53C53.129 52.8845 54.5 48.5 54.5 44C54.5 42.0965 53.984 40.6235 52.9655 39.62C51.3035 37.9835 48.761 38.009 48.719 38H48.5V35H48.6875C48.8 35.003 52.451 34.9295 55.0415 37.4555C56.6735 39.0455 57.5 41.2475 57.5 44C57.5 50 53 53 53 53ZM86 86H83V85.8125C82.9295 83.6555 82.187 81.5 81.6875 81.5C80.594 81.5 79.5185 82.817 78.6545 83.876C77.7245 85.016 76.922 86 75.6875 86C73.6205 86 73.1615 83.546 72.7175 81.1745C72.6425 80.774 72.5465 80.2595 72.437 79.7705C72.3605 79.9265 72.284 80.078 72.215 80.2205C70.8125 83.063 69.362 86 67.0625 86C65.2895 86 63.5 84.608 63.5 81.5H66.5C66.5 82.3835 66.731 83 67.0625 83C67.637 82.718 68.96 80.0375 69.5255 78.893C70.6055 76.7045 71.1995 75.5 72.5 75.5C74.708 75.5 75.194 78.104 75.6665 80.6225C75.7595 81.116 75.8855 81.797 76.0235 82.355C76.13 82.2275 76.235 82.0985 76.331 81.98C77.5295 80.5115 79.1705 78.5 81.6875 78.5C85.5815 78.5 85.9625 84.554 86 85.7675V86Z\"\n fill=\"#8CC4CA\"\n />\n <path\n d=\"M54.2975 60.7025C49.0655 55.4705 46.1705 49.709 47.2295 47.0135L47.2175 47L32 83L68 67.7825L67.9895 67.769C65.2955 68.8295 59.531 65.936 54.2975 60.7025Z\"\n fill=\"#8CC4CA\"\n />\n <path\n d=\"M84.5 32.0015C81.4745 32.051 79.373 32.7035 78.1505 33.917C77.456 34.6055 77.063 35.4755 77.0075 36.443C77.006 36.461 77 36.56 77 36.59C77.027 38.462 77.945 40.0835 78.2675 40.625C78.3275 40.727 78.4325 40.934 78.455 41.009C77.6495 40.9715 76.1945 40.673 75.2825 40.478C72.599 39.9065 70.286 39.4115 68.903 40.5275C68.321 41 68 41.699 68 42.5C68 44.2295 69.119 45.7535 70.0175 46.979C70.3895 47.486 70.952 48.251 71 48.5C71 49.2785 70.4555 49.571 67.577 50.351C64.343 51.227 59 53 56 57.5C60.5 54.5 65.153 54.116 68.36 53.2475C71.1335 52.4975 74 51.7205 74 48.5C74 47.3345 73.241 46.2995 72.4355 45.203C71.891 44.4605 71.234 43.565 71.0495 42.8525C71.876 42.8285 73.574 43.181 74.6555 43.412C76.1255 43.7255 77.477 43.9925 78.56 43.997V44C79.844 44 80.7425 43.3385 81.1205 42.77L81.266 42.494C81.437 42.068 81.5 41.6495 81.5 41.2625C81.5 40.214 81.032 39.392 80.933 39.23C80.7185 38.9075 80.078 37.787 80.0165 36.683C80.015 36.659 80.015 36.5825 80.0165 36.569C80.0375 36.3635 80.1065 36.2 80.264 36.0455C80.5175 35.7935 81.611 34.979 85.25 35H86V32C86 32 84.7115 31.997 84.5 32.0015Z\"\n fill=\"#8CC4CA\"\n />\n <path\n d=\"M83 65H86C86 64.742 85.985 64.4915 85.958 64.25C85.3475 58.9445 78.263 57.5 74 57.5C65 57.5 60.5 62 60.5 62C60.5 62 65 60.5 74 60.5C74.09 60.5 83 60.623 83 65Z\"\n fill=\"#8CC4CA\"\n />\n <path\n d=\"M38.9375 45.5C35.4935 45.5 35.0375 44.969 35.0225 44.951C35.0225 44.951 35 44.8985 34.967 44.894C35.1425 44.603 36.161 44.1185 36.7085 43.859C37.8455 43.319 39.113 42.7145 39.4265 41.5625C39.4745 41.3885 39.5 41.201 39.5 41C39.5 40.8005 39.482 40.6145 39.449 40.4375C39.17 38.966 37.8095 38.255 36.7865 37.7195C35.4245 37.007 35 36.668 35 35.9375C35 35.0675 36.2585 35.003 36.512 35H36.5V32C34.691 32 32 33.0485 32 35.9375C32 38.6015 34.1255 39.713 35.396 40.3775C35.6285 40.5005 35.93 40.658 36.161 40.787C35.918 40.913 35.6405 41.045 35.4185 41.1515C33.977 41.837 32 42.7775 32 44.75C32 48.5 36.5135 48.5 38.9375 48.5C39.0395 48.5 39.131 48.5045 39.212 48.512C38.567 49.2095 36.836 50.4245 33.56 51.587L34.5635 54.4145C36.95 53.567 42.5 51.26 42.5 48.125C42.5 46.8605 41.3855 45.5 38.9375 45.5Z\"\n fill=\"#8CC4CA\"\n />\n </svg>\n );\n}\n\nPartyIcon.propTypes = {};\n\nPartyIcon.defaultProps = {};\n\nexport default PartyIcon;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\n\nimport DotLoader from '@web/components/DotLoader';\nimport InfoBox from '../InfoBox';\nimport PartyIcon from './PartyIcon';\n\nimport { callComplete, machineTransition } from '@web/reducers/dialerReducer';\nimport useQueueCall from '../CallStatus/components/VolunteerIdle/useQueueCall';\nimport {\n SESSION_STATS_VIEWED,\n SESSION_STATS_VIEWED_AUTO_CONNECT,\n} from '@web/reducers/dialerReducer/dialerMachine';\nimport { useDispatch, useSelector } from 'react-redux';\n\nfunction SessionStats({ activity }) {\n const dispatch = useDispatch();\n const [loading, setLoading] = React.useState(true);\n // We add a +1 here because we increment the totalCalls property as\n // part of the callComplete action.\n const volunteerTotal = useSelector(state => state.dialer.totalCalls + 1);\n const [phoneBankTotal, setPhoneBankTotal] = React.useState(volunteerTotal);\n\n const { queueCallIfConnected } = useQueueCall(activity?.id);\n\n React.useEffect(() => {\n const url = `/api/v2/client/activities/${activity.id}/voice_call_pool/metrics`;\n axios(url)\n .then(({ data }) => {\n setPhoneBankTotal(data?.voter_calls_attempted_count || volunteerTotal);\n })\n .catch(() => {\n // MTS - We don't need to do anything here\n })\n .finally(() => {\n setLoading(false);\n });\n // eslint-disable-next-line\n }, []);\n\n function handleClick() {\n dispatch(callComplete());\n\n // We have to simulate the \"Queue Next Call\" click in case dialer_auto_queue is true\n if (activity?.campaign?.dialer_auto_queue_enabled) {\n dispatch(machineTransition(SESSION_STATS_VIEWED_AUTO_CONNECT));\n queueCallIfConnected();\n } else {\n dispatch(machineTransition(SESSION_STATS_VIEWED));\n }\n }\n\n const buttonProps = {\n children: activity?.campaign?.dialer_auto_queue_enabled ? 'Next Call' : 'Continue',\n loading,\n onClick: handleClick,\n };\n\n const totalPlural = phoneBankTotal !== 1;\n const volunteerPlural = volunteerTotal !== 1;\n\n if (loading) {\n return <DotLoader centered color=\"teal\" />;\n }\n\n const text = `\n You've connected to ${volunteerTotal} call${\n volunteerPlural ? 's' : ''\n } this session. Together, we've made ${phoneBankTotal} call${\n totalPlural ? 's' : ''\n } total so far this phone bank!\n `;\n\n return (\n <InfoBox\n buttonProps={buttonProps}\n icon={<PartyIcon height={78} style={{ marginBottom: 14 }} />}\n text={text}\n title=\"Way to go!\"\n />\n );\n}\n\nSessionStats.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n dialer_auto_queue_enabled: PropTypes.bool,\n }),\n id: PropTypes.number.isRequired,\n }).isRequired,\n};\n\nSessionStats.defaultProps = {};\n\nexport default SessionStats;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport useInterpolation from '@web/components//DialerActivity/useInterpolation';\nimport { useSelector } from 'react-redux';\n\nconst StyledQuestion = styled.h3`\n color: ${({ theme }) => theme.colors.darkBlue};\n font-family: ${({ theme }) => theme.fonts.light};\n font-size: 22px;\n margin-bottom: 8px;\n`;\n\nfunction Question({ text }) {\n const connectedContact = useSelector(state => state.dialer.connectedContact);\n const { interpolated, interpolationLoading } = useInterpolation(text, connectedContact);\n if (interpolationLoading) {\n return null;\n }\n return <StyledQuestion dangerouslySetInnerHTML={{ __html: interpolated }} />;\n}\n\nQuestion.propTypes = {\n text: PropTypes.string.isRequired,\n};\n\nQuestion.defaultProps = {};\n\nexport default Question;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Body, Title } from '@web/components/DialerActivity/components/TextStyles';\nimport Button from '@web/components/DialerActivity/components/Button';\n\nconst StyledMessageBox = styled.div`\n align-items: center;\n background-color: ${({ theme }) => theme.colors.whiteSmokeLighter};\n border-radius: 7px;\n display: flex;\n flex-direction: column;\n max-width: 612px;\n padding: 24px;\n`;\n\nconst StyledTitle = styled(Title)`\n line-height: 26px;\n margin-bottom: 10px;\n margin-top: 6px;\n`;\n\nconst StyledButton = styled(Button)`\n width: 100%;\n`;\n\nfunction MessageBox({ handleEditPress, loading, submitResponses }) {\n return (\n <StyledMessageBox>\n <StyledTitle>\n Your call has ended.\n <br />\n Do you need to edit your answers?\n </StyledTitle>\n <Body style={{ marginBottom: 26, maxWidth: '100%' }}>\n You will not be able to edit answers beyond this screen.\n </Body>\n <StyledButton disabled={loading} onClick={submitResponses} style={{ marginBottom: 4 }}>\n I'm All Done\n </StyledButton>\n <StyledButton disabled={loading} onClick={handleEditPress} variant=\"gray\">\n I Need to Edit\n </StyledButton>\n </StyledMessageBox>\n );\n}\n\nMessageBox.propTypes = {\n handleEditPress: PropTypes.func.isRequired,\n loading: PropTypes.bool.isRequired,\n submitResponses: PropTypes.func.isRequired,\n};\n\nMessageBox.defaultProps = {};\n\nexport default MessageBox;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\nimport sendError from '@web/utils/sendError';\nimport styled from 'styled-components';\n\nimport { Body, Title } from '@web/components/DialerActivity/components/TextStyles';\nimport InteractiveScript from '../InteractiveScript';\nimport Question from './Question';\nimport MessageBox from './MessageBox';\n\nimport { machineTransition, setCurrentAnswers } from '@web/reducers/dialerReducer';\nimport { RESPONSES_SUBMITTED } from '@web/reducers/dialerReducer/dialerMachine';\nimport { useDispatch, useSelector } from 'react-redux';\n\nconst Answer = styled.p`\n color: ${({ theme }) => theme.colors.darkBlue};\n`;\n\nconst Item = styled.div`\n margin-bottom: 20px;\n`;\n\nconst StyledReviewResponses = styled.div`\n display: flex;\n height: 100%;\n flex-direction: column;\n`;\n\nconst Scroll = styled.div`\n flex: 1;\n overflow-y: auto;\n`;\n\nfunction ViewResponses({ interactiveScriptProps }) {\n const dispatch = useDispatch();\n const { connectedContact, voter_call_id } = useSelector(state => state.dialer);\n const [submitLoading, setSubmitLoading] = React.useState(false);\n const [isEditing, setIsEditing] = React.useState(false);\n const { answers, questions } = interactiveScriptProps;\n const loading = interactiveScriptProps.loading || submitLoading;\n\n function handleEditPress() {\n dispatch(setCurrentAnswers([]));\n setIsEditing(true);\n }\n\n function submitResponses() {\n if (loading) {\n return;\n }\n\n // Don't attempt the API request if the user did not select\n // any respones.\n if (answers.length === 0) {\n return dispatch(machineTransition(RESPONSES_SUBMITTED));\n }\n\n const url = `/api/v2/client/activity_script_responses`;\n setSubmitLoading(true);\n\n // build answers into the format the back end requires\n const responses = answers.reduce(\n (acc, answer) => ({\n ...acc,\n [answer.questionReference]: answer.answerReference,\n }),\n {},\n );\n\n const payload = {\n activity_script_id: interactiveScriptProps.scriptId,\n responses,\n voter_voice_call_id: voter_call_id,\n };\n\n axios\n .patch(url, payload)\n .then(res => {\n // We don't need to do anything here\n })\n .catch(err => {\n sendError('Dialer - Error submitting survey', err);\n })\n .finally(() => {\n dispatch(machineTransition(RESPONSES_SUBMITTED));\n });\n }\n\n const questionsAndAnswers = answers.map(answer => {\n const question = questions.find(q => answer.questionReference === q.reference);\n const questionObj = { reference: question.reference, stem: question.stem };\n return {\n answer: question.options.find(option => answer.answerReference === option.reference),\n question: questionObj,\n };\n });\n\n if (isEditing) {\n return (\n <>\n <Title>Editing Responses</Title>\n <InteractiveScript\n connectedContact={connectedContact}\n handleDoneClick={() => setIsEditing(false)}\n isEdit\n {...interactiveScriptProps}\n />\n </>\n );\n }\n\n const noResponses = answers.length === 0;\n const noResponsesMsg = 'You have not selected any responses for this call.';\n\n return (\n <StyledReviewResponses>\n <Scroll>\n <Title style={{ marginBottom: 16 }}>Review Responses</Title>\n {noResponses && <Body>{noResponsesMsg}</Body>}\n {questionsAndAnswers.map(el => (\n <Item key={el.question.reference}>\n <Question text={el.question.stem} />\n <Answer>{el.answer.label}</Answer>\n </Item>\n ))}\n </Scroll>\n <MessageBox\n handleEditPress={handleEditPress}\n loading={loading}\n submitResponses={submitResponses}\n />\n </StyledReviewResponses>\n );\n}\n\nViewResponses.propTypes = {\n interactiveScriptProps: PropTypes.shape({\n answers: PropTypes.array.isRequired,\n loading: PropTypes.bool.isRequired,\n questions: PropTypes.array.isRequired,\n scriptId: PropTypes.number.isRequired,\n setAnswers: PropTypes.func.isRequired,\n }),\n};\n\nViewResponses.defaultProps = {};\n\nexport default ViewResponses;\n","import usePatchThrough from '@web/components/DialerActivity/usePatchThrough';\nimport { Spin } from 'antd';\nimport React, { useEffect } from 'react';\nimport styled from 'styled-components';\n\nconst StyledSurvey = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n margin-top: 40px;\n`;\n\nconst SurveyPatchThroughSuccess = () => {\n const { handlePatchThroughCallOutcome } = usePatchThrough();\n\n useEffect(() => {\n handlePatchThroughCallOutcome();\n }, [handlePatchThroughCallOutcome]);\n\n return (\n <StyledSurvey>\n <Spin />\n </StyledSurvey>\n );\n};\n\nSurveyPatchThroughSuccess.propTypes = {};\n\nexport default SurveyPatchThroughSuccess;\n","import * as React from 'react';\nimport axios from 'axios';\nimport sendError from '@web/utils/sendError';\nimport { message } from 'antd';\n\nfunction useActivityScript(campaignId, activityId) {\n const [loading, setLoading] = React.useState(true);\n const [dialog, setDialog] = React.useState(null);\n const [scriptId, setScriptId] = React.useState(null);\n\n React.useEffect(() => {\n // in case this re-runs, set loading back to true\n setLoading(true);\n const url = `/api/v2/campaigns/${campaignId}/activities/${activityId}/scripts`;\n\n if (!campaignId || !activityId) {\n message.error('An error has occurred, please reload the page.');\n return sendError('Tried to call useActivityScript hook without required arguments', {\n error: 'manual error',\n });\n }\n\n axios(url)\n .then(({ data }) => {\n if (data?.data?.length) {\n setDialog(data.data[0]?.dialog);\n setScriptId(data.data[0]?.id);\n }\n })\n .catch(err => sendError('error fetching activity scripts', err))\n .finally(setLoading(false));\n // eslint-disable-next-line\n }, [campaignId, activityId]);\n\n return { dialog, scriptId, scriptLoading: loading };\n}\n\nexport default useActivityScript;\n","import { setCurrentAnswers } from '@web/reducers/dialerReducer';\nimport useActivityScript from './useActivityScript';\nimport { useDispatch, useSelector } from 'react-redux';\n\nfunction useAnswers(activity) {\n const dispatch = useDispatch();\n const { dialog, scriptId, scriptLoading } = useActivityScript(\n activity?.campaign?.id,\n activity?.id,\n );\n const { currentAnswers } = useSelector(state => state?.dialer);\n\n function setAnswers(newAnswers) {\n dispatch(setCurrentAnswers(newAnswers));\n }\n\n return {\n answers: currentAnswers,\n loading: scriptLoading,\n questions: dialog?.items || [],\n scriptId,\n setAnswers,\n };\n}\n\nexport default useAnswers;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport CallOutcome from '../CallOutcome';\nimport InCallTabs from '../InCallTabs';\nimport Loading from '@web/components/common/Loading';\nimport SessionEnded from '../SessionEnded';\nimport SessionStats from '../SessionStats';\nimport TagsAndCustomFields from '../TagsAndCustomFields';\nimport ViewResponses from '../ViewResponses';\nimport SurveyPatchThroughSuccess from '../SurveyPatchThroughSuccess/SurveyPatchThroughSuccess';\n\nimport useAnswers from './useAnswers';\nimport { useSelector } from 'react-redux';\n\nfunction MainContent({ activity }) {\n const { currentState } = useSelector(state => state.dialer);\n const interactiveScriptProps = useAnswers(activity);\n\n if (interactiveScriptProps.loading) {\n return <Loading />;\n }\n\n switch (currentState) {\n case 'callOutcome':\n return <CallOutcome activity={activity} />;\n case 'sessionStats':\n return <SessionStats activity={activity} />;\n case 'sessionEnded':\n return <SessionEnded />;\n case 'tagsAndCustomFields':\n return <TagsAndCustomFields activity={activity} />;\n case 'viewResponses':\n return <ViewResponses interactiveScriptProps={interactiveScriptProps} />;\n case 'patchThroughSuccess':\n return <SurveyPatchThroughSuccess />;\n case 'patchThroughConnected':\n return (\n <InCallTabs\n activity={activity}\n interactiveScriptProps={interactiveScriptProps}\n isPatchThroughConnected\n />\n );\n default:\n return <InCallTabs activity={activity} interactiveScriptProps={interactiveScriptProps} />;\n }\n}\n\nMainContent.propTypes = {\n activity: PropTypes.shape({\n id: PropTypes.number.isRequired,\n }).isRequired,\n};\n\nMainContent.defaultProps = {};\n\nexport default MainContent;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { media } from '@web/styles/theme';\n\nconst StyledPageLayout = styled.div`\n min-height: 100vh;\n`;\n\nconst Inner = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n margin: 0 auto;\n min-height: 100vh;\n max-width: 742px;\n padding: 40px 16px 20px;\n // MTS - this will preserve the scrollbar so we do\n // not get weird content shifts in the tabbed view\n ${media.ns} {\n padding: 40px 32px 20px;\n }\n`;\n\nfunction PageLayout({ children, ...rest }) {\n return (\n <StyledPageLayout {...rest}>\n <Inner>{children}</Inner>\n </StyledPageLayout>\n );\n}\n\nPageLayout.propTypes = {\n children: PropTypes.any.isRequired,\n};\n\nPageLayout.defaultProps = {};\n\nexport default PageLayout;\n","// This is an adaptation of the modal in the admin app \"ImportListModal\"\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { createGlobalStyle } from 'styled-components';\n\nimport { Modal as AntModal } from 'antd';\n\nconst Content = styled.div`\n display: flex;\n flex: 1;\n justify-content: center;\n padding: 0 60px;\n width: 100%;\n`;\n\nconst ModalStyle = createGlobalStyle`\n &&& {\n .import-modal .ant-modal {\n max-width: 517px;\n width: 100%;\n }\n .import-modal .ant-modal-body{\n display: flex;\n flex-direction: column;\n flex: 1;\n padding: 0;\n }\n .import-modal .ant-modal-content {\n border-radius: 6px;\n border-top-left-radius: 0px;\n display: flex;\n flex-direction: column;\n min-height: 558px;\n overflow: hidden;\n padding: 0px 0px 40px;\n }\n }\n`;\n\nfunction Modal({ children, modalOpen, progress, ...rest }) {\n return (\n <>\n <ModalStyle />\n <AntModal\n bodyStyle={{ padding: 0 }}\n closable={false}\n footer={null}\n onCancel={() => null}\n visible={modalOpen}\n wrapClassName=\"import-modal\"\n {...rest}\n >\n {progress}\n <Content>{children}</Content>\n </AntModal>\n </>\n );\n}\n\nModal.propTypes = {\n children: PropTypes.any,\n modalOpen: PropTypes.bool.isRequired,\n progress: PropTypes.any,\n};\n\nModal.defaultProps = {};\n\nexport default React.memo(Modal);\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { animated, useSpring } from 'react-spring';\n\nconst Wrapper = styled.div`\n display: flex;\n background-color: #ececec;\n height: 12px;\n`;\n\nconst ProgressBar = styled(animated.div)`\n background-color: ${({ theme }) => theme.colors.darkBlue};\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n height: 12px;\n`;\n\nfunction Progress({ progress }) {\n const width = Math.ceil(progress * 100);\n const isLast = width === 100;\n\n const style = useSpring({\n borderBottomRightRadius: isLast ? 0 : 6,\n borderTopRightRadius: isLast ? 0 : 6,\n width: `${width}%`,\n });\n\n return (\n <>\n <Wrapper>\n <ProgressBar style={style} />\n </Wrapper>\n </>\n );\n}\n\nProgress.propTypes = {\n progress: PropTypes.number.isRequired,\n};\n\nProgress.defaultProps = {};\n\nexport default Progress;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Button from '@web/components/DialerActivity/components/Button';\n\nimport { useHistory } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nconst StyledBackButton = styled(Button)`\n font-family: ${({ theme }) => theme.fonts.bold};\n margin-top: 6px;\n width: 200px;\n`;\n\nfunction BackButton({ children, ...rest }) {\n let history = useHistory();\n const { t } = useTranslation();\n\n return (\n <StyledBackButton onClick={history.pop} variant=\"gray\" {...rest}>\n {children || t('common.back')}\n </StyledBackButton>\n );\n}\n\nBackButton.propTypes = {\n children: PropTypes.any,\n};\n\nBackButton.defaultProps = {\n children: null,\n};\n\nexport default BackButton;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\n\nimport Button from '@web/components/DialerActivity/components/Button';\n\nconst StyledNextButton = styled(Button)`\n width: 227px;\n`;\n\nfunction NextButton({ children, ...rest }) {\n const { t } = useTranslation();\n\n return (\n <StyledNextButton data-testid=\"slideshow-next-button\" {...rest}>\n {children ?? t('common.next')}\n </StyledNextButton>\n );\n}\n\nNextButton.propTypes = {\n children: PropTypes.any,\n};\n\nNextButton.defaultProps = {\n children: null,\n};\n\nexport default NextButton;\n","import styled from 'styled-components';\n\nexport const CopyWrapper = styled.div`\n margin-bottom: 40px;\n margin-top: 16px;\n`;\n\nconst Page = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n margin-top: 70px;\n`;\n\nexport const PageCopy = styled.div`\n flex: 1;\n`;\n\nexport default Page;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Body, Title } from '@web/components/DialerActivity/components/TextStyles';\nimport BackButton from '../../components/BackButton';\nimport ConnectIcon from '@web/components/DialerActivity/icons/Connect';\nimport NextButton from '../../components/NextButton';\nimport Page, { CopyWrapper, PageCopy } from '../../components/Page';\nimport { useTranslation } from 'react-i18next';\n\nfunction GrabPhone({ onBack, onNext }) {\n const { t } = useTranslation();\n\n return (\n <Page>\n <ConnectIcon size={118} />\n <PageCopy>\n <CopyWrapper>\n <Title>{t('activity.phone_bank.grab_phone')}</Title>\n <Body>{t('activity.phone_bank.grab_phone_description_short')}</Body>\n </CopyWrapper>\n </PageCopy>\n <NextButton onClick={onNext} />\n <BackButton onClick={onBack}>{t('common.cancel')}</BackButton>\n </Page>\n );\n}\n\nGrabPhone.propTypes = {\n onBack: PropTypes.func.isRequired,\n onNext: PropTypes.func.isRequired,\n};\n\nexport default GrabPhone;\n","import styled, { keyframes } from 'styled-components';\n\nconst ellipsis = keyframes`\n from { width: 6px; }\n to { width: 21px; }\n`;\n\nconst TypingDots = styled.span`\n display: inline-block;\n width: 18px;\n &::after {\n content: '...';\n display: flex;\n overflow: hidden;\n vertical-align: bottom;\n animation: ${ellipsis} 1.5s steps(3, end) infinite;\n }\n`;\n\nexport default TypingDots;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Body, Title } from '@web/components/DialerActivity/components/TextStyles';\nimport BackButton from '../../components/BackButton';\nimport NextButton from '../../components/NextButton';\nimport Page, { CopyWrapper, PageCopy } from '../../components/Page';\nimport PhoneIcon from '@web/components/DialerActivity/icons/Phone';\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { formatPhoneNumber } from '@admin/utils/formatPhoneNumber';\nimport Button from '@web/components/DialerActivity/components/Button';\nimport DotsTyping from '@web/components/DotsTypingAnimation';\n\nconst StyledButton = styled(Button)`\n width: 227px;\n margin-top: 8px;\n &&& {\n color: ${({ theme }) => theme.colors.blue};\n }\n`;\n\nfunction Dialing({ onBack, onNext, onDoNotReceiveCall }) {\n const { t } = useTranslation();\n\n const dialerState = useSelector(state => state.dialer);\n const { callData, volunteerPhone } = dialerState;\n\n const handleCallDoNotReceived = onDoNotReceiveCall ?? onBack;\n\n return (\n <Page>\n <PhoneIcon size={118} />\n <PageCopy>\n <CopyWrapper>\n <Title>\n {t('activity.phone_bank.were_calling')} {formatPhoneNumber(volunteerPhone)}\n <DotsTyping />\n </Title>\n <Body\n style={{ marginBottom: 20 }}\n dangerouslySetInnerHTML={{\n __html: t('activity.phone_bank.you_will_receive_a_call', {\n phone: formatPhoneNumber(callData?.campaign_number),\n }),\n }}\n />\n </CopyWrapper>\n </PageCopy>\n <NextButton onClick={onNext}>{t('activity.phone_bank.call_answered')}</NextButton>\n <StyledButton variant=\"outline\" onClick={handleCallDoNotReceived}>\n {t('activity.phone_bank.call_do_not_received')}\n </StyledButton>\n <BackButton onClick={onBack}>{t('common.cancel')}</BackButton>\n </Page>\n );\n}\n\nDialing.propTypes = {\n dialerState: PropTypes.shape({\n callData: PropTypes.shape({\n campaign_number: PropTypes.string,\n }),\n phoneNumber: PropTypes.string.isRequired,\n }),\n onBack: PropTypes.func.isRequired,\n onDoNotReceiveCall: PropTypes.func,\n onNext: PropTypes.func.isRequired,\n};\n\nexport default Dialing;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Form, Input } from 'antd';\nimport { PhoneOutlined } from '@ant-design/icons';\nimport ReactInputMask from 'react-input-mask';\nimport styled from 'styled-components';\n\nconst StyledInput = styled(Input)`\n .ant-input-group-addon {\n > span {\n margin-bottom: 8px;\n }\n }\n`;\n\nfunction PhoneInput({ phoneNumber, setPhoneNumber, ...rest }) {\n const onPhoneChangeHandler = React.useCallback(\n ({ target: { value: number } }) => setPhoneNumber(number),\n [setPhoneNumber],\n );\n\n return (\n <Form.Item style={{ maxWidth: 387 }}>\n <ReactInputMask\n onChange={onPhoneChangeHandler}\n value={phoneNumber}\n mask={'(999) 999-9999'}\n {...rest}\n >\n {inputProps => (\n <StyledInput\n addonBefore={<PhoneOutlined />}\n placeholder={'Phone Number'}\n {...inputProps}\n />\n )}\n </ReactInputMask>\n </Form.Item>\n );\n}\n\nPhoneInput.propTypes = {\n phoneNumber: PropTypes.string.isRequired,\n setPhoneNumber: PropTypes.func.isRequired,\n};\n\nPhoneInput.defaultProps = {};\n\nexport default PhoneInput;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\nimport sendError from '@web/utils/sendError';\nimport styled from 'styled-components';\nimport { setCallData, setVolunteerPhone, volunteerConnected } from '@web/reducers/dialerReducer';\n\nimport { AuthContext } from '@web/utils/context';\nimport BackButton from '../../components/BackButton';\nimport { Body, Title } from '@web/components/DialerActivity/components/TextStyles';\nimport { message } from 'antd';\nimport NextButton from '../../components/NextButton';\nimport Page, { CopyWrapper, PageCopy } from '../../components/Page';\nimport PhoneInput from './PhoneInput';\nimport PhoneNumberIcon from '@web/components/DialerActivity/icons/PhoneNumber';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nconst InputContainer = styled.div`\n margin: 0 auto;\n max-width: 227px;\n`;\n\nfunction EnterPhoneNumber({ activity, body, onBack, onNext, title, buttonText }) {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const { volunteerPhone } = useSelector(state => state.dialer);\n const [loading, setLoading] = React.useState(false);\n const { user } = React.useContext(AuthContext);\n\n React.useEffect(() => {\n if (!volunteerPhone) {\n handleSetPhone(user?.phone || '');\n }\n // eslint-disable-next-line\n }, []);\n\n function handleSetPhone(phone) {\n dispatch(setVolunteerPhone(removeStart(phone)));\n }\n\n function removeStart(p) {\n if (!p) {\n return null;\n }\n if (p.slice(0, 2) === '+1') {\n return p.slice(2);\n }\n return p;\n }\n\n function callUser() {\n setLoading(true);\n const url = `/api/v2/activities/${activity.id}/volunteer_voice_call`;\n // Remove mask and add country code to avoid API errors\n const phone = `+1${volunteerPhone.replace(/\\D/g, '')}`;\n\n axios\n .patch(url, { phone })\n .then(({ data }) => {\n dispatch(setCallData(data));\n dispatch(volunteerConnected());\n onNext();\n })\n .catch(err => {\n sendError('Error calling user', {\n request: err?.request,\n response: err?.response,\n });\n message.error(\"We're unable to make a call at this time. Please try again.\");\n })\n .finally(() => {\n setLoading(false);\n });\n }\n\n return (\n <Page>\n <PhoneNumberIcon size={118} />\n <PageCopy>\n <CopyWrapper>\n <Title>{title || t('activity.phone_bank.enter_phone')}</Title>\n <Body>{body || t('activity.phone_bank.enter_phone_description_short')}</Body>\n </CopyWrapper>\n <InputContainer>\n <PhoneInput\n data-testid=\"phone-input\"\n phoneNumber={volunteerPhone}\n setPhoneNumber={handleSetPhone}\n />\n </InputContainer>\n </PageCopy>\n <NextButton\n data-testid=\"call-me-button\"\n disabled={loading || !volunteerPhone.length}\n loading={loading}\n onClick={callUser}\n >\n {buttonText || t('activity.phone_bank.call_me')}\n </NextButton>\n {onBack && <BackButton onClick={onBack} />}\n </Page>\n );\n}\n\nEnterPhoneNumber.propTypes = {\n activity: PropTypes.shape({\n id: PropTypes.number.isRequired,\n }),\n body: PropTypes.string,\n buttonText: PropTypes.string,\n onBack: PropTypes.func,\n onNext: PropTypes.func.isRequired,\n title: PropTypes.string,\n};\n\nEnterPhoneNumber.defaultProps = {\n body: null,\n onBack: null,\n title: null,\n};\n\nexport default EnterPhoneNumber;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Success({ size, ...rest }) {\n return (\n <svg height={size} viewBox=\"0 0 78 78\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...rest}>\n <circle cx=\"39\" cy=\"39\" r=\"39\" fill=\"#D5ECEF\" />\n <g clipPath=\"url(#clip0_652:3117)\">\n <path\n d=\"M54.4236 39C54.4236 47.5178 47.5177 54.4238 38.9999 54.4238C30.4821 54.4238 23.5762 47.5178 23.5762 39C23.5762 30.4823 30.4821 23.5763 38.9999 23.5763C47.5177 23.5763 54.4236 30.4823 54.4236 39Z\"\n fill=\"#8CC4CA\"\n />\n <path\n d=\"M54.374 23.8637L35.2661 43.692L38.403 46.715L57.5109 26.8867L54.374 23.8637Z\"\n fill=\"#8CC4CA\"\n />\n <path\n d=\"M50.102 28.2937L35.2659 43.6935L38.4023 46.7158L52.6885 31.8874C52.0006 30.5664 51.1269 29.3564 50.102 28.2937Z\"\n fill=\"#4D9DA6\"\n />\n <path\n d=\"M32.0391 34.5795L29.0232 37.7231L38.4041 46.7229L41.42 43.5792L32.0391 34.5795Z\"\n fill=\"#4D9DA6\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_652:3117\">\n <rect\n width=\"37.0169\"\n height=\"37.0169\"\n fill=\"white\"\n transform=\"translate(20.4915 20.4916)\"\n />\n </clipPath>\n </defs>\n </svg>\n );\n}\n\nSuccess.propTypes = {\n size: PropTypes.number,\n};\n\nSuccess.defaultProps = {\n size: 78,\n};\n\nexport default Success;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport BackButton from '../../components/BackButton';\nimport NextButton from '../../components/NextButton';\nimport Page, { PageCopy } from '../../components/Page';\nimport SuccessIcon from '@web/components/DialerActivity/icons/Success';\nimport { Title } from '@web/components/DialerActivity/components/TextStyles';\n\nimport { machineTransition } from '@web/reducers/dialerReducer';\nimport { VOLUNTEER_ANSWERED } from '@web/reducers/dialerReducer/dialerMachine';\nimport { useDispatch } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nconst StyledPageCopy = styled(PageCopy)`\n align-items: center;\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-top: -60px;\n`;\n\nfunction Success({ onBack, onNext }) {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n return (\n <Page>\n <StyledPageCopy>\n <SuccessIcon size={118} />\n <Title>{t('activity.phone_bank.you_are_in')}</Title>\n </StyledPageCopy>\n <NextButton onClick={() => dispatch(machineTransition(VOLUNTEER_ANSWERED))}>\n {t('activity.phone_bank.you_are_in_button_text')}\n </NextButton>\n <BackButton onClick={onBack}>{t('common.cancel')}</BackButton>\n </Page>\n );\n}\n\nSuccess.propTypes = {\n onBack: PropTypes.func.isRequired,\n onNext: PropTypes.func.isRequired,\n};\n\nSuccess.defaultProps = {};\n\nexport default Success;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport Header from '@web/components/DialerActivity/components/Header';\nimport Modal from './components/Modal';\nimport PageLayout from '@web/components/DialerActivity/components/PageLayout';\nimport Progress from './components/Progress';\n\n// pages\nimport GrabPhone from './pages/GrabPhone';\nimport Dialing from './pages/Dialing';\nimport EnterPhoneNumber from './pages/EnterPhoneNumber';\nimport Success from './pages/Success';\n\nfunction ReceiveCall({ activity, history }) {\n const [pageIndex, setPageIndex] = React.useState(0);\n const [enterPhoneAgain, setEnterPhoneAgain] = React.useState(false);\n const { t } = useTranslation();\n function onBack() {\n if (pageIndex === 0) {\n history.goBack();\n }\n setPageIndex(pageIndex - 1);\n setEnterPhoneAgain(false);\n }\n\n function onDoNotReceiveCall() {\n setPageIndex(pageIndex - 1);\n setEnterPhoneAgain(true);\n }\n\n function onNext() {\n if (pageIndex === pages.length - 1) {\n // Just return early\n return;\n }\n setPageIndex(pageIndex + 1);\n }\n const pageProps = { activity, onBack, onDoNotReceiveCall, onNext };\n const pages = [\n <GrabPhone {...pageProps} />,\n <EnterPhoneNumber\n {...pageProps}\n title={enterPhoneAgain ? t('activity.phone_bank.enter_phone_again') : null}\n body={enterPhoneAgain ? t('activity.phone_bank.enter_phone_again_description') : null}\n buttonText={enterPhoneAgain ? t('activity.phone_bank.enter_phone_again_button_text') : null}\n />,\n <Dialing {...pageProps} />,\n <Success {...pageProps} />,\n ];\n\n return (\n <PageLayout>\n <Header activity={activity} backLink={`preview-script`} />\n <Modal\n modalOpen\n onClose={() => null}\n progress={<Progress progress={(pageIndex + 1) / pages.length} />}\n style={{ maxWidth: 517 }}\n >\n {pages[pageIndex]}\n </Modal>\n </PageLayout>\n );\n}\n\nReceiveCall.propTypes = {\n activity: PropTypes.any.isRequired,\n history: PropTypes.shape({\n goBack: PropTypes.func.isRequired,\n }),\n};\n\nReceiveCall.defaultProps = {};\n\nexport default ReceiveCall;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Dialing from '../ReceiveCall/pages/Dialing';\nimport EnterPhoneNumber from '../ReceiveCall/pages/EnterPhoneNumber';\nimport Header from '@web/components/DialerActivity/components/Header';\nimport Modal from '../ReceiveCall/components/Modal';\nimport PageLayout from '@web/components/DialerActivity/components/PageLayout';\n\nimport { machineTransition, volunteerReconnected } from '@web/reducers/dialerReducer';\nimport { RECONNECTED } from '@web/reducers/dialerReducer/dialerMachine';\nimport { useDispatch } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nconst pages = {\n ENTER_PHONE_NUMBER: 'ENTER_PHONE_NUMBER',\n RECEIVING_CALL: 'RECEIVING_CALL',\n};\n\nfunction VolunteerDisconnected({ activity }) {\n const [currentPage, setCurrentPage] = React.useState(pages.ENTER_PHONE_NUMBER);\n const dispatch = useDispatch();\n const { t } = useTranslation();\n\n function handleReconnected() {\n dispatch(volunteerReconnected());\n dispatch(machineTransition(RECONNECTED));\n }\n\n const phoneNumberBody = t('activity.phone_bank.phone_connection_lost');\n return (\n <PageLayout>\n <Header activity={activity} backLink={`preview-script`} />\n <Modal modalOpen onClose={() => null} progress={null} style={{ maxWidth: 517 }}>\n {currentPage === pages.ENTER_PHONE_NUMBER && (\n <EnterPhoneNumber\n activity={activity}\n body={phoneNumberBody}\n onNext={() => setCurrentPage(pages.RECEIVING_CALL)}\n title={t('common.connection_lost')}\n />\n )}\n {currentPage === pages.RECEIVING_CALL && (\n <Dialing\n activity={activity}\n onBack={() => setCurrentPage(pages.ENTER_PHONE_NUMBER)}\n onNext={handleReconnected}\n />\n )}\n </Modal>\n </PageLayout>\n );\n}\n\nVolunteerDisconnected.propTypes = {\n activity: PropTypes.object.isRequired,\n};\n\nVolunteerDisconnected.defaultProps = {};\n\nexport default VolunteerDisconnected;\n","import * as React from 'react';\nimport axios from 'axios';\nimport sendError from '@web/utils/sendError';\n\nimport { EXIT_ACTIVITY } from '@web/reducers/dialerReducer/dialerMachine';\nimport { init, machineTransition, setActivityId } from '@web/reducers/dialerReducer';\nimport { useDispatch, useSelector } from 'react-redux';\n\nfunction useExitActivity(activityId) {\n const dispatch = useDispatch();\n const { currentState } = useSelector(state => state.dialer);\n\n React.useEffect(() => {\n // Set the activityId when this mounts\n dispatch(setActivityId(activityId));\n // On unmount\n return () => {\n endSession();\n dispatch(init());\n dispatch(machineTransition(EXIT_ACTIVITY));\n };\n // eslint-disable-next-line\n }, []);\n\n function endSession() {\n const dontSendRequest = ['dialingVolunteer'];\n if (dontSendRequest.includes(currentState)) {\n return;\n }\n const url = `/api/v2/activities/${activityId}/volunteer_voice_call`;\n axios\n .delete(url)\n .then(res => {\n // We don't do anything here\n })\n .catch(err => {\n // MTS - 2/17/22 We've decided not to send errors to Sentry if this fails.\n // The most likely scenario is that the user has already clicked the \"End\n // Session\" button which ended their session in a previous state. This is\n // a catch-all for when a user leaves the activity in any other way.\n\n // MTS - We'll still send an error if there isn't an activity id just in case.\n if (!activityId) {\n sendError('Attempted to exit activity without providing an activity id.', err);\n }\n });\n }\n}\n\nexport default useExitActivity;\n","import * as React from 'react';\nimport Pusher from 'pusher-js';\nimport { message } from 'antd';\nimport axios from 'axios';\nimport { addBreadcrumb } from '@web/utils/sendError';\nimport { PusherMock } from 'pusher-js-mock';\n\nimport {\n PATCH_THROUGH_CONNECTED,\n patchThroughConnected,\n PHONE_BANK_ENDED,\n PHONE_BANK_NOT_STARTED,\n PHONE_BANK_PAUSED,\n PHONE_BANK_STARTED,\n VOLUNTEER_DISCONNECTED,\n VOLUNTEER_HANG_UP,\n VOTER_CONNECTED,\n VOTER_HANG_UP,\n} from '@web/reducers/dialerReducer/dialerMachine';\nimport { machineTransition, setDisabledPatchThrough } from '@web/reducers/dialerReducer';\nimport sendError from '@web/utils/sendError';\nimport useHangUp from './useHangUp';\nimport { useDispatch, useSelector } from 'react-redux';\n\n// actions\nimport { voterJoined } from '@web/reducers/dialerReducer';\n\nconst DEBUG_PUSHER = false;\n\nlet pusher;\n\n// Mock pusher when Cypress is present on window\nif (window?.Cypress) {\n pusher = new PusherMock();\n} else {\n pusher = new Pusher(process.env.PUSHER_APP_KEY, {\n cluster: process.env.PUSHER_APP_CLUSTER,\n });\n}\n\nconst endedStates = ['graceful_shutdown', 'terminated', 'completed'];\nconst notStartedStates = ['created'];\n\nPusher.log = msg => {\n if (DEBUG_PUSHER) {\n const pingRe = /ping/g;\n const pongRe = /pong/g;\n if (pingRe.test(msg)) {\n return;\n }\n if (pongRe.test(msg)) {\n return;\n }\n // eslint-disable-next-line\n console.log(msg);\n }\n};\n\nfunction usePusher(activity, audioRef) {\n const { callData, currentState } = useSelector(state => state.dialer);\n const dispatch = useDispatch();\n const stateChannelName = `activity;${activity.id};voice-call-pool`;\n const callId = callData?.call_id;\n const { handleVoterHangUp } = useHangUp();\n\n // MTS - We assume the dialer is in a running state and we\n // check each time the user makes a return to the idle state\n function getDialerState() {\n axios(`/api/v2/activities/${activity.id}/voice_call_pool`)\n .then(({ data }) => {\n // Check to see if the phone bank has ended\n if (endedStates.find(el => el === data.aasm_state)) {\n return dispatch(machineTransition(PHONE_BANK_ENDED));\n }\n\n if (data.aasm_state === 'paused') {\n return dispatch(machineTransition(PHONE_BANK_PAUSED));\n }\n\n // Check to see if the phone bank is not started\n if (notStartedStates.find(el => el === data.aasm_state)) {\n dispatch(machineTransition(PHONE_BANK_NOT_STARTED));\n }\n })\n .catch(err => {\n sendError('Dialer error - getDialerState usePusher', {\n request: err?.request,\n response: err?.response,\n });\n });\n }\n\n function stateChannelSubscribe(stateChannel) {\n stateChannel.bind('state-change', handleStateChange);\n }\n\n function handleStateChange(data) {\n if (data?.state === 'running') {\n message.info(`The phone bank's session has now started`);\n return dispatch(machineTransition(PHONE_BANK_STARTED));\n }\n\n if (data?.state === 'paused') {\n return dispatch(machineTransition(PHONE_BANK_PAUSED));\n }\n\n const hasEnded = !!endedStates.find(el => el === data?.state);\n\n if (hasEnded) {\n dispatch(machineTransition(PHONE_BANK_ENDED));\n }\n }\n\n const handlePatchThroughJoined = React.useCallback(\n data => {\n addBreadcrumb({\n category: 'Dialer',\n data,\n level: 'log',\n message: 'Pusher - patch_through_joined event received',\n });\n\n dispatch(machineTransition(PATCH_THROUGH_CONNECTED));\n dispatch(setDisabledPatchThrough([]));\n },\n [dispatch],\n );\n\n const handleCreatePatchThroughCallFailed = React.useCallback(\n data => {\n addBreadcrumb({\n category: 'Dialer',\n data,\n level: 'log',\n message: 'Pusher - create-patch-through-call-failed event received',\n });\n // reset disabled patch through references\n dispatch(setDisabledPatchThrough([]));\n if (currentState === patchThroughConnected) {\n dispatch(machineTransition(VOTER_CONNECTED));\n }\n },\n [currentState, dispatch],\n );\n\n const handlePatchThroughCallEnded = React.useCallback(\n data => {\n addBreadcrumb({\n category: 'Dialer',\n data,\n level: 'log',\n message: 'Pusher - patch-through-call-ended event received',\n });\n // reset disabled patch through references\n dispatch(setDisabledPatchThrough([]));\n dispatch(machineTransition(VOLUNTEER_HANG_UP));\n },\n [dispatch],\n );\n\n const handleVoterLeft = React.useCallback(\n data => {\n addBreadcrumb({\n category: 'Dialer',\n data,\n message: 'Pusher - voter_left event received',\n });\n handleVoterHangUp(VOTER_HANG_UP, data?.voter_voice_call_id);\n },\n [handleVoterHangUp],\n );\n\n const handleVolunteerLeft = React.useCallback(() => {\n addBreadcrumb({\n category: 'Dialer',\n message: 'Pusher - volunteer_left event received',\n });\n dispatch(machineTransition(VOLUNTEER_DISCONNECTED));\n }, [dispatch]);\n\n const handleVoterJoined = React.useCallback(\n data => {\n // Try to play notification\n if (audioRef?.current) {\n try {\n audioRef?.current?.play();\n } catch (err) {\n sendError('Dialer - Error playing notification', err);\n }\n }\n message.info(`You are now connected to ${data.full_name}`);\n addBreadcrumb({\n category: 'Dialer',\n data,\n message: 'Pusher - voter_joined event received',\n });\n dispatch(voterJoined(data));\n dispatch(machineTransition(VOTER_CONNECTED));\n },\n // eslint-disable-next-line\n [audioRef, dispatch],\n );\n\n function handlePusherConnectionChange({ current, previous }) {\n addBreadcrumb({\n category: 'Dialer - Pusher',\n message: `Pusher Connection State Change | from: ${previous} to: ${current}`,\n });\n }\n\n const subscribeToEvents = React.useCallback(\n channel => {\n channel.bind('voter_joined', handleVoterJoined);\n channel.bind('voter_left', handleVoterLeft);\n channel.bind('volunteer_left', handleVolunteerLeft);\n channel.bind('patch_through_joined', handlePatchThroughJoined);\n channel.bind('create-patch-through-call-failed', handleCreatePatchThroughCallFailed);\n channel.bind('patch-through-call-ended', handlePatchThroughCallEnded);\n },\n [\n handleVoterJoined,\n handleVoterLeft,\n handleVolunteerLeft,\n handlePatchThroughJoined,\n handleCreatePatchThroughCallFailed,\n handlePatchThroughCallEnded,\n ],\n );\n\n // MTS - Pusher Subscribe/unsubscribe when the callId changes\n // The callId can change if a volunteer gets disconnected and\n // reconnected.\n React.useEffect(() => {\n if (callId) {\n addBreadcrumb({\n category: 'Dialer - Pusher',\n message: `Subscribing to channel ${callId}`,\n });\n const thisChannel = pusher.subscribe(callId.toString());\n subscribeToEvents(thisChannel);\n }\n\n return () => {\n if (callId) {\n addBreadcrumb({\n category: 'Dialer Pusher',\n message: `Unsubscribing from channel ${callId}`,\n });\n pusher.unsubscribe(callId?.toString());\n }\n };\n // eslint-disable-next-line\n }, [callId]);\n\n // Subscribe to the other pusher channels on mount\n React.useEffect(() => {\n pusher.connection.bind('state_change', handlePusherConnectionChange);\n const stateChannel = pusher.subscribe(stateChannelName);\n addBreadcrumb({\n category: 'Dialer - Pusher',\n message: `Subscribing to channel ${stateChannelName}`,\n });\n stateChannelSubscribe(stateChannel);\n // Required for e2e tests\n if (window?.Cypress) {\n window.Cypress.pusher = pusher;\n }\n return () => {\n addBreadcrumb({\n category: 'Dialer - Pusher',\n message: `Unsubscribing from channel ${stateChannelName}`,\n });\n pusher.unsubscribe(stateChannelName);\n };\n // eslint-disable-next-line\n }, []);\n\n // Run this hook each time the currentState switches to idle\n React.useEffect(() => {\n if (currentState === 'idle') {\n getDialerState();\n }\n // eslint-disable-next-line\n }, [currentState]);\n}\n\nexport default usePusher;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport CallStatus from './components/CallStatus';\nimport Header from '@web/components/DialerActivity/components/Header';\nimport MainContent from './components/MainContent';\nimport PageLayout from '../../components/PageLayout';\nimport ReceiveCall from './components/ReceiveCall';\nimport VolunteerDisconnected from './components/VolunteerDisconnected';\n\nimport useExitActivity from './useExitActivity';\nimport usePusher from './usePusher';\nimport { useSelector } from 'react-redux';\n\nconst StyledInCall = styled.div`\n display: grid;\n grid-template-columns: 1fr 430px;\n height: 100vh;\n overflow: hidden;\n`;\n\nconst StyledPageLayout = styled(PageLayout)`\n height: 100vh;\n overflow: auto;\n`;\n\nfunction InCall({ activity, history }) {\n const audioRef = React.useRef(null);\n const { currentState } = useSelector(state => state.dialer);\n usePusher(activity, audioRef);\n useExitActivity(activity.id);\n\n // The volunteer has not yet received the call from Impactive\n if (currentState === 'dialingVolunteer') {\n return <ReceiveCall activity={activity} history={history} />;\n }\n\n if (currentState === 'volunteerDisconnected') {\n return <VolunteerDisconnected activity={activity} />;\n }\n\n return (\n <StyledInCall>\n {/* left hand side */}\n <StyledPageLayout>\n <Header activity={activity} backText=\"Exit Phone Bank\" backTo={''} />\n <MainContent activity={activity} />\n <audio ref={audioRef} src=\"/files/notification.mp3\" />\n </StyledPageLayout>\n {/* right hand side */}\n <CallStatus activity={activity} />\n </StyledInCall>\n );\n}\n\nInCall.propTypes = {\n activity: PropTypes.shape({\n id: PropTypes.number.isRequired,\n }).isRequired,\n history: PropTypes.any.isRequired,\n};\n\nInCall.defaultProps = {};\n\nexport default InCall;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Button from '@web/components/DialerActivity/components/Button';\n\nconst StyledSelectionItem = styled.div`\n background-color: ${({ theme }) => theme.colors.lightGray};\n border-radius: 7px;\n margin-bottom: 16px;\n padding: 24px 34px 41px;\n`;\n\nconst Title = styled.span`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 23px;\n`;\n\nconst Description = styled.p`\n font-size: 15px;\n margin-bottom: 26px;\n margin-top: 6px;\n`;\n\nfunction SelectionItem({ buttonText, description, title, to }) {\n return (\n <StyledSelectionItem>\n <Title>{title}</Title>\n <Description>{description}</Description>\n <Button style={{ maxWidth: 227, textTransform: 'uppercase' }} to={to}>\n {buttonText}\n </Button>\n </StyledSelectionItem>\n );\n}\n\nSelectionItem.propTypes = {\n buttonText: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n to: PropTypes.string.isRequired,\n};\n\nSelectionItem.defaultProps = {};\n\nexport default SelectionItem;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Header from '@web/components/DialerActivity/components/Header';\nimport SelectionItem from './SelectionItem';\n\nimport { useParams } from 'react-router-dom';\n\nfunction QueueCallsSelection({ activity }) {\n const campaignName = activity?.campaign?.name;\n let { userActivityId } = useParams();\n const baseRoute = `/activities/${userActivityId}/phone-bank`;\n return (\n <>\n <Header activity={activity} backTo={`/activities/${userActivityId}`} />\n <SelectionItem\n buttonText={'Queue Calls'}\n description={'Tap a button to queue calls for our phone banking efforts.'}\n title={'I want to queue calls'}\n to={`${baseRoute}/queue-calls`}\n />\n <SelectionItem\n buttonText={'Phone Banking'}\n description={`Participate in the ${campaignName} phone banking session.`}\n title={'I want to phone bank'}\n to={`${baseRoute}/preview-script`}\n />\n </>\n );\n}\n\nQueueCallsSelection.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n name: PropTypes.string.isRequired,\n }),\n }),\n};\n\nQueueCallsSelection.defaultProps = {};\n\nexport default QueueCallsSelection;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { AuthContext } from '@web/utils/context';\nimport { Redirect, useParams } from 'react-router-dom';\n\nimport PageLayout from '../../components/PageLayout';\nimport QueueCallsSelection from './QueueCallsSelection';\n\nfunction LandingPage({ activity }) {\n let { userActivityId } = useParams();\n const { user } = React.useContext(AuthContext);\n const authorizedQueuers = activity?.dial_authorizer_user_ids || [];\n const baseRoute = `/activities/${userActivityId}/phone-bank`;\n\n const userCanQueueCalls = authorizedQueuers.includes(user?.id);\n\n // check to see if the user is authorized to queue calls\n if (userCanQueueCalls) {\n return (\n <PageLayout>\n <QueueCallsSelection activity={activity} />\n </PageLayout>\n );\n }\n\n return <Redirect to={`${baseRoute}/preview-script`} />;\n}\n\nLandingPage.propTypes = {\n activity: PropTypes.any.isRequired,\n};\n\nLandingPage.defaultProps = {};\n\nexport default LandingPage;\n","import styled from 'styled-components';\n\nexport default styled.div`\n padding: 1em;\n`;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport Container from '../Container';\n\nconst NotFound = () => {\n const { t } = useTranslation();\n\n return (\n <Container>\n <h1>\n <b>{t('404.not_found')}</b>\n </h1>\n <Link to=\"/frontline\">{t('404.return_home')}</Link>\n </Container>\n );\n};\nexport default NotFound;\n","import styled from 'styled-components';\n\nexport const Description = styled.p`\n color: ${({ theme }) => theme.colors.black};\n font-size: 15px;\n line-height: 23px;\n`;\n\nexport const Title = styled.h1`\n color: ${({ theme }) => theme.colors.black};\n font-size: 23px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n line-height: 28px;\n margin-bottom: 8px;\n margin-top: -3px;\n`;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { message } from 'antd';\n\nimport { useTranslation } from 'react-i18next';\n\nimport Button from '@web/components/DialerActivity/components/Button';\n\nconst StyledButton = styled(Button)`\n font-size: 16px;\n padding: 0 30px;\n width: 100%;\n`;\n\nconst StyledReadyDialog = styled.div`\n align-items: center;\n background-color: ${({ theme }) => theme.colors.lightCyan};\n border-radius: 7px;\n box-shadow: 0px 4px 13px rgba(0, 0, 0, 0.16);\n display: flex;\n justify-content: space-between;\n padding: 24px;\n position: sticky;\n bottom: 20px;\n left: 0;\n right: 0;\n`;\n\nfunction ReadyDialog({ sessionState }) {\n const { t } = useTranslation();\n\n const to = React.useMemo(() => sessionState === 'running' && 'in-call', [sessionState]);\n const onClick = React.useCallback(\n () => !to && message.error(t('activity.phone_bank.not_started')),\n [to, t],\n );\n\n return (\n <StyledReadyDialog>\n <StyledButton to={to} onClick={onClick}>\n {t('button.ready_to_participate')}\n </StyledButton>\n </StyledReadyDialog>\n );\n}\n\nReadyDialog.propTypes = {\n sessionState: PropTypes.string,\n};\n\nReadyDialog.defaultProps = {};\n\nexport default ReadyDialog;\n","import * as React from 'react';\nimport { AuthContext } from '@web/utils/context';\n\nfunction useCanQueueCalls(activity) {\n const { user } = React.useContext(AuthContext);\n const authorizedQueuers = activity?.dial_authorizer_user_ids || [];\n const userCanQueueCalls = authorizedQueuers.includes(user?.id);\n\n return userCanQueueCalls;\n}\n\nexport default useCanQueueCalls;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Description } from './components/TextStyles';\nimport Header from '@web/components/DialerActivity/components/Header';\nimport HelpMessage from '@web/components/DialerActivity/components/HelpMessage';\nimport Instructions from '@web/components/DialerActivity/components/Instructions';\nimport InteractiveScript from '../InCall/components/InteractiveScript';\nimport PageLayout from '../../components/PageLayout';\nimport ReadyDialog from './components/ReadyDialog';\nimport Tabs from '@web/components/DialerActivity/components/Tabs';\n\nimport { AuthContext } from '@web/utils/context';\nimport useAnswers from '../InCall/components/MainContent/useAnswers';\nimport useCanQueueCalls from '@web/components/DialerActivity/useCanQueueCalls';\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nconst StyledPageLayout = styled(PageLayout)`\n min-height: 100vh;\n position: relative;\n`;\n\nfunction PreviewScript({ activity }) {\n const { user } = React.useContext(AuthContext);\n let { userActivityId } = useParams();\n const canQueueCalls = useCanQueueCalls(activity);\n const [simulatedAnswers, setSimulatedAnswers] = React.useState([]);\n const interactiveScriptProps = useAnswers(activity);\n const { t } = useTranslation();\n\n function backTo() {\n if (canQueueCalls) {\n return `/activities/${userActivityId}/phone-bank/queue-calls`;\n }\n return `/activities/${userActivityId}/`;\n }\n\n // MTS - We simulate the connectedContact (from Redux) here because this is\n // a preview and we do not have access to all of the values since there isn't\n // a contact until the voter is connected.\n const simulatedContact = { campaign: activity.campaign, user };\n\n // We simulate the answers because we don't want to modify the answers\n // in Redux.\n const simulatedProps = {\n ...interactiveScriptProps,\n answers: simulatedAnswers,\n setAnswers: setSimulatedAnswers,\n };\n\n const pages = [\n {\n content: (\n <>\n <HelpMessage />\n <InteractiveScript connectedContact={simulatedContact} {...simulatedProps} />\n </>\n ),\n title: t('common.script'),\n },\n {\n content: (\n <>\n <HelpMessage helpMessageKey=\"activity.phone_bank.instructions_help\" />\n <Instructions />\n </>\n ),\n title: t('common.instructions'),\n },\n ];\n return (\n <StyledPageLayout>\n <Header activity={activity} backTo={backTo()} />\n <Description>{activity.description}</Description>\n <Tabs pages={pages} />\n <ReadyDialog sessionState={activity.session_state} />\n </StyledPageLayout>\n );\n}\n\nPreviewScript.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n id: PropTypes.number.isRequired,\n }),\n description: PropTypes.string.isRequired,\n id: PropTypes.number.isRequired,\n session_state: PropTypes.string,\n title: PropTypes.string.isRequired,\n }),\n};\n\nPreviewScript.defaultProps = {};\n\nexport default PreviewScript;\n","// MTS - The purpose of this hook is keep track of a \"count\". The \"count\" needs\n// to update each time incrementBatch is called. After 3 seconds we call the\n// onBatchComplete callback with the current number \"count\" that was incremented\n// in that 3 second window. Each 3 second window is a \"batch\".\nimport * as React from 'react';\n\nconst DELAY = 3000;\n\nfunction useBatch(onBatchComplete) {\n const [loading, setLoading] = React.useState(false);\n const [batching, setBatching] = React.useState(false);\n const countRef = React.useRef(0);\n\n React.useEffect(() => {\n let timeoutId;\n if (batching) {\n timeoutId = setTimeout(() => {\n onBatchComplete(countRef.current);\n countRef.current = 0;\n setBatching(() => false);\n }, DELAY);\n }\n return () => {\n clearTimeout(timeoutId);\n };\n // eslint-disable-next-line\n }, [batching]);\n\n function incrementBatch() {\n setLoading(true);\n countRef.current += 100;\n setBatching(true);\n }\n\n return { incrementBatch, loading };\n}\n\nexport default useBatch;\n","// For descriptions of metrics see: https://github.com/outvote/web-app/issues/5789\nimport * as React from 'react';\nimport axios from 'axios';\nimport Pusher from 'pusher-js';\nimport sendError from '@web/utils/sendError';\nimport useBatch from './useBatch';\n\nconst pusher = new Pusher(process.env.PUSHER_APP_KEY, {\n cluster: process.env.PUSHER_APP_CLUSTER,\n});\n\nconst CALLS_KEY = 'valid_authorised_voice_calls_count';\nconst TOTAL_CALLS_KEY = 'voter_calls_attempted_count';\n\nfunction useQueueCalls(activityId) {\n const [callsQueued, setCallsQueued] = React.useState(0);\n const [totalCalls, setTotalCalls] = React.useState(0);\n const channelName = `activity;${activityId};voice-call-pool`;\n const { incrementBatch } = useBatch(queueCall);\n\n React.useEffect(() => {\n const thisChannel = pusher.subscribe(channelName);\n subscriptions(thisChannel);\n getMetrics();\n return () => pusher.unsubscribe(channelName);\n // eslint-disable-next-line\n }, []);\n\n function subscriptions(channel) {\n channel.bind('metrics', handleMetrics);\n }\n\n function handleMetrics(data) {\n setTotalCalls(data[TOTAL_CALLS_KEY]);\n setCallsQueued(data[CALLS_KEY]);\n }\n\n function handleClick() {\n incrementBatch();\n setCallsQueued(callsQueued + 100);\n }\n\n function getMetrics() {\n const url = `/api/v2/activities/${activityId}/voice_call_pool/metrics`;\n axios(url)\n .then(({ data }) => {\n handleMetrics(data);\n })\n .catch(() => {\n // MTS - We don't need to do anything here because we are also getting\n // Pusher messages with this data.\n });\n }\n\n function queueCall(count) {\n const url = `/api/v2/activities/${activityId}/voice_call_pool/authorizations`;\n axios\n .post(url, { authorizations_count: count || 100 })\n .then(({ data }) => {\n setCallsQueued(data.authorised_voice_calls);\n })\n .catch(err => {\n sendError('Error queueing calls', err);\n });\n }\n\n return { callsQueued, handleClick, totalCalls };\n}\n\nexport default useQueueCalls;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Button from '@web/components/DialerActivity/components/Button';\nimport Header from '@web/components/DialerActivity/components/Header';\nimport PageLayout from '../../components/PageLayout';\nimport { Body, Title } from '@web/components/DialerActivity/components/TextStyles';\n\nimport useQueueCalls from './useQueueCalls';\n\nconst Calls = styled.span`\n color: ${({ theme }) => theme.colors.darkTeal};\n font-family: ${({ theme }) => theme.fonts.blackItalic};\n font-size: 76px;\n line-height: 1;\n`;\n\nconst CallsArea = styled.div`\n align-items: center;\n background-color: ${({ theme }) => theme.colors.whiteSmokeLighter};\n border-radius: 7px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin: 24px 0;\n padding: 10px;\n`;\n\nconst CallsTitle = styled.span`\n color: #979797;\n font-family: ${({ theme }) => theme.fonts.boldItalic};\n font-size: 15px;\n letter-spacing: 1.4px;\n text-transform: uppercase;\n`;\n\nconst MetricWrapper = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n margin: 20px 0;\n`;\n\nfunction QueueCalls({ activity }) {\n const { callsQueued, handleClick, totalCalls } = useQueueCalls(activity.id);\n const topStyle = { textAlign: 'left' };\n\n return (\n <PageLayout>\n <Header activity={activity} backLink={''} />\n <Title style={topStyle}>Queue Calls</Title>\n <Body style={topStyle}>\n Tap the button below repeatedly to queue 100 calls at a time for the phone banking session.\n </Body>\n <CallsArea style={{ marginBottom: 0 }}>\n <MetricWrapper>\n <Calls>{totalCalls}</Calls>\n <CallsTitle>Calls placed this phone bank</CallsTitle>\n </MetricWrapper>\n </CallsArea>\n <CallsArea>\n <MetricWrapper>\n <Calls>{callsQueued}</Calls>\n <CallsTitle>Calls Queued</CallsTitle>\n </MetricWrapper>\n </CallsArea>\n <Button onClick={handleClick}>Queue Calls</Button>\n </PageLayout>\n );\n}\n\nQueueCalls.propTypes = {\n activity: PropTypes.any.isRequired,\n};\n\nQueueCalls.defaultProps = {};\n\nexport default QueueCalls;\n","// Adapted from SO\n// https://stackoverflow.com/questions/36904185/react-router-scroll-to-top-on-every-transition\n// It is needed for pages that have a scroll bar within this nested router\nimport PropTypes from 'prop-types';\nimport { useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\n\nfunction ScrollToTop({ history }) {\n useEffect(() => {\n const unlisten = history.listen(() => {\n window.scrollTo(0, 0);\n });\n return () => {\n unlisten();\n };\n }, [history]);\n\n return null;\n}\n\nScrollToTop.propTypes = {\n history: PropTypes.object.isRequired,\n};\n\nexport default withRouter(ScrollToTop);\n","import * as React from 'react';\nimport { user } from '@web/services/api';\nimport sendError from '@web/utils/sendError';\n\nfunction useFetchActivity(userActivityId) {\n const [activity, setActivity] = React.useState(null);\n const [loading, setLoading] = React.useState(true);\n\n React.useEffect(() => {\n if (userActivityId) {\n setLoading(true);\n user\n .getUserActivity(userActivityId)\n .then(({ data }) => {\n setActivity(data.data.activity);\n })\n .catch(err => {\n sendError('Error fetching dialer activity', err);\n })\n .finally(() => {\n setLoading(false);\n });\n }\n }, [userActivityId]);\n\n return { activity, loading };\n}\n\nexport default useFetchActivity;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Route, Switch, useParams, useRouteMatch } from 'react-router-dom';\n\n// Pages\nimport InCall from './pages/InCall';\nimport LandingPage from './pages/LandingPage';\nimport NotFound from '@web/components/404/NotFound';\nimport PreviewScript from './pages/PreviewScript';\nimport QueueCalls from './pages/QueueCalls';\n\n// Components\nimport AppContainer from '@web/components/AppContainer';\nimport Loading from '@web/components/common/Loading';\nimport ScrollToTop from './components/ScrollToTop';\n\nimport useFetchActivity from './useFetchActivity';\n\nfunction DialerActivity(props) {\n let { userActivityId } = useParams();\n const { activity, loading } = useFetchActivity(userActivityId);\n let { path } = useRouteMatch();\n\n if (loading || !activity) {\n return (\n <AppContainer>\n <ScrollToTop />\n {loading && <Loading centered />}\n </AppContainer>\n );\n }\n\n return (\n <AppContainer>\n {/* MTS - This is needed to reset scroll position between route transitions */}\n <ScrollToTop />\n\n {/* This is a nested router for all routes under /activities/:id/phone-bank */}\n <Switch>\n <Route\n component={props => <LandingPage activity={activity} {...props} />}\n exact\n path={`${path}`}\n />\n <Route\n component={props => <QueueCalls activity={activity} {...props} />}\n exact\n path={`${path}/queue-calls`}\n />\n <Route\n component={props => <PreviewScript activity={activity} {...props} />}\n exact\n path={`${path}/preview-script`}\n />\n <Route\n component={props => <InCall activity={activity} {...props} />}\n path={`${path}/in-call`}\n />\n <Route component={NotFound} />\n </Switch>\n </AppContainer>\n );\n}\n\nDialerActivity.propTypes = {\n history: PropTypes.any.isRequired,\n};\n\nDialerActivity.defaultProps = {};\n\nexport default DialerActivity;\n","import React, { useState } from 'react';\n\nimport MaxWidthContainer from '../common/MaxWidthContainer';\nimport ImpactiveLink from '@web/components/common/Link';\n\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport { truncate, punyEncodedURL, parseUrl } from 'web/utils/string';\nimport pxToRem from 'web/utils/pxToRem';\n\nconst Wrapper = styled.div`\n width: 100%;\n padding: 40px 40px 0;\n margin-bottom: 2rem;\n`;\n\nconst Description = styled.div`\n font-size: ${pxToRem(16)};\n color: ${({ theme }) => theme.colors.blue};\n margin: 1rem 0;\n @media (max-width: 680px) {\n font-size: ${pxToRem(14)};\n }\n`;\n\nconst General = styled.div`\n margin-right: 5rem;\n width: 100%;\n @media (max-width: 1170px) {\n margin-right: 0;\n }\n`;\n\nconst Data = styled.div`\n display: flex;\n justify-content: space-between;\n\n @media (max-width: 1170px) {\n flex-wrap: wrap-reverse;\n }\n`;\n\nconst Content = styled.div`\n width: 100%;\n height: 100%;\n background: ${({ theme }) => theme.colors.teal40};\n border-radius: 20px;\n padding: 16px 0;\n`;\n\nconst CampaignName = styled.div`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 2.5rem;\n @media (max-width: 1170px) {\n margin-bottom: 1rem;\n width: 100%;\n }\n`;\n\nconst CampaignImage = styled.img`\n align-self: center;\n border-radius: 12px;\n height: 226px;\n max-width: 400px;\n object-fit: contain;\n @media (max-width: 1170px) {\n width: 100%;\n margin-bottom: 1rem;\n }\n`;\n\nconst Metrics = styled.div`\n display: flex;\n margin-top: 1rem;\n`;\n\nconst MetricContainer = styled.div`\n font-family: ${({ theme }) => theme.fonts.bold};\n color: ${({ theme }) => theme.colors.black};\n margin-right: 3rem;\n`;\n\nconst MetricName = styled.div`\n font-size: 0.875rem;\n text-transform: uppercase;\n`;\n\nconst Metric = styled.div`\n font-size: 1.5rem;\n`;\n\nconst SeeMoreButton = styled.button`\n border: none;\n background: transparent;\n color: ${({ theme }) => theme.colors.coral};\n font-family: ${({ theme }) => theme.fonts.bold};\n &:hover {\n color: #0056b3;\n }\n`;\n\nconst TRUNCATE_LENGTH = 250;\n\nconst CampaignData = () => {\n const [showFullDescription, setShowFullDescription] = useState(false);\n const { t } = useTranslation();\n const {\n name,\n description,\n website_url,\n total_actions_completed,\n total_allies,\n total_actions_performed,\n url_hero_img,\n } = useSelector(state => state.oneCampaign.selectedCampaign);\n const isDescriptionLong = description?.length > TRUNCATE_LENGTH;\n const formattedDescription =\n isDescriptionLong && !showFullDescription\n ? truncate(description, TRUNCATE_LENGTH)\n : description;\n\n const renderMetric = (metric, metricName) => (\n <MetricContainer>\n <Metric>{metric}</Metric>\n <MetricName>{metricName}</MetricName>\n </MetricContainer>\n );\n\n const websiteUrl = parseUrl(website_url);\n\n return (\n <Wrapper>\n <Content>\n <MaxWidthContainer>\n <Data>\n <General>\n <CampaignName>{name}</CampaignName>\n <Description>\n {formattedDescription}\n {isDescriptionLong && (\n <SeeMoreButton onClick={() => setShowFullDescription(!showFullDescription)}>\n {showFullDescription ? t('campaign.see_less') : t('campaign.see_more')}\n </SeeMoreButton>\n )}\n </Description>\n {!!websiteUrl && (\n <ImpactiveLink as=\"a\" target=\"blank\" href={websiteUrl}>\n {punyEncodedURL(website_url)}\n </ImpactiveLink>\n )}\n <Metrics>\n {renderMetric(`${total_allies}`, t('campaign.allies'))}\n {renderMetric(`${total_actions_completed}`, t('campaign.actions'))}\n {renderMetric(`${total_actions_performed}`, t('campaign.network'))}\n </Metrics>\n </General>\n <CampaignImage src={url_hero_img} />\n </Data>\n </MaxWidthContainer>\n </Content>\n </Wrapper>\n );\n};\n\nexport default CampaignData;\n","import React from 'react';\n\nimport { Carousel } from 'antd';\n\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nconst StyledCarousel = styled(Carousel)`\n &&& {\n .slick-list {\n }\n .slick-dots-bottom {\n bottom: -30px;\n > li {\n width: 5px;\n button {\n background: #c4c4c4;\n opacity: 0.4;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n }\n }\n .slick-active {\n width: 5px;\n button {\n background: #c4c4c4;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n }\n }\n }\n }\n`;\n\nconst ImpactiveCarousel = React.forwardRef(({ children, ...rest }, ref) => (\n <StyledCarousel ref={ref} {...rest}>\n {children}\n </StyledCarousel>\n));\n\nImpactiveCarousel.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default ImpactiveCarousel;\n","import React, { useState } from 'react';\n\n// This hook returns the number of items that can be shown on one slide, depending on the size of the screen.\nfunction useElementsPerSlide(templates, ref, elementWidth = 0) {\n const [scripts, setScripts] = useState([]);\n const [elementsPerSlide, setElementsPerSlide] = useState(1);\n const [wrapperWidth, setWrapperWidth] = useState();\n\n // Get slider wrapper width\n const handleResize = React.useCallback(() => {\n setWrapperWidth(ref?.current?.clientWidth ?? elementWidth);\n }, [elementWidth, ref]);\n\n // Handle screen resize\n React.useEffect(() => {\n // Set initial width\n setWrapperWidth(ref?.current?.clientWidth ?? elementWidth);\n\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, [elementWidth, handleResize, ref]);\n\n React.useEffect(() => {\n // Get the number of items on a slide\n const proportion = Math.floor(wrapperWidth / (elementWidth ?? 257));\n\n // We need this because if the number of elements is greater than 1, we have to display 2 rows of elements\n const elementsPerSlide = proportion === 1 ? 1 : proportion * 2;\n\n // Formatting an array from an array with all scripts to an array with arrays with the number of scripts that can be displayed on a slide\n const newArr = templates.reduce(function (result, value, index, array) {\n if (index % elementsPerSlide === 0) result.push(array.slice(index, index + elementsPerSlide));\n return result;\n }, []);\n\n setScripts(newArr);\n setElementsPerSlide(elementsPerSlide);\n }, [elementWidth, templates, wrapperWidth]);\n\n return { elementsPerSlide, scripts };\n}\n\nexport default useElementsPerSlide;\n","import { ArrowLeftOutlined, ArrowRightOutlined } from '@ant-design/icons';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nconst Container = styled.div`\n display: flex;\n justify-content: space-between;\n margin-top: 10px;\n`;\n\nconst IconContainer = styled.div`\n cursor: pointer;\n color: ${({ theme }) => theme.colors.blue};\n\n :hover {\n opacity: 1;\n color: #c4c4c4;\n }\n font-size: 20px;\n margin-top: -10px;\n`;\n\nconst NavArrows = ({ prev, next }) => {\n return (\n <Container>\n <IconContainer onClick={prev}>\n <ArrowLeftOutlined />\n </IconContainer>\n <IconContainer onClick={next}>\n <ArrowRightOutlined />\n </IconContainer>\n </Container>\n );\n};\n\nNavArrows.propTypes = {\n next: PropTypes.func.isRequired,\n prev: PropTypes.func.isRequired,\n};\n\nNavArrows.defaultProps = {};\n\nexport default NavArrows;\n","import PropTypes from 'prop-types';\nimport React, { useRef, useState } from 'react';\nimport styled from 'styled-components';\nimport ImpactiveCarousel from '../common/shared/Carousel';\nimport useElementsPerSlide from '../Inbox/hooks/useElementsPerSlide';\n\nimport ActivityPreviewModal from './ActivityPreviewModal';\nimport ActivityPreview from './ActivityPreview';\nimport NavArrows from './NavArrows';\n\nconst Wrapper = styled.div``;\n\nconst Slide = styled.div`\n display: grid !important;\n grid-template-columns: ${({ elementPerSlide }) => (elementPerSlide < 4 ? '1fr' : '1fr 1fr')};\n height: 100%;\n padding-top: 30px;\n gap: 10px;\n padding: 11px;\n`;\n\nconst TransparentButton = styled.div`\n border: none;\n background: none;\n text-align: unset;\n`;\n\nconst PinnedActivityCarousel = ({ activities }) => {\n const carouselRef = useRef(null);\n const wrapperRef = useRef(null);\n const slideData = useElementsPerSlide(activities, wrapperRef, 470);\n\n const [selectedAction, setSelectedAction] = useState();\n\n const createActivityPreview = userActivity => {\n const { activity, completed } = userActivity;\n\n return (\n <TransparentButton key={activity.id} onClick={() => setSelectedAction(userActivity)}>\n <ActivityPreview activity={activity} completed={completed} userActivity={userActivity} />\n </TransparentButton>\n );\n };\n\n if (activities.length === 1) {\n return createActivityPreview(activities[0]);\n }\n\n if (!slideData) return <></>;\n\n const showNavArrows = slideData.scripts?.length > 1;\n\n return (\n <>\n <Wrapper ref={wrapperRef}>\n <ImpactiveCarousel autoplaySpeed={10000} arrows ref={carouselRef}>\n {slideData.scripts.map((i, index) => (\n <Slide key={index} elementPerSlide={slideData.elementsPerSlide}>\n {i.map(createActivityPreview)}\n </Slide>\n ))}\n </ImpactiveCarousel>\n {showNavArrows && (\n <NavArrows\n next={() => carouselRef.current && carouselRef.current.next()}\n prev={() => carouselRef.current && carouselRef.current.prev()}\n />\n )}\n </Wrapper>\n <ActivityPreviewModal\n visible={!!selectedAction}\n onCancel={() => setSelectedAction(null)}\n activity={selectedAction?.activity}\n completed={selectedAction?.completed}\n userActivity={selectedAction}\n />\n </>\n );\n};\n\nPinnedActivityCarousel.propTypes = { activities: PropTypes.array.isRequired };\n\nPinnedActivityCarousel.defaultProps = {};\n\nexport default PinnedActivityCarousel;\n","import React, { useMemo, useRef, useState } from 'react';\n\nimport ImpactiveCarousel from '../common/shared/Carousel';\nimport NavArrows from './NavArrows';\nimport ActivityPreviewModal from './ActivityPreviewModal';\n\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { friendlyTypeNameFor } from '../../constants/activityTypes';\nimport { useTranslation } from 'react-i18next';\n\nconst Wrapper = styled.div`\n margin-top: 10px;\n`;\n\nconst Slide = styled.div`\n display: grid !important;\n grid-template-columns: 1fr 1fr;\n height: 100%;\n padding-top: 30px;\n gap: 10px;\n padding: 1.5rem;\n background: ${({ theme }) => theme.colors.white};\n border-radius: 12px;\n`;\n\nconst ActivityType = styled.div`\n color: ${({ theme }) => theme.colors.blue30};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 12px;\n line-height: 18px;\n text-transform: uppercase;\n margin-bottom: 10px;\n`;\n\nconst ActivityTitle = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-family: ${({ theme }) => theme.fonts.semibold};\n margin-bottom: 6px;\n font-size: 18px;\n line-height: 1.25;\n`;\n\nconst ActivityWrapper = styled.div`\n cursor: pointer;\n &:hover {\n opacity: 0.5;\n }\n`;\n\nconst RecentlyParticipatedActionsCarousel = ({ activities }) => {\n const carouselRef = useRef(null);\n const { t } = useTranslation();\n\n const [selectedAction, setSelectedAction] = useState(null);\n\n const carouselData = useMemo(\n () =>\n activities.reduce((result, value, index, array) => {\n if (index % 8 === 0) result.push(array.slice(index, index + 8));\n return result;\n }, []),\n [activities],\n );\n\n const renderNavArrows = carouselData.length > 1;\n\n const createActivityPreview = userActivity => {\n const {\n activity: { type, title },\n } = userActivity;\n\n return (\n <ActivityWrapper key={userActivity.id} onClick={() => setSelectedAction(userActivity)}>\n <ActivityType>{t(`activity.types.${type}`, friendlyTypeNameFor(type))}</ActivityType>\n <ActivityTitle>{title}</ActivityTitle>\n </ActivityWrapper>\n );\n };\n\n return (\n <>\n <Wrapper>\n <ImpactiveCarousel autoplaySpeed={10000} arrows ref={carouselRef}>\n {carouselData.map((i, index) => (\n <Slide key={index}>{i.map(createActivityPreview)}</Slide>\n ))}\n </ImpactiveCarousel>\n {renderNavArrows && (\n <NavArrows\n next={() => carouselRef.current?.next()}\n prev={() => carouselRef.current?.prev()}\n />\n )}\n </Wrapper>\n <ActivityPreviewModal\n visible={!!selectedAction}\n onCancel={() => setSelectedAction(null)}\n activity={selectedAction?.activity}\n completed={selectedAction?.completed}\n userActivity={selectedAction}\n />\n </>\n );\n};\n\nRecentlyParticipatedActionsCarousel.propTypes = { activities: PropTypes.array.isRequired };\n\nRecentlyParticipatedActionsCarousel.defaultProps = {};\n\nexport default RecentlyParticipatedActionsCarousel;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport iconFile from '../../images/my-file-icon-unfocused.png';\nimport iconSearch from '../../images/search-icon-unfocused.png';\nimport theme from '../../styles/theme';\nimport Note from '../Note';\n\nconst BoldItalic = styled.span`\n font-family: ${theme.fonts.blackItalic};\n`;\n\nconst ListEmpty = () => {\n const { t } = useTranslation();\n return (\n <Note title={t('frontline.welcome')}>\n {t('frontline.use_search_tab')} <img src={iconSearch} width=\"11\" height=\"11\" alt=\"\" />{' '}\n {t('frontline.discover_and_join')} <BoldItalic>{t('frontline.allies')}</BoldItalic>\n {t('frontline.campaign_volunteers')} <img src={iconFile} width=\"11\" height=\"11\" alt=\"\" />{' '}\n {t('frontline.tab')}\n </Note>\n );\n};\n\nListEmpty.propTypes = {};\n\nexport default ListEmpty;\n","import { List } from 'antd';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport InfiniteScroll from 'react-infinite-scroller';\nimport styled from 'styled-components';\nimport { media } from '../../styles/theme';\nimport ActivityPreview from '../Activity/ActivityPreview';\nimport ActivityPreviewModal from '../Activity/ActivityPreviewModal';\nimport Loading from '../common/Loading';\nimport ListEmpty from './ListEmpty';\n\nconst StyledList = styled(List)`\n .ant-list-items {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n margin-right: -12px;\n }\n`;\n\nconst ActivityItem = styled(List.Item)`\n flex: 0 100%;\n &&& {\n border-bottom: 0;\n padding: 12px 12px 0px 0;\n }\n\n // Show 2 items per row on xlarge screens\n ${media.xxl} {\n flex: 0 50%;\n }\n`;\n\nconst ActivityList = ({ hasMore, initialLoading, items, loadMore, loading }) => {\n const [selectedAction, setSelectedAction] = useState(null);\n // MTS - We may need to move the scroll ref at some point. I'm unable to\n // see if this causes a negative UX or not when switching between lists.\n const [scrollRef, setScrollRef] = useState(null);\n\n // Check to see if <InfiniteScroll /> should be loaded\n const renderScroll = initialLoading || (items && items.length > 0);\n\n // Individual userActivity render function\n const renderItem = item => {\n const { activity, completed } = item;\n return (\n <ActivityItem\n onClick={() => setSelectedAction(item)}\n key={item.id}\n data-testid=\"activity-item\"\n >\n <ActivityPreview activity={activity} completed={completed} userActivity={item} />\n </ActivityItem>\n );\n };\n\n return (\n <div ref={setScrollRef}>\n {renderScroll && (\n <InfiniteScroll\n initialLoad={false}\n pageStart={0}\n threshold={0}\n loadMore={loadMore}\n hasMore={!loading && hasMore}\n useWindow\n getScrollParent={() => scrollRef}\n >\n <StyledList dataSource={items} renderItem={renderItem}>\n {loading && <Loading centered />}\n </StyledList>\n </InfiniteScroll>\n )}\n {!renderScroll && <ListEmpty />}\n\n <ActivityPreviewModal\n activity={selectedAction?.activity}\n completed={selectedAction?.completed}\n onCancel={() => setSelectedAction(null)}\n userActivity={selectedAction}\n visible={!!selectedAction}\n />\n </div>\n );\n};\n\nActivityList.propTypes = {\n hasMore: PropTypes.bool.isRequired,\n initialLoading: PropTypes.bool.isRequired,\n items: PropTypes.array,\n loading: PropTypes.bool.isRequired,\n loadMore: PropTypes.func.isRequired,\n};\n\nexport default ActivityList;\n","import isEqual from 'lodash/isEqual';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport { usePaginatedApi, toObject } from '../../hooks/usePaginatedApi';\nimport { user } from '../../services/api';\nimport PinnedActivityCarousel from '../Activity/PinnedActivityCarousel';\nimport RecentlyParticipatedActionsCarousel from '../Activity/RecentlyParticipatedActionsCarousel';\nimport ActivityFilters from '../common/ActivityFilters';\nimport ActivityList from './ActivityList';\n\nimport ListEmpty from './ListEmpty';\nimport { useSelector } from 'react-redux';\nimport { AuthContext } from '@web/utils/context';\n\nconst StyledListController = styled.div`\n margin-bottom: 3rem;\n`;\n\nconst ListWrapper = styled.div`\n & + & {\n margin-top: 2rem;\n }\n`;\n\nconst Title = styled.div`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 2rem;\n`;\n\nfunction ListController({ charityList, ...rest }) {\n const { user: userData } = useContext(AuthContext);\n const campaign = useSelector(state => state.oneCampaign.selectedCampaign);\n const { t } = useTranslation();\n // Activity filters\n const [filters, setFilters] = useState({\n activity_type: undefined,\n cause: undefined,\n zip: undefined,\n });\n\n const [pinnedActions, setPinnedActions] = useState(null);\n\n const loadPinnedActions = useCallback(() => {\n user\n .getUserActivities({\n campaign_id: campaign?.id,\n pinned: true,\n })\n .then(({ data: { data } }) => setPinnedActions(data));\n }, [campaign.id]);\n\n // Handle initial data fetching\n useEffect(() => {\n loadPinnedActions();\n // eslint-disable-next-line\n }, [loadPinnedActions]);\n\n // Activity paginated data\n const { hasMore, initialLoading, items, loadMore, loading, resetPagination } = toObject(\n usePaginatedApi(user.getUserActivities, null, {\n campaign_id: campaign?.id,\n ...filters,\n }),\n );\n\n useEffect(() => {\n resetPagination({ refetch: true });\n // Do not change this as it will cause queries to loop\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [campaign.id]);\n\n const filteredItems = useMemo(\n () =>\n (\n items?.filter(\n item => !(item?.activity?.aasm_state && item?.activity?.aasm_state === 'draft'),\n ) || []\n )\n // If a specific language is selected for an activity, we need to check if it matches the language selected by the user\n .filter(item => !item.activity?.locale || item.activity?.locale === userData?.locale),\n [userData?.locale, items],\n );\n\n const onlyActionItems = useMemo(\n () =>\n filteredItems.filter(\n item =>\n ![\n 'UserBroadcastActivity',\n 'IdVotersActivity',\n 'AssignedCanvassingActivity',\n 'RegistrationActivity',\n ].includes(item?.activity?.type),\n ),\n [filteredItems],\n );\n const recentlyParticipatedItems = onlyActionItems.filter(item => item.completed);\n\n const renderPinned = pinnedActions?.length > 0;\n const renderLatest = items?.length > 0;\n const renderRecentlyParticipated = recentlyParticipatedItems.length > 0;\n\n const onFilterChangeHandler = useCallback(\n newFilters => {\n if (!isEqual(filters, newFilters)) {\n setFilters(newFilters);\n resetPagination({ refetch: true });\n }\n },\n [filters, resetPagination],\n );\n\n return (\n <>\n <StyledListController {...rest}>\n {renderRecentlyParticipated && (\n <ListWrapper>\n <Title>{t('frontline.participated_actions')}</Title>\n <RecentlyParticipatedActionsCarousel activities={recentlyParticipatedItems} />\n </ListWrapper>\n )}\n {renderPinned && (\n <ListWrapper>\n <Title>{t('frontline.featured_actions')}</Title>\n <PinnedActivityCarousel activities={pinnedActions} />\n </ListWrapper>\n )}\n <ListWrapper>\n <Title>{t('frontline.latest_actions')}</Title>\n <ActivityFilters onChange={onFilterChangeHandler} />\n {renderLatest && (\n <ActivityList\n hasMore={hasMore}\n initialLoading={initialLoading}\n items={onlyActionItems}\n loadMore={loadMore}\n loading={loading}\n />\n )}\n </ListWrapper>\n {!renderPinned && !renderLatest && <ListEmpty />}\n </StyledListController>\n </>\n );\n}\n\nListController.propTypes = {\n charityList: PropTypes.bool,\n};\n\nListController.defaultProps = {\n charityList: false,\n};\n\nexport default ListController;\n","import React, { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useDocumentTitle } from 'web/hooks';\n\nimport { track } from '../../services/analytics';\n\nimport AppContainer from '../AppContainer';\nimport AppHeader from '../AppHeader';\n\nimport MaxWidthContainer from '../common/MaxWidthContainer';\nimport OneCampaignLoading from '../common/OneCampaignLoading';\nimport CampaignData from './CampaignData';\nimport ListController from './ListController';\n\nconst FrontLine = () => {\n const { t } = useTranslation();\n\n useDocumentTitle(t('titles.frontline'));\n\n // Filter can be used for only showing saved activities, leaving it here in case it's needed again.\n const filter = 'all';\n\n useEffect(() => {\n // Track the page\n track('VIEW_FRONTLINE_SCREEN');\n }, []);\n\n return (\n <>\n <AppHeader title={t('titles.campaigns')} />\n <AppContainer grayBackground>\n <OneCampaignLoading>\n <CampaignData />\n <MaxWidthContainer>\n <ListController filter={filter} />\n </MaxWidthContainer>\n </OneCampaignLoading>\n </AppContainer>\n </>\n );\n};\n\nFrontLine.propTypes = {};\n\nexport default FrontLine;\n","import { Avatar } from 'antd';\nimport { Input } from 'formik-antd';\n\nimport styled from 'styled-components';\nimport { media } from '../../styles/theme';\nimport ImpactiveButton from '../ImpactiveButton';\n\nexport const MiddleContainer = styled.div`\n background: white;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-height: 100vh;\n`;\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n`;\n\nexport const Banner = styled.div`\n display: flex;\n flex-direction: column;\n\n ${media.ns} {\n flex-direction: row;\n }\n`;\n\nexport const BannerAndContent = styled.div`\n background-color: ${({ theme }) => theme.colors.white};\n flex: 1 0 auto;\n`;\n\nexport const OutvoteLogo = styled.div`\n padding-left: 20px;\n padding-bottom: 20px;\n padding-top: 30px;\n`;\n\nexport const AvatarNameAndDescription = styled.div`\n padding-top: 20px;\n padding-left: 20px;\n\n ${media.ns} {\n padding-left: 150px;\n }\n`;\n\nexport const AvatarDescription = styled.div`\n text-transform: uppercase;\n color: ${({ theme }) => theme.colors.trueWhite};\n font-family: ${({ theme }) => theme.fonts.semibold};\n opacity: 90%;\n font-size: 12px;\n padding-bottom: 10px;\n text-align: center;\n ${media.ns} {\n text-align: left;\n }\n`;\n\nexport const AvatarAndName = styled.div`\n display: flex;\n align-items: center;\n padding-bottom: 20px;\n justify-content: center;\n\n ${media.ns} {\n justify-content: left;\n }\n`;\n\nexport const StyledName = styled.div`\n color: ${({ theme }) => theme.colors.trueWhite};\n font-family: ${({ theme }) => theme.fonts.bold};\n padding-left: 15px;\n ${media.ns} {\n font-size: 20px;\n }\n`;\n\nexport const StyledAvatar = styled(Avatar).attrs({ size: 60 })``;\n\nexport const BannerLeftSide = styled.div`\n background-color: ${({ theme }) => theme.colors.deepBlue};\n flex: 1;\n ${media.ns} {\n padding-right: 30px;\n }\n`;\n\nexport const BannerRightSide = styled.img`\n overflow: hidden;\n max-width: 100%;\n max-height: 100%;\n ${media.ns} {\n max-width: 600px;\n }\n`;\n\nexport const BannerTitle = styled.div`\n text-transform: uppercase;\n font-family: ${({ theme }) => theme.fonts.bold};\n color: ${({ theme }) => theme.colors.trueWhite};\n\n font-size: 30px;\n padding-vertical: 20px;\n padding-left: 20px;\n padding-right: 20px;\n text-align: center;\n\n ${media.ns} {\n font-size: 36px;\n padding-vertical: 20px;\n padding-left: 150px;\n padding-right: 20px;\n text-align: left;\n }\n`;\n\nexport const ReferredBy = styled.div``;\n\nexport const Title = styled.div`\n text-transform: uppercase;\n font-family: ${({ theme }) => theme.fonts.bold};\n color: ${({ theme }) => theme.colors.black};\n padding-bottom: 15px;\n font-size: 28px;\n text-align: center;\n\n ${media.ns} {\n font-size: 32px;\n }\n`;\n\nexport const ElectionDate = styled.div`\n font-family: ${({ theme }) => theme.fonts.bold};\n color: ${({ theme }) => theme.colors.gray};\n letter-spacing: 1.1px;\n font-size: 22px;\n padding-bottom: 15px;\n`;\n\nexport const TwoRacesLeft = styled.div`\n font-family: ${({ theme }) => theme.fonts.semibold};\n color: ${({ theme }) => theme.colors.black};\n font-size: 20px;\n padding-bottom: 15px;\n`;\n\nexport const Options = styled.div`\n display: flex;\n flex-direction: column;\n\n // ${media.lg} {\n @media screen and (min-width: 1025px) {\n flex-direction: row;\n justify-content: space-between;\n }\n`;\n\nexport const OptionColumn = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n max-width: 400px;\n padding-left: 40px;\n padding-right: 40px;\n`;\n\nexport const OptionDescription = styled.div`\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 18px;\n text-transform: uppercase;\n text-align: center;\n color: ${({ theme }) => theme.colors.black};\n padding-bottom: 20px;\n`;\n\nexport const SquareRoundButton = styled(ImpactiveButton)`\n font-size: 24px;\n line-height: 1.2;\n border-radius: 15px;\n min-height: 50px;\n margin-bottom: 22px;\n width: 100%;\n\n ${media.ns} {\n width: 300px;\n }\n`;\n\nexport const RedSquareRoundButton = styled(SquareRoundButton)`\n background: ${({ theme }) => theme.colors.red};\n`;\n\nexport const GetStarted = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n max-width: 700px;\n width: 100%;\n\n padding: 20px 25px;\n\n ${media.ns} {\n padding-left: 10px;\n padding-right: 10px;\n padding-top: 50px;\n padding-bottom: 50px;\n }\n`;\n\nexport const ShowOptions = styled.div``;\n\nexport const SelectAnOption = styled.div`\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 20px;\n padding-bottom: 30px;\n max-width: 500px;\n text-align: center;\n\n padding-left: 20px;\n padding-right: 20px;\n\n ${media.ns} {\n padding-left: 0px;\n padding-right: 0px;\n }\n`;\n\nexport const SubHeader = styled.div`\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 24px;\n text-transform: uppercase;\n color: ${({ theme }) => theme.colors.black};\n padding-bottom: 15px;\n text-align: center;\n`;\n\nexport const CollectPhoneDescription = styled.div`\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 20px;\n max-width: 500px;\n text-align: center;\n padding-bottom: 15px;\n`;\n\nexport const ThankYouSection = styled.div``;\n\nexport const ThreeXImpact = styled(SubHeader)`\n padding-top: 20px;\n padding-bottom: 5px;\n`;\n\nexport const ThankYouDescription = styled(CollectPhoneDescription)`\n padding-bottom: 10px;\n`;\n\nexport const MainContent = styled.div`\n display: flex;\n justify-content: center;\n height: 100%;\n background: white;\n`;\n\nexport const SubmitButtonContainer = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nexport const ButtonsRow = styled.div`\n margin-top: 0.5rem;\n margin-bottom: -10px;\n\n > * {\n margin-bottom: 10px;\n\n &:not(:last-child) {\n margin-right: 10px;\n }\n }\n\n ${({ fullWithOnMobile }) =>\n fullWithOnMobile &&\n `\n @media screen and (max-width: 767px) {\n > *, button {\n display: block;\n width: 100%;\n }\n }\n `}\n`;\n\nexport const ShareSection = styled.div``;\n\nexport const ShareButtonInner = styled(ImpactiveButton).attrs({ forwardedAs: 'span' })`\n display: flex;\n align-items: center;\n`;\n\nexport const StyledLabel = styled.label`\n && {\n font-family: ${({ theme }) => theme.fonts.semibold};\n color: ${({ theme }) => theme.colors.black};\n letter-spacing: 1.1px;\n font-size: 24px;\n }\n`;\n\nexport const StyledInput = styled(Input)`\n && {\n font-size: 24px;\n }\n`;\n\nexport const TermsAndConditions = styled.div`\n margin-top: 40px;\n font-size: 15px;\n text-align: center;\n`;\n","import { Alert, Col } from 'antd';\nimport { Formik } from 'formik';\nimport { Form, FormItem } from 'formik-antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport i18n from 'web/components/i18n';\nimport * as yup from 'yup';\nimport {\n CollectPhoneDescription,\n GetStarted,\n SubmitButtonContainer,\n StyledLabel,\n StyledInput,\n SquareRoundButton,\n SubHeader,\n TermsAndConditions,\n} from './styles';\n\n// const phoneRegExp = /^((\\\\+[1-9]{1,4}[ \\\\-]*)|(\\\\([0-9]{2,3}\\\\)[ \\\\-]*)|([0-9]{2,4})[ \\\\-]*)*?[0-9]{3,4}?[ \\\\-]*[0-9]{3,4}?$/;\n\nconst phoneRegExp = /^(\\+\\d{1,2}\\s)?\\(?\\d{3}\\)?[\\s.-]?\\d{3}[\\s.-]?\\d{4}$/;\n\nconst ContactFormSchema = yup.object().shape({\n phone: yup.string().matches(phoneRegExp, i18n.t('check_registration.invalid_phone')),\n});\n\nconst formInitialValues = {\n phone: '',\n};\n\nconst CollectPhone = ({ title, description, handleSubmitPhone, terms, termsLink }) => {\n const { t } = useTranslation();\n\n const termsAndConditions = terms ? (\n <TermsAndConditions>\n <p>{terms}</p>\n {termsLink && (\n <a href={termsLink} target=\"_blank\" rel=\"noopener noreferrer\">\n {t('check_registration.read_more')}\n </a>\n )}\n </TermsAndConditions>\n ) : (\n <TermsAndConditions>\n <div>\n {t('ga_runoff.by_clicking_submit')}\n <a href=\"/outvote/terms_of_service\" target=\"_blank\" rel=\"noopener noreferrer\">\n {t('ga_runoff.tos')}\n </a>\n {'.'}\n </div>\n </TermsAndConditions>\n );\n\n return (\n <GetStarted>\n <SubHeader>{title}</SubHeader>\n <CollectPhoneDescription>{description}</CollectPhoneDescription>\n <Formik\n initialValues={formInitialValues}\n validationSchema={ContactFormSchema}\n onSubmit={handleSubmitPhone}\n render={({ isSubmitting, isValid, submitCount }) => (\n <Form>\n <Col>\n <FormItem name=\"phone\">\n <StyledLabel htmlFor=\"phone\">{t('ga_runoff.phone_number')}</StyledLabel>\n <StyledInput name=\"phone\" placeholder={'(111) 222 - 3333'} id=\"phone\" />\n </FormItem>\n </Col>\n <SubmitButtonContainer>\n <SquareRoundButton\n type=\"submit\"\n disabled={isSubmitting || (!isValid && submitCount > 0)}\n >\n {isSubmitting ? t('ga_runoff.submitting') : t('ga_runoff.submit')}\n </SquareRoundButton>\n </SubmitButtonContainer>\n </Form>\n )}\n />\n {title === t('ga_runoff.already_registered') && (\n <Alert\n style={{ marginTop: 20 }}\n message={t('voting_information.voter_reg_required')}\n type=\"info\"\n showIcon\n closable\n />\n )}\n {termsAndConditions}\n </GetStarted>\n );\n};\n\nCollectPhone.propTypes = {\n description: PropTypes.string.isRequired,\n handleSubmitPhone: PropTypes.func.isRequired,\n terms: PropTypes.string,\n termsLink: PropTypes.string,\n title: PropTypes.string.isRequired,\n};\n\nexport default CollectPhone;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nconst DoneCheckmark = ({ fill = '#117916', ...rest }) => {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...rest}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12 0.54541C5.67439 0.54541 0.54541 5.67439 0.54541 12C0.54541 18.3255 5.67439 23.4545 12 23.4545C18.3255 23.4545 23.4545 18.3255 23.4545 12C23.4545 5.67439 18.3255 0.54541 12 0.54541ZM12 21.5113C6.74825 21.5113 2.48859 17.2517 2.48859 12C2.48859 6.74825 6.74825 2.48859 12 2.48859C17.2517 2.48859 21.5113 6.74825 21.5113 12C21.5113 17.2517 17.2517 21.5113 12 21.5113ZM15.5821 7.93461H16.7812C16.9474 7.93461 17.0446 8.12382 16.9448 8.25933L11.5602 15.7252C11.2355 16.1778 10.563 16.1778 10.2383 15.7252L7.05251 11.3071C6.95535 11.1715 7.05251 10.9823 7.21871 10.9823H8.41785C8.68121 10.9823 8.92666 11.1102 9.08007 11.3224L10.9005 13.8485L14.9198 8.27467C15.0733 8.0599 15.3213 7.93461 15.5821 7.93461Z\"\n fill={fill}\n />\n </svg>\n );\n};\n\nDoneCheckmark.propTypes = {\n fill: PropTypes.string,\n};\n\nDoneCheckmark.defaultProps = {\n fill: '#117916',\n};\n\nexport default DoneCheckmark;\n","import { FacebookOutlined, MailOutlined, TwitterOutlined, UploadOutlined } from '@ant-design/icons';\nimport { message, Tooltip } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport Clipboard from 'react-clipboard.js';\nimport { useTranslation } from 'react-i18next';\nimport { FacebookShareButton, TwitterShareButton } from 'react-share';\nimport ImpactiveButton from '../ImpactiveButton';\nimport DoneCheckmark from './DoneCheckmark';\nimport {\n GetStarted,\n SubHeader,\n ThreeXImpact,\n ThankYouDescription,\n ShareSection,\n ButtonsRow,\n ShareButtonInner,\n} from './styles';\n\nconst ThankYou = ({ handleNativeShare, shareLink }) => {\n const { t } = useTranslation();\n const shareNowVisible = !!navigator.share;\n\n return (\n <GetStarted>\n <SubHeader>{t('ga_runoff.thank_you')}</SubHeader>\n <DoneCheckmark height={60} width={60} />\n <ThankYouDescription style={{ paddingTop: '15px' }}>\n {t('ga_runoff.you_will_receive')}\n </ThankYouDescription>\n <ThreeXImpact>{t('ga_runoff.3x_impact')}</ThreeXImpact>\n <ThankYouDescription>{t('ga_runoff.3x_impact_description')}</ThankYouDescription>\n <ShareSection>\n <ButtonsRow fullWithOnMobile>\n {shareNowVisible && (\n <ImpactiveButton onClick={handleNativeShare}>\n <UploadOutlined /> {t('voting_information.share.share_now')}\n </ImpactiveButton>\n )}\n\n {!shareNowVisible && (\n <Clipboard\n component=\"span\"\n data-clipboard-text={shareLink}\n onSuccess={() => message.info(t('common.copied_to_clipboard'))}\n >\n <Tooltip placement=\"top\" title={shareLink}>\n <ImpactiveButton>{t('voting_information.share.copy_share_link')}</ImpactiveButton>\n </Tooltip>\n </Clipboard>\n )}\n\n <FacebookShareButton url={shareLink}>\n <ShareButtonInner>\n <FacebookOutlined /> {t('voting_information.share.facebook')}\n </ShareButtonInner>\n </FacebookShareButton>\n\n <TwitterShareButton url={shareLink}>\n <ShareButtonInner>\n <TwitterOutlined /> {t('voting_information.share.twitter')}\n </ShareButtonInner>\n </TwitterShareButton>\n\n <ImpactiveButton\n onClick={() => window.open(`mailto:?body=${encodeURIComponent(shareLink)}`, '_blank')}\n >\n <MailOutlined /> {t('voting_information.share.email')}\n </ImpactiveButton>\n </ButtonsRow>\n </ShareSection>\n </GetStarted>\n );\n};\n\nThankYou.propTypes = {\n handleNativeShare: PropTypes.func.isRequired,\n shareLink: PropTypes.string.isRequired,\n};\n\nexport default ThankYou;\n","import { LoadingOutlined } from '@ant-design/icons';\nimport { Alert, message, Spin } from 'antd';\nimport PropTypes from 'prop-types';\nimport queryString from 'query-string';\nimport React, { useEffect, useState, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Redirect, useParams, useHistory } from 'react-router-dom';\nimport { track, trackPageViewWithDynamicIDs } from '../../services/analytics';\nimport { users, campaigns, teams } from '../../services/api';\nimport CollectPhone from './CollectPhone';\nimport ThankYou from './ThankYou';\nimport {\n MiddleContainer,\n Title,\n GetStarted,\n SelectAnOption,\n Options,\n OptionColumn,\n OptionDescription,\n SquareRoundButton,\n MainContent,\n} from './styles';\n\nconst ScreenTypes = {\n COLLECT_PHONE: 'collect_phone',\n SHOW_OPTIONS: 'show_options',\n THANK_YOU: 'thank_you',\n};\n\nconst ContactPaths = {\n GA_NONRESIDENT: 'ga_nonresident',\n GA_REGISTERED: 'ga_registered',\n GA_UNREGISTERED: 'ga_unregistered',\n};\n\nconst GaOptionsPage = props => {\n const { campaignId } = props.match.params; // can be either campaign `id` or `slug`\n const { referral_hash } = queryString.parse(props.location.search);\n const { t } = useTranslation();\n\n const history = useHistory();\n\n const [campaign, setCampaign] = useState({});\n // keeping this in case we want to enable the team thing later on\n // eslint-disable-next-line no-unused-vars\n const [, setTeam] = useState();\n const [loading, setLoading] = useState(true);\n\n let { contactPath: contactPathParam = null } = useParams();\n\n let initialScreenType = ScreenTypes.SHOW_OPTIONS;\n let initialContactPath = '';\n let initialCollectPhoneTitle = t('ga_runoff.want_to_help');\n\n if (contactPathParam) {\n switch (contactPathParam) {\n case ContactPaths.GA_NONRESIDENT:\n initialScreenType = ScreenTypes.COLLECT_PHONE;\n initialContactPath = ContactPaths.GA_NONRESIDENT;\n initialCollectPhoneTitle = t('ga_runoff.want_to_help');\n break;\n\n case ContactPaths.GA_UNREGISTERED:\n initialScreenType = ScreenTypes.COLLECT_PHONE;\n initialContactPath = ContactPaths.GA_UNREGISTERED;\n initialCollectPhoneTitle = t('ga_runoff.not_sure');\n break;\n\n case ContactPaths.GA_REGISTERED:\n initialScreenType = ScreenTypes.COLLECT_PHONE;\n initialContactPath = ContactPaths.GA_REGISTERED;\n initialCollectPhoneTitle = t('ga_runoff.already_registered');\n break;\n\n default:\n break;\n }\n }\n\n const [screenType, setScreenType] = useState(initialScreenType);\n const [collectPhoneTitle, setCollectPhoneTitle] = useState(initialCollectPhoneTitle);\n const [contactPath, setContactPath] = useState(initialContactPath);\n\n const hostname = `${window.location.protocol}//${window.location.host}`;\n const georgiaLandingLink = `${hostname}/campaigns/${campaignId}/georgia_runoff`;\n\n // needed to make back button work - if we push to a route where the initialScreenType changes\n useEffect(() => {\n setScreenType(initialScreenType);\n\n if (contactPathParam) {\n switch (contactPathParam) {\n case ContactPaths.GA_NONRESIDENT:\n setScreenType(ScreenTypes.COLLECT_PHONE);\n setContactPath(ContactPaths.GA_NONRESIDENT);\n setCollectPhoneTitle(t('ga_runoff.want_to_help'));\n break;\n\n case ContactPaths.GA_UNREGISTERED:\n setScreenType(ScreenTypes.COLLECT_PHONE);\n setContactPath(ContactPaths.GA_UNREGISTERED);\n setCollectPhoneTitle(t('ga_runoff.not_sure'));\n break;\n\n case ContactPaths.GA_REGISTERED:\n setScreenType(ScreenTypes.COLLECT_PHONE);\n setContactPath(ContactPaths.GA_REGISTERED);\n setCollectPhoneTitle(t('ga_runoff.already_registered'));\n break;\n\n default:\n setContactPath('');\n setCollectPhoneTitle(t('ga_runoff.want_to_help'));\n break;\n }\n }\n }, [initialScreenType, contactPathParam, t]);\n\n useEffect(() => {\n if (screenType) {\n track(`VIEW_GA_RUNOFF_${screenType.toUpperCase()}`);\n }\n }, [screenType]);\n\n useEffect(() => {\n setLoading(true);\n campaigns\n .getPublicCampaign({ id: campaignId })\n .then(({ data: { data: campaign } }) => {\n setCampaign(campaign);\n\n trackPageViewWithDynamicIDs({\n fbPixelId: campaign.fb_pixel_id,\n gaTrackingId: campaign.ga_tracking_id,\n snapchatPixelId: campaign.snapchat_pixel_id,\n });\n\n if (referral_hash) {\n return users\n .getUserByReferralHash(referral_hash)\n .then(({ data: { data: user } }) => {\n return teams.getTeam({ filters: { campaign_id: campaign.id }, id: user.id });\n })\n .then(({ data: { data: team } }) => setTeam(team))\n .catch(error => {\n // Catch error and make this promise always resolved,\n // so we can render this view at least\n console.error('get team data >', error);\n });\n }\n })\n .then(() => setLoading(false));\n }, [campaignId, referral_hash]);\n\n const handleSubmitPhone = useCallback(\n (formData, { setSubmitting }) => {\n const { phone } = formData;\n if (!phone) {\n message.error(t('ga_runoff.phone_required'));\n setSubmitting(false);\n return;\n }\n campaigns\n .gaRegister({ campaign_slug: campaignId, contact_path: contactPath, phone: formData.phone })\n .then(() => {\n setScreenType(ScreenTypes.THANK_YOU);\n })\n .catch(error => {\n console.error('problem with stuff >', error);\n setSubmitting(false);\n message.error(t('ga_runoff.problem_occurred'));\n });\n },\n [campaignId, contactPath, t],\n );\n\n const handleNativeShare = useCallback(() => {\n if (navigator.share) {\n navigator.share({ url: georgiaLandingLink }).catch(console.error);\n }\n }, [georgiaLandingLink]);\n\n if (loading) {\n return (\n <div className=\"flex-row justify-content-center mt-4\">\n <Spin indicator={<LoadingOutlined style={{ fontSize: 24 }} spin />} />\n </div>\n );\n }\n\n const shouldRedirect = campaign && !campaign.ga_runoff_enabled;\n if (shouldRedirect) {\n return <Redirect to={`/campaigns/${campaignId}`} />;\n }\n\n return (\n <MiddleContainer>\n <MainContent>\n {screenType === ScreenTypes.SHOW_OPTIONS && (\n <GetStarted>\n <Title>{t('ga_runoff.georgia_runoff_election')}</Title>\n <SelectAnOption>{t('ga_runoff.select_option')}</SelectAnOption>\n <Options>\n <OptionColumn>\n <OptionDescription>{t('ga_runoff.want_to_help')}</OptionDescription>\n <SquareRoundButton\n type=\"primary\"\n children={'find voters'}\n onClick={() => {\n setScreenType(ScreenTypes.COLLECT_PHONE);\n setCollectPhoneTitle(t('ga_runoff.want_to_help'));\n setContactPath(ContactPaths.GA_NONRESIDENT);\n history.push(\n `/campaigns/${campaignId}/georgia_runoff/options/${ContactPaths.GA_NONRESIDENT}`,\n );\n }}\n />\n </OptionColumn>\n\n <OptionColumn>\n <OptionDescription>{t('ga_runoff.already_registered')}</OptionDescription>\n <SquareRoundButton\n type=\"primary\"\n children={'vote by mail'}\n onClick={() => {\n setScreenType(ScreenTypes.COLLECT_PHONE);\n setCollectPhoneTitle(t('ga_runoff.already_registered'));\n setContactPath(ContactPaths.GA_REGISTERED);\n history.push(\n `/campaigns/${campaignId}/georgia_runoff/options/${ContactPaths.GA_REGISTERED}`,\n );\n }}\n />\n </OptionColumn>\n\n {/* <OptionColumn>\n <OptionDescription>{t('ga_runoff.not_sure')}</OptionDescription>\n\n <SquareRoundButton\n type=\"primary\"\n children={'register to vote'}\n onClick={() => {\n setScreenType(ScreenTypes.COLLECT_PHONE);\n setCollectPhoneTitle(t('ga_runoff.not_sure'));\n setContactPath(ContactPaths.GA_UNREGISTERED);\n history.push(\n `/campaigns/${campaignId}/georgia_runoff/options/${ContactPaths.GA_UNREGISTERED}`,\n );\n }}\n />\n </OptionColumn> */}\n </Options>\n\n <Alert\n style={{\n backgroundColor: '#e6f7ff',\n fontSize: 13,\n marginTop: 50,\n maxWidth: 600,\n }}\n message={\n <span>\n <b>Important:</b> The deadline to register to vote in Georgia has passed.\n </span>\n }\n type=\"info\"\n showIcon\n />\n </GetStarted>\n )}\n {screenType === ScreenTypes.COLLECT_PHONE && (\n <CollectPhone\n title={collectPhoneTitle}\n description={t('ga_runoff.enter_your_number')}\n handleSubmitPhone={handleSubmitPhone}\n terms={campaign.terms}\n termsLink={campaign.terms_link}\n />\n )}\n {screenType === ScreenTypes.THANK_YOU && (\n <ThankYou handleNativeShare={handleNativeShare} shareLink={georgiaLandingLink} />\n )}\n </MainContent>\n </MiddleContainer>\n );\n};\n\nGaOptionsPage.propTypes = {\n location: PropTypes.shape({\n search: PropTypes.string.isRequired,\n }).isRequired,\n match: PropTypes.shape({\n params: PropTypes.shape({\n campaignId: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n};\n\nexport default GaOptionsPage;\n","import facebookCircle from '@assets/images/sapient/facebook-circle.svg';\nimport instagramCircle from '@assets/images/sapient/instagram-circle.svg';\nimport twitterCircle from '@assets/images/sapient/twitter-circle.svg';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { media } from '../../styles/theme';\n\nconst StyledFooter = styled.footer`\n background-color: #323644;\n flex-shrink: 0;\n padding: 0px 50px 20px;\n ${media.lg} {\n padding: 30px 100px 50px;\n }\n`;\n\nconst Rows = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n\n ${media.lg} {\n flex-direction: row;\n justify-content: center;\n align-items: flex-start;\n }\n`;\n\nconst Address = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst StyledHeader = styled.h6`\n color: ${({ theme }) => theme.colors.red};\n font-family: ${({ theme }) => theme.fonts.black};\n font-size: 30px;\n margin-bottom: 30px;\n`;\n\nconst ContactUs = styled.div`\n text-align: center;\n padding-bottom: 20px;\n\n ${media.lg} {\n padding-right: 100px;\n padding-bottom: 0px;\n }\n`;\nconst HelpfulLinks = styled.div`\n text-align: center;\n ${media.lg} {\n padding-left: 100px;\n }\n`;\nconst Copyright = styled.div`\n padding-top: 50px;\n text-align: center;\n\n ${media.lg} {\n padding-top: 100px;\n }\n`;\n\nconst Text = styled.div`\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.light};\n font-size: 18px;\n font-weight: bold;\n`;\n\nconst LinkColumnContainer = styled.div`\n display: flex;\n flex-direction: column;\n\n ${media.lg} {\n flex-direction: row;\n justify-content: space-between;\n }\n`;\n\nconst LinkColumn = styled.div`\n padding-left: 50px;\n padding-right: 50px;\n`;\n\nconst LinkContainer = styled.div`\n padding-bottom: 18px;\n`;\n\nconst StyledLink = styled.a`\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.light};\n font-size: 18px;\n font-weight: bold;\n &:hover {\n text-decoration: underline;\n color: ${({ theme }) => theme.colors.white};\n }\n`;\n\nconst UnderlinedLink = styled(StyledLink)`\n text-decoration: underline;\n`;\n\nconst MarketingSiteFooter = () => {\n return (\n <StyledFooter className=\"site-footer bg-dark-gray\">\n <br />\n <br />\n <Rows>\n <ContactUs className=\"contact column small-12 medium-6\">\n <div className=\"contact-information\">\n <div className=\"form-header\">\n <StyledHeader className=\"form-title red font-black\">Contact Us</StyledHeader>\n </div>\n <Address className=\"address\">\n <Text>240 Elm Street</Text>\n <Text>Somerville, MA</Text>\n <Text>02144</Text>\n <UnderlinedLink href=\"mailto:support@impactive.io\">\n support@impactive.io\n </UnderlinedLink>\n </Address>\n\n <div className=\"social-media\" style={{ paddingTop: '20px' }}>\n <a href=\"https://www.facebook.com/joinoutvote/\" style={{ paddingRight: '10px' }}>\n <img src={facebookCircle} alt=\"facebook\" height={36} width={36} />\n <span className=\"icon-facebook\"></span>\n </a>\n <a href=\"https://twitter.com/joinoutvote\" style={{ paddingRight: '10px' }}>\n <img src={twitterCircle} alt=\"twitter\" height={36} width={36} />\n <span className=\"icon-twitter\"></span>\n </a>\n <a href=\"https://www.instagram.com/joinoutvote/\">\n <img src={instagramCircle} alt=\"instagram\" height={36} width={36} />\n <span className=\"icon-instagram\"></span>\n </a>\n </div>\n </div>\n </ContactUs>\n <HelpfulLinks>\n <StyledHeader className=\"form-title red font-black\">Helpful Links</StyledHeader>\n\n {/* <div className=\"contact-information\">\n <div className=\"form-header\">\n <StyledHeader className=\"form-title red font-black\">Helpful Links</StyledHeader>\n </div>\n </div> */}\n <LinkColumnContainer>\n <LinkColumn>\n <LinkContainer className=\"contact column small-4\">\n <StyledLink href=\"/\">For Activists</StyledLink>\n </LinkContainer>\n\n <LinkContainer className=\"contact column small-4\">\n <StyledLink href=\"/faqs\">FAQs</StyledLink>\n </LinkContainer>\n\n <LinkContainer className=\"contact column small-4\">\n <StyledLink href=\"/press\">Press</StyledLink>\n </LinkContainer>\n </LinkColumn>\n\n <LinkColumn>\n <LinkContainer className=\"contact column small-4\">\n <StyledLink href=\"/campaigns\">For Campaigns</StyledLink>\n </LinkContainer>\n\n <LinkContainer className=\"contact column small-4\">\n <StyledLink href=\"https://medium.com/outvote/careers/home\">Jobs</StyledLink>\n </LinkContainer>\n\n <LinkContainer className=\"contact column small-4\">\n <StyledLink href=\"/case_studies\">Case Studies</StyledLink>\n </LinkContainer>\n </LinkColumn>\n\n <LinkColumn>\n <LinkContainer className=\"contact column small-4\">\n <StyledLink href=\"/about\">About</StyledLink>\n </LinkContainer>\n\n <LinkContainer className=\"contact column small-4\">\n <StyledLink href=\"/explore\">Explore</StyledLink>\n </LinkContainer>\n\n <LinkContainer className=\"contact column small-4\">\n <StyledLink href=\"/auth\">Login</StyledLink>\n </LinkContainer>\n </LinkColumn>\n </LinkColumnContainer>\n </HelpfulLinks>\n </Rows>\n <Copyright className=\"column small-12\">\n <Text className=\"copyright\">\n © 2020{' '}\n <UnderlinedLink href=\"/\" className=\"white\">\n Impactive.\n </UnderlinedLink>{' '}\n Some rights reserved. See our{' '}\n <UnderlinedLink href=\"/outvote/terms_of_service\" className=\"white\">\n Terms of Service\n </UnderlinedLink>{' '}\n and{' '}\n <UnderlinedLink href=\"/outvote/privacy\" className=\"white\">\n Privacy Policy\n </UnderlinedLink>{' '}\n agreements.\n </Text>\n </Copyright>\n </StyledFooter>\n );\n};\n\nexport default MarketingSiteFooter;\n","import { LoadingOutlined } from '@ant-design/icons';\nimport { replaceDefaultCampaignImage } from '@web/utils/string';\nimport { Spin } from 'antd';\nimport PropTypes from 'prop-types';\nimport queryString from 'query-string';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link, Redirect } from 'react-router-dom';\nimport defaultCampaignProfile from '../../../../assets/images/web/default-campaign-profile.png';\nimport { track, trackPageViewWithDynamicIDs } from '../../services/analytics';\nimport { campaigns, teams, users } from '../../services/api';\nimport MarketingSiteFooter from './MarketingSiteFooter';\nimport {\n AvatarAndName,\n AvatarDescription,\n AvatarNameAndDescription,\n Banner,\n BannerAndContent,\n BannerLeftSide,\n BannerRightSide,\n BannerTitle,\n Container,\n ElectionDate,\n GetStarted,\n MainContent,\n RedSquareRoundButton,\n StyledAvatar,\n StyledName,\n Title,\n TwoRacesLeft,\n} from './styles';\n\nconst ScreenTypes = {\n GET_STARTED: 'get_started',\n};\n\nconst GeorgiaSpecialLanding = props => {\n const { campaignId } = props.match.params; // can be either campaign `id` or `slug`\n const { referral_hash } = queryString.parse(props.location.search);\n const { t } = useTranslation();\n\n const [campaign, setCampaign] = useState({});\n // keeping this in case we want to enable the team thing later on\n // eslint-disable-next-line no-unused-vars\n const [team, setTeam] = useState();\n const [loading, setLoading] = useState(true);\n\n // eslint-disable-next-line no-unused-vars\n const [screenType, setScreenType] = useState(ScreenTypes.GET_STARTED);\n\n useEffect(() => {\n if (screenType) {\n track(`VIEW_GA_RUNOFF_${screenType.toUpperCase()}`);\n }\n }, [screenType]);\n\n useEffect(() => {\n setLoading(true);\n campaigns\n .getPublicCampaign({ id: campaignId })\n .then(({ data: { data: campaign } }) => {\n setCampaign(campaign);\n\n trackPageViewWithDynamicIDs({\n fbPixelId: campaign.fb_pixel_id,\n gaTrackingId: campaign.ga_tracking_id,\n snapchatPixelId: campaign.snapchat_pixel_id,\n });\n\n if (referral_hash) {\n return users\n .getUserByReferralHash(referral_hash)\n .then(({ data: { data: user } }) => {\n return teams.getTeam({ filters: { campaign_id: campaign.id }, id: user.id });\n })\n .then(({ data: { data: team } }) => setTeam(team))\n .catch(error => {\n // Catch error and make this promise always resolved,\n // so we can render this view at least\n console.error('get team data >', error);\n });\n }\n })\n .then(() => setLoading(false));\n }, [campaignId, referral_hash]);\n\n if (loading) {\n return (\n <div className=\"flex-row justify-content-center mt-4\">\n <Spin indicator={<LoadingOutlined style={{ fontSize: 24 }} spin />} />\n </div>\n );\n }\n\n const shouldRedirect = campaign && !campaign.ga_runoff_enabled;\n if (shouldRedirect) {\n return <Redirect to={`/campaigns/${campaignId}`} />;\n }\n\n return (\n <Container>\n <BannerAndContent>\n <Banner>\n <BannerLeftSide>\n <BannerTitle>{t('ga_runoff.gotv_ga')}</BannerTitle>\n\n <AvatarNameAndDescription>\n <AvatarDescription>{t('ga_runoff.organized_by')}</AvatarDescription>\n\n <AvatarAndName>\n <StyledAvatar\n src={\n replaceDefaultCampaignImage(campaign.url_profile_img) || defaultCampaignProfile\n }\n alt={campaign.name}\n />\n <StyledName>{campaign.name}</StyledName>\n </AvatarAndName>\n </AvatarNameAndDescription>\n </BannerLeftSide>\n {campaign.url_hero_img && (\n <BannerRightSide src={campaign.url_hero_img} alt={t('ga_runoff.lets_win')} />\n )}\n </Banner>\n\n {/* {team && (\n <ReferredBy>\n <AvatarNameAndDescription>\n <AvatarDescription>{'referred by'}</AvatarDescription>\n <AvatarAndName>\n <StyledName>{team.name}</StyledName>\n <StyledAvatar src={team.profile_url} alt={team.name} />\n </AvatarAndName>\n </AvatarNameAndDescription>\n </ReferredBy>\n )} */}\n <MainContent>\n <GetStarted>\n <Title>{t('ga_runoff.georgia_runoff_election')}</Title>\n <ElectionDate>{t('ga_runoff.election_date')}</ElectionDate>\n <TwoRacesLeft>{t('ga_runoff.two_races_left')}</TwoRacesLeft>\n <TwoRacesLeft>{t('ga_runoff.how_to_participate')}</TwoRacesLeft>\n <Link to={`/campaigns/${campaignId}/georgia_runoff/options`}>\n <RedSquareRoundButton type=\"primary\" children={'get started'} />\n </Link>\n </GetStarted>\n </MainContent>\n </BannerAndContent>\n\n <MarketingSiteFooter />\n </Container>\n );\n};\n\nGeorgiaSpecialLanding.propTypes = {\n location: PropTypes.shape({\n search: PropTypes.string.isRequired,\n }).isRequired,\n match: PropTypes.shape({\n params: PropTypes.shape({\n campaignId: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n};\n\nexport default GeorgiaSpecialLanding;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\n\nimport Metric from '../CampaignLeaderboard/Metric';\n\nexport const MetricsContainer = styled.div`\n display: flex;\n flex-wrap: wrap;\n padding: 2rem 2.875rem;\n background: ${({ theme }) => theme.colors.whiteSmoke};\n border-radius: 10px;\n`;\n\nfunction Metrics({ numActivities, numRecruits, numPoints }) {\n const { t } = useTranslation();\n return (\n <MetricsContainer>\n <Metric large label={t('hq.metrics.points')} value={numPoints}></Metric>\n <Metric large label={t('hq.metrics.actions')} value={numActivities}></Metric>\n <Metric large label={t('hq.metrics.recruits')} value={numRecruits}></Metric>\n </MetricsContainer>\n );\n}\n\nMetrics.propTypes = {\n numActivities: PropTypes.string,\n numPoints: PropTypes.string,\n numRecruits: PropTypes.string,\n};\n\nMetrics.defaultProps = {};\n\nexport default Metrics;\n","import React from 'react';\n\nimport { Progress } from 'antd';\n\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { colors, fonts } from '../../styles/theme';\n\nimport badge1 from '@web/../../assets/images/web/badge1.png';\nimport badge2 from '@web/../../assets/images/web/badge2.png';\nimport badge3 from '@web/../../assets/images/web/badge3.png';\nimport badge4 from '@web/../../assets/images/web/badge4.png';\nimport badge5 from '@web/../../assets/images/web/badge5.png';\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n padding: 2rem;\n`;\nconst NextRankText = styled.div`\n width: 100%;\n color: ${colors.black};\n font-family: ${fonts.semibold};\n font-size: 16px;\n`;\n\nconst NextRankUntilText = styled.div`\n display: flex;\n justify-content: space-between;\n font-size: 0.875rem;\n font-family: ${fonts.regular};\n color: ${colors.blue};\n margin-bottom: 20px;\n`;\n\nconst RanksWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nconst RankAndBadgeText = styled.div`\n align-items: center;\n display: flex;\n text-transform: uppercase;\n margin-bottom: 10px;\n opacity: ${({ nextRank }) => (nextRank ? 0.4 : 1)};\n`;\n\nconst RankBadge = styled.img`\n width: 28px;\n height: 26px;\n padding: 5px 0;\n padding-right: 7px;\n`;\n\nconst Rank = styled.div`\n color: ${({ theme }) => theme.colors.black};\n font-size: 1.25rem;\n font-family: ${fonts.regular};\n`;\n\nfunction NextRank({ current, nextRank, fromComplete, toComplete, rank }) {\n const { t } = useTranslation();\n const toNextRank = toComplete - current;\n const progress =\n toComplete === fromComplete\n ? 100\n : ((current - fromComplete) / (toComplete - fromComplete)) * 100;\n\n // turn rank from \"New Volunteer\" to \"new_volunteer\" and then get that key from i18n locale\n const translatedRank = t(`profile.badges.${rank?.toLowerCase()?.replace(/\\s/g, '_')}`, rank);\n const translatedNextRank = nextRank\n ? t(`profile.badges.${nextRank?.toLowerCase()?.replace(/\\s/g, '_')}`, nextRank)\n : '';\n\n const GetRankBadge = ({ rank }) => {\n switch (rank) {\n case 'New Recruit':\n return badge1;\n case 'Dedicated Volunteer':\n return badge2;\n case 'Activist':\n return badge3;\n case 'Community Leader':\n return badge4;\n case 'Veteran Organizer':\n return badge5;\n default:\n return badge1;\n }\n };\n\n return (\n <Wrapper>\n <NextRankText>\n <span></span>\n <RanksWrapper>\n <RankAndBadgeText>\n <RankBadge src={GetRankBadge({ rank })} alt=\"Badge\" />\n <Rank>{translatedRank}</Rank>\n </RankAndBadgeText>\n <RankAndBadgeText nextRank={!!nextRank}>\n {nextRank && <RankBadge src={GetRankBadge({ nextRank })} alt=\"Badge\" />}\n <Rank>{translatedNextRank || t('hq.max_rank_achieved')}</Rank>\n </RankAndBadgeText>\n </RanksWrapper>\n\n <Progress\n percent={progress}\n showInfo={false}\n strokeWidth={10}\n strokeColor={colors.coral}\n trailColor={colors.blue06}\n style={{ margin: '7px 0 15px' }}\n />\n <NextRankUntilText>\n {nextRank && (\n <>\n <div>\n {t('hq.complete_actions_to_receive', {\n actionOrActions: toNextRank === 1 ? t('hq.action') : t('hq.action_plural'),\n toNextRank: toNextRank,\n })}\n </div>\n <div>\n {t('hq.actions_completed', {\n completed: toComplete - toNextRank,\n toComplete: toComplete,\n })}\n </div>\n </>\n )}\n </NextRankUntilText>\n </NextRankText>\n </Wrapper>\n );\n}\n\nNextRank.propTypes = {\n current: PropTypes.number.isRequired,\n fromComplete: PropTypes.number.isRequired,\n nextRank: PropTypes.string,\n rank: PropTypes.string.isRequired,\n toComplete: PropTypes.number.isRequired,\n};\n\nNextRank.defaultProps = {};\n\nexport default NextRank;\n","import React from 'react';\n\nimport { EditOutlined } from '@ant-design/icons';\nimport { Avatar } from 'antd';\n\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { media, fonts } from '../../styles/theme';\nimport { truncate } from '../../utils/string';\n\nconst ProfileHeader = styled.div`\n display: flex;\n flex-direction: column;\n padding: 0 1rem;\n\n ${media.ns} {\n align-items: center;\n flex-direction: row;\n }\n`;\n\nconst ProfileInfo = styled.div`\n display: inline-block;\n // margin-left: 1em;\n vertical-align: middle;\n margin-top: 1em;\n ${media.ns} {\n margin-top: 0em;\n margin-left: 2em;\n }\n`;\n\nconst Name = styled.div`\n font-family: ${fonts.semibold};\n font-size: 1.5rem;\n letter-spacing: 1.45px;\n color: ${({ theme }) => theme.colors.black};\n margin-bottom: 4px;\n`;\n\nconst Info = styled.div`\n font-size: 12px;\n`;\n\nconst EditButton = styled.div`\n display: flex;\n align-items: center;\n color: ${({ theme }) => theme.colors.coral};\n font-family: ${({ theme }) => theme.fonts.semibolditalic};\n cursor: pointer;\n font-size: ${'1rem'};\n margin-top: 10px;\n max-width: 60px;\n > span {\n margin-right: 10px;\n }\n\n &:hover {\n color: ${({ theme }) => theme.colors.blue};\n }\n`;\n\nfunction Profile({ firstName, lastName, profileUrl, suppliedZipCode, phone, locale, onEditClick }) {\n const { t } = useTranslation();\n\n const hasName = !!firstName && !!lastName;\n\n const fullname = hasName\n ? `${firstName.toString()} ${lastName.toString()}`\n : t('hq.fullname_placeholder');\n\n const initials = hasName\n ? `${(firstName && firstName[0]) || ''} ${(lastName && lastName[0]) || ''}`\n : 'F L';\n\n const getLanguage = () => {\n switch (locale) {\n case 'en':\n return 'English';\n case 'es':\n return 'Español';\n case 'ko':\n return 'í•œêµì–´';\n default:\n return 'English';\n }\n };\n\n const zipCode = suppliedZipCode ? suppliedZipCode : t('hq.not_set');\n\n return (\n <ProfileHeader>\n <Avatar src={profileUrl} size={120}>\n {initials.toUpperCase()}\n </Avatar>\n\n <ProfileInfo>\n <Name>{truncate(fullname, 20)}</Name>\n <Info>\n {phone} {zipCode && `| ${zipCode}`}\n </Info>\n <Info>\n {t('profile.language')} {getLanguage()}\n </Info>\n <EditButton onClick={onEditClick}>\n <EditOutlined /> {t('button.edit')}\n </EditButton>\n </ProfileInfo>\n </ProfileHeader>\n );\n}\n\nProfile.propTypes = {\n firstName: PropTypes.string,\n lastName: PropTypes.string,\n locale: PropTypes.string,\n onEditClick: PropTypes.func.isRequired,\n phone: PropTypes.string,\n profileUrl: PropTypes.string,\n suppliedZipCode: PropTypes.string,\n};\n\nProfile.defaultProps = {\n createdAt: null,\n profileUrl: null,\n suppliedZipCode: null,\n};\n\nexport default Profile;\n","import styled from 'styled-components';\n\nconst Section = styled.section`\n padding: 1rem;\n margin: 1rem 0;\n`;\n\nexport default Section;\n","import React from 'react';\nimport { users } from '@web/services/api';\n\nfunction useHasContacts() {\n const [hasContacts, setHasContacts] = React.useState(false);\n const [loading, setLoading] = React.useState(true);\n\n React.useEffect(() => {\n users\n .getContacts()\n .then(({ data }) => {\n if (data.data.length > 0) {\n setHasContacts(true);\n }\n setLoading(false);\n })\n .catch(() => setLoading(false));\n }, []);\n\n return { hasContacts, loading };\n}\n\nexport default useHasContacts;\n","import { Spin } from 'antd';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useDocumentTitle } from '../../hooks/useDocumentTitle';\nimport useHasContacts from '../../hooks/useHasContacts';\nimport SyncContactsModal from '../ContactSync/components/SyncContactsModal';\n\nimport styled, { css } from 'styled-components';\nimport ImpactiveButton from '../ImpactiveButton';\n\nconst Wrapper = styled.div`\n width: 100%;\n background: ${({ theme }) => theme.colors.white};\n border-radius: 16px;\n padding: 2rem;\n line-height: 1.5rem;\n margin-bottom: 3rem;\n`;\n\nconst Text = styled.div`\n ${({ theme }) => css`\n color: ${theme.colors.blue};\n font-family: ${theme.fonts.normal};\n font-size: 1rem;\n `};\n`;\n\nconst Title = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 2rem;\n margin: 1rem 0;\n`;\n\nconst SyncContacts = () => {\n const { t } = useTranslation();\n useDocumentTitle(t('titles.settings'));\n const { hasContacts, loading } = useHasContacts();\n const [syncContactsModalVisible, setSyncContactsModalVisible] = useState(false);\n\n return (\n <>\n <Title>{t('contact.sync.header')}</Title>\n <Wrapper>\n <Text>{t('contact.sync.what')}</Text>\n <Text>{t('contact.sync.privacy')}</Text>\n <br />\n {loading && <Spin />}\n {!loading && (\n <ImpactiveButton size=\"medium\" onClick={() => setSyncContactsModalVisible(true)}>\n {hasContacts ? t('contact.sync.resync_contacts') : t('contact.sync.sync_contacts')}\n </ImpactiveButton>\n )}\n\n <SyncContactsModal\n syncContactsModalVisible={syncContactsModalVisible}\n setSyncContactsModalVisible={setSyncContactsModalVisible}\n />\n </Wrapper>\n </>\n );\n};\n\nexport default SyncContacts;\n","import { message } from 'antd';\nimport React, { useCallback, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport S3Upload from 'react-s3-uploader/s3upload';\nimport { useDropzone } from 'react-dropzone';\nimport styled from 'styled-components';\nimport theme from '@admin/styles/theme';\nimport { DeleteOutlined, EditOutlined } from '@ant-design/icons';\n\nconst notDropzoneProps = ['onFinish', 'onDrop', 's3Url', 'filename', 'host', 'upload'];\nconst UPLOAD_ENDPOINT = '/api/v2/activities/upload_file.json';\n\nexport const imagesTypes = {\n 'image/jpeg': ['.jpg', '.jpeg'],\n 'image/png': ['.png'],\n 'image/webp': ['.webp'],\n};\n\nconst Wrapper = styled.div`\n position: relative;\n width: fit-content;\n`;\n\nconst Content = styled.div`\n cursor: ${({ $disabled }) => ($disabled ? 'not-allowed' : 'pointer')};\n`;\n\nconst ManageButtonsWrapper = styled.div`\n position: absolute;\n top: 0px;\n width: 100%;\n height: 100%;\n background: red;\n background-color: rgba(255, 255, 255, 0.7);\n display: flex;\n justify-content: flex-end;\n padding: 5px 5px 0 0;\n`;\n\nconst ButtonsWrapper = styled.div`\n display: flex;\n gap: 4px;\n margin: 4px;\n`;\n\nconst IconButton = styled.button`\n width: 32px;\n height: 32px;\n background: white;\n border-radius: 4px;\n border: 1px ${theme.colors.teal60} solid;\n display: flex;\n align-items: center;\n justify-content: center;\n &:hover {\n border-color: ${theme.colors.teal};\n }\n`;\n\n/**\n * ImpactiveS3Uploader is based on DropzoneS3Uploader component https://www.npmjs.com/package/react-dropzone-s3-uploader\n *\n * for handling file rejections use `onDropRejected` prop.\n * `onError` will only be triggered for promise rejections.\n */\nfunction ImpactiveImageUpload(props) {\n const dropzoneRef = React.createRef();\n const { s3Url, children, onDrop, maxSize, shouldShowManageButtons, ...dropzoneProps } = props;\n\n const [showManageButtons, setShowManageButtons] = useState(false);\n\n const handleProgress = useCallback(\n (progress, textState, file) => {\n props.onProgress?.(progress, textState, file);\n },\n [props],\n );\n\n const handleError = useCallback(\n (err, file) => {\n props.onError?.(err, file);\n },\n [props],\n );\n\n const handleFinish = useCallback(\n (info, file) => {\n const uploadedFile = {\n file,\n ...info,\n };\n props.onFinish?.(uploadedFile);\n },\n [props],\n );\n\n const handleDrop = useCallback(\n (files, rejectedFiles) => {\n const options = {\n contentDisposition: 'auto',\n files,\n onError: handleError,\n onFinishS3Put: handleFinish,\n onProgress: handleProgress,\n s3path: '',\n server: UPLOAD_ENDPOINT,\n signingUrl: '',\n signingUrlHeaders: {\n Authorization: localStorage.getItem('_outvote_web__token'),\n },\n signingUrlQueryParams: { uploadType: 'file' },\n uploadRequestHeaders: { 'x-amz-acl': 'public-read' },\n ...props.upload,\n };\n new S3Upload(options);\n props.onDrop?.(files, rejectedFiles);\n },\n [handleError, handleFinish, handleProgress, props],\n );\n\n const handleDropRejected = useCallback(\n rejectedFiles => {\n props.onDropRejected?.(rejectedFiles);\n\n const [{ errors, file }] = rejectedFiles;\n // Fallback file rejection handler (display failure toast message)\n // message context will be available when file param is present\n if (!props.onDropRejected) {\n const context = file && errors[0]?.message;\n message.error(`File upload error. ${context}`);\n }\n },\n [props],\n );\n\n const { getRootProps, getInputProps, open } = useDropzone({\n accept: props.accept,\n disabled: props.disabled,\n maxSize: props.maxSize,\n onDrop: handleDrop,\n onDropRejected: handleDropRejected,\n // useFsAccessApi needs to be disabled, otherwise only the first allowed MIME type is selected by default\n // https://github.com/react-dropzone/react-dropzone/issues/1191#issuecomment-1121245916\n useFsAccessApi: false,\n });\n\n notDropzoneProps.forEach(prop => delete dropzoneProps[prop]);\n\n const onDelete = useCallback(() => {\n props.onFinish?.(null);\n setShowManageButtons(false);\n }, [props]);\n\n return (\n <Wrapper\n onMouseOver={() => shouldShowManageButtons && setShowManageButtons(true)}\n onMouseLeave={() => shouldShowManageButtons && setShowManageButtons(false)}\n >\n <Content $disabled={props.disabled} ref={dropzoneRef}>\n <div {...getRootProps({ ...dropzoneProps })}>\n <input {...getInputProps()} />\n {children}\n </div>\n </Content>\n {showManageButtons && (\n <ManageButtonsWrapper onMouseOver={() => setShowManageButtons(true)}>\n <ButtonsWrapper>\n <IconButton type=\"button\" onClick={onDelete}>\n <DeleteOutlined />\n </IconButton>\n <IconButton type=\"button\" onClick={open}>\n <EditOutlined />\n </IconButton>\n </ButtonsWrapper>\n </ManageButtonsWrapper>\n )}\n </Wrapper>\n );\n}\n\nImpactiveImageUpload.propTypes = {\n accept: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n // Default styles for react-dropzone, allow styling with styled-components\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n disabled: PropTypes.bool,\n maxSize: PropTypes.number,\n onDrop: PropTypes.func,\n onDropRejected: PropTypes.func,\n onError: PropTypes.func,\n onFinish: PropTypes.func,\n onProgress: PropTypes.func,\n\n s3Url: PropTypes.string,\n shouldShowManageButtons: PropTypes.bool,\n style: PropTypes.object,\n // Passed to react-s3-uploader\n upload: PropTypes.object.isRequired,\n};\n\nImpactiveImageUpload.defaultProps = {\n accept: {},\n className: 'react-dropzone-s3-uploader',\n disabled: false,\n s3Url: 'https://outvote-static-assets.s3.amazonaws.com',\n shouldShowManageButtons: false,\n style: {\n border: 'dashed 2px #999',\n borderRadius: 5,\n cursor: 'pointer',\n height: 200,\n overflow: 'hidden',\n position: 'relative',\n width: 200,\n },\n upload: {},\n};\n\nexport default ImpactiveImageUpload;\n","import React from 'react';\n\nimport ImpactiveModal from '../common/ImpactiveModal';\nimport ImpactiveButton from '../ImpactiveButton';\n\nimport { useTranslation } from 'react-i18next';\nimport styled, { css } from 'styled-components';\n\nimport PropTypes from 'prop-types';\n\nconst Title = styled.div`\n ${({ theme }) => css`\n font-size: 2rem;\n font-family: ${theme.fonts.bold};\n color: ${theme.colors.blue};\n margin-bottom: 1rem;\n `}\n`;\n\nconst Description = styled.div`\n ${({ theme }) => css`\n font-size: 1rem;\n font-family: ${theme.fonts.normal};\n color: ${theme.colors.blue60};\n `}\n`;\n\nconst Footer = styled.div`\n margin-top: 2rem;\n display: flex;\n justify-content: flex-end;\n > button {\n &:last-of-type {\n margin-left: 10px;\n }\n }\n`;\n\nconst ConfirmDeleteModal = ({ visible, onDelete, onCancel }) => {\n const { t } = useTranslation();\n return (\n <ImpactiveModal visible={visible} onCancel={onCancel}>\n <Title>{t('settings.delete_modal.title')}</Title>\n\n <Description>{t('settings.delete_modal.description')}</Description>\n <br />\n <Description>{t('settings.delete_modal.warning')}</Description>\n\n <Footer>\n <ImpactiveButton onClick={onCancel}>{t('common.cancel')}</ImpactiveButton>\n <ImpactiveButton onClick={onDelete} style={{ background: 'red' }}>\n {t('settings.delete_account')}\n </ImpactiveButton>\n </Footer>\n </ImpactiveModal>\n );\n};\n\nConfirmDeleteModal.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n visible: PropTypes.bool.isRequired,\n};\n\nexport default ConfirmDeleteModal;\n","import * as yup from 'yup';\nimport i18n from '@web/components/i18n';\n\nconst EditUserScheme = yup.object().shape({\n firstName: yup.string().required(i18n.t('idvoters.validation.name')),\n lastName: yup\n .string()\n .required(i18n.t('errors.field_required', { field: i18n.t('placeholders.last_name') })),\n locale: yup.string().oneOf(['en', 'es', 'ko']).required('Language is required!'),\n phone: yup.string().required(i18n.t('idvoters.validation.phoneRequired')),\n zipCode: yup.string().nullable(),\n});\n\nexport default EditUserScheme;\n","import React, { useContext, useMemo, useRef, useState } from 'react';\nimport { Redirect } from 'react-router-dom';\n\nimport ImpactiveImageUpload, { imagesTypes } from '../common/ImpactiveImageUpload';\nimport ImpactiveModal from '@web/components/common/ImpactiveModal';\nimport { Formik } from 'formik';\nimport ImpactiveButton from '../ImpactiveButton';\nimport SelectComponent from '../common/shared/Select';\nimport ConfirmDeleteModal from './ConfirmDeleteModal';\nimport { Progress } from 'antd';\n\nimport { message } from 'antd';\nimport { useTranslation } from 'react-i18next';\nimport { user as userAPI, auth as authApi } from 'web/services/api';\nimport { AuthContext } from 'web/utils/context';\nimport { setAppLanguage } from '../i18n';\nimport styled, { css } from 'styled-components';\nimport PropTypes from 'prop-types';\nimport EditUserScheme from './EditUserFormScheme';\nimport FormInput from '../common/shared/FormInput';\nimport { media } from '@web/styles/theme';\n\nconst StyledDropzoneS3Uploader = styled(ImpactiveImageUpload)`\n &&& {\n display: flex;\n justify-content: center;\n overflow: hidden;\n ${({ $empty, $placeholder }) =>\n $empty &&\n css`\n border: 2px dashed rgb(153, 153, 153);\n\n &:before {\n content: '${$placeholder}';\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 0.9em;\n padding: 20px;\n }\n `}\n }\n`;\n\nconst Title = styled.div`\n ${({ theme }) => css`\n font-size: 2rem;\n font-family: ${theme.fonts.bold};\n color: ${theme.colors.blue};\n margin-bottom: 2rem;\n `}\n`;\n\nconst FieldsWrapper = styled.div`\n display: grid;\n grid-template-columns: 1fr;\n gap: 20px;\n ${media.xl} {\n grid-template-columns: 1fr 1fr;\n }\n`;\n\nconst TopBlock = styled.div`\n display: flex;\n flex-grow: 1;\n gap: 20px;\n flex-direction: column;\n margin-bottom: 20px;\n align-items: center;\n ${media.xl} {\n gap: 50px;\n margin-bottom: 30px;\n flex-direction: row;\n }\n`;\n\nconst NameFields = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n flex: 1;\n gap: 20px;\n width: 100%;\n`;\n\nconst ButtonWrapper = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n margin-top: 3.5rem;\n > button {\n min-width: 100px;\n }\n`;\n\nconst AvatarWrapper = styled.div`\n width: fit-content;\n`;\n\nconst locales = [\n {\n label: 'English',\n value: 'en',\n },\n {\n label: 'Español',\n value: 'es',\n },\n {\n label: 'í•œêµì–´',\n value: 'ko',\n },\n];\n\nconst EditUserModal = ({ user, visible, onCancel }) => {\n const { setAuth, setUser } = useContext(AuthContext);\n const [deleted, setDeleted] = useState(false);\n const [showConfirmModal, setShowConfirmModal] = useState(false);\n const [uploadProgress, setUploadProgress] = useState(0);\n\n const { t } = useTranslation();\n const formRef = useRef();\n const formInitialValues = useMemo(() => {\n const { first_name, last_name, phone, profile_url, supplied_zip_code, locale } = user;\n return {\n firstName: first_name,\n lastName: last_name,\n locale: locale,\n phone: phone,\n profileUrl: profile_url,\n zipCode: supplied_zip_code,\n };\n }, [user]);\n\n const onSubmit = values => {\n const { firstName, lastName, phone, zipCode, locale, profileUrl } = values;\n userAPI\n .updateProfile({ firstName, lastName, locale, phone, profileUrl, zipCode })\n .then(({ data: { data } }) => {\n message.success(t('settings.updated_message'));\n setAppLanguage(locale);\n setUser(data); // Update AuthContext user\n onCancel();\n })\n .catch(() => {\n message.error(t('errors.action_failed'));\n });\n };\n\n const onDelete = () => {\n authApi.deleteAccount(user.id).then(() => {\n setUser(null);\n setAuth(null);\n setDeleted(true);\n message.success(t('settings.deleted_message'));\n });\n };\n\n const onPhoneChangeHandler = (number, setFieldValue) => {\n // Add `+` prefix if user starts entering digits\n if (/^\\d{1}$/.test(number)) {\n setFieldValue('phone', `+1${number}`);\n return;\n }\n\n // Only allow numbers, starting with + symbol\n if (/^$|^(?:\\+1)\\d*$/.test(number)) {\n setFieldValue('phone', number);\n return;\n }\n };\n\n const onZipChangeHandler = (zip, setFieldValue) => {\n if (/^\\d{0,5}$/.test(zip)) {\n setFieldValue('zipCode', zip);\n return;\n }\n };\n\n const showLoading = React.useMemo(\n () => uploadProgress > 0 && uploadProgress < 100,\n [uploadProgress],\n );\n\n if (deleted) return <Redirect to={'/auth'} />;\n\n return (\n <>\n <ImpactiveModal style={{ minWidth: '40%' }} visible={visible} onCancel={onCancel}>\n <Title>{t('settings.edit_user_details')}</Title>\n <Formik\n ref={formRef}\n initialValues={formInitialValues}\n validationSchema={EditUserScheme}\n onSubmit={onSubmit}\n render={({ values, setFieldValue, isValid }) => (\n <>\n <TopBlock>\n <AvatarWrapper>\n <StyledDropzoneS3Uploader\n style={{ borderRadius: '100%', height: 150, width: 150 }}\n name=\"profileUrl\"\n multiple={false}\n accept={imagesTypes}\n maxSize={1024 * 1024 * 10}\n onFinish={value =>\n setFieldValue('profileUrl', value?.signedUrl.split('?')[0] ?? null)\n }\n onProgress={setUploadProgress}\n shouldShowManageButtons={!!values.profileUrl}\n $placeholder={t('profile.upload_image_placeholder')}\n $empty={!values.profileUrl}\n >\n {!!values.profileUrl && (\n <img src={values.profileUrl} alt={t('profile.image_alt')} />\n )}\n </StyledDropzoneS3Uploader>\n {showLoading && <Progress percent={uploadProgress} size=\"small\" />}\n </AvatarWrapper>\n <NameFields style={{ flex: 1 }}>\n <FormInput\n name=\"firstName\"\n label={t('placeholders.first_name')}\n textTransform={'capitalize'}\n placeholder={t('placeholders.first_name')}\n onChange={v => setFieldValue('firstName', v.target.value)}\n value={values.firstName}\n />\n <FormInput\n name=\"lastName\"\n label={t('placeholders.last_name')}\n textTransform={'capitalize'}\n placeholder={t('placeholders.last_name')}\n onChange={v => setFieldValue('lastName', v.target.value)}\n value={values.lastName}\n />\n </NameFields>\n </TopBlock>\n\n <FieldsWrapper>\n <FormInput\n name=\"phone\"\n label={t('placeholders.phone_number')}\n textTransform={'capitalize'}\n placeholder={t('placeholders.phone_number')}\n onChange={v => onPhoneChangeHandler(v.target.value, setFieldValue)}\n value={values.phone}\n />\n <FormInput\n name=\"zipCode\"\n placeholder={t('placeholders.zip')}\n label={t('placeholders.zip')}\n textTransform={'capitalize'}\n value={values.zipCode}\n onChange={v => onZipChangeHandler(v.target.value, setFieldValue)}\n />\n <SelectComponent\n placeholder={t('frontline.filters.filter_by_issue')}\n label={t('placeholders.preferred_language')}\n value={values.locale}\n options={locales}\n defaultValue=\"en\"\n minWidth=\"unset\"\n onChange={val => setFieldValue('locale', val)}\n labelProps={{ bold: true }}\n />\n </FieldsWrapper>\n\n <ButtonWrapper>\n <ImpactiveButton\n onClick={() => setShowConfirmModal(true)}\n style={{ background: 'red' }}\n >\n {t('settings.delete_account')}\n </ImpactiveButton>\n\n <ImpactiveButton disabled={!isValid} onClick={() => formRef.current.submitForm()}>\n {t('common.save')}\n </ImpactiveButton>\n </ButtonWrapper>\n </>\n )}\n />\n </ImpactiveModal>\n <ConfirmDeleteModal\n visible={showConfirmModal}\n onCancel={() => setShowConfirmModal(false)}\n onDelete={onDelete}\n />\n </>\n );\n};\n\nEditUserModal.propTypes = {\n onCancel: PropTypes.func.isRequired,\n user: PropTypes.shape({\n first_name: PropTypes.string,\n id: PropTypes.number.isRequired,\n last_name: PropTypes.string,\n locale: PropTypes.string,\n phone: PropTypes.string,\n profile_url: PropTypes.string,\n supplied_zip_code: PropTypes.string,\n team_name: PropTypes.string,\n }).isRequired,\n visible: PropTypes.bool.isRequired,\n};\n\nexport default EditUserModal;\n","import React, { useEffect, useState } from 'react';\nimport AppContainer from '../AppContainer';\nimport AppHeader from '../AppHeader';\nimport Loading from '../common/Loading';\nimport MaxWidthContainer from '../common/MaxWidthContainer';\nimport Metrics from './Metrics';\nimport NextRank from './NextRank';\nimport Profile from './Profile';\nimport Section from './Section';\n// import UserTeamsSection from './UserTeamsSection';\n\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { useDocumentTitle } from '../../hooks/useDocumentTitle';\nimport { track } from '../../services/analytics';\nimport { user } from '../../services/api';\nimport { media } from '../../styles/theme';\nimport SyncContacts from './SyncContact';\nimport EditUserModal from '../Settings/EditUserModal';\n\nconst Title = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 3rem;\n`;\n\nconst ProfileAndMetrics = styled(Section)`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n padding-bottom: 2rem;\n border-bottom: ${({ theme }) => theme.colors.blue16} 1px dashed;\n margin-bottom: 0;\n ${media.ns} {\n grid-template-columns: 1fr 1fr;\n justify-content: space-between;\n }\n`;\n\nconst UserInfo = styled.div`\n background: ${({ theme }) => theme.colors.white};\n box-shadow: 1px 3px 12px rgba(0, 0, 0, 0.08);\n border-radius: 16px;\n`;\n\nconst Hq = () => {\n const { t } = useTranslation();\n useDocumentTitle(t('titles.hq'));\n\n const [profileLoading, setProfileLoading] = useState(true);\n const [userProfile, setUserProfile] = useState({});\n\n // const [teamsLoading, setTeamsLoading] = useState(true);\n // const [teams, setTeams] = useState();\n\n const [showEditModal, setShowEditModal] = useState(false);\n\n // Load user profile fn\n const loadUserProfile = async () => {\n setProfileLoading(true);\n await user.getProfile().then(({ data: { data } }) => {\n setUserProfile(data);\n setProfileLoading(false);\n });\n };\n\n // Load user's teams fn\n // Not ready yet\n // const loadUserTeams = async () => {\n // setTeamsLoading(true);\n // user.getTeams().then(({ data: { data } }) => {\n // setTeams(data);\n // setTeamsLoading(false);\n // });\n // };\n\n // On page load we need to fetch the users profile, allies, and contacts and store it in state\n useEffect(() => {\n track('VIEW_HQ_SCREEN');\n loadUserProfile();\n // loadUserTeams();\n // eslint-disable-next-line\n }, []);\n\n // useEffect(() => {\n // loadUserTeams();\n // }, [campaign]);\n\n const {\n first_name: firstName = '',\n last_name: lastName = '',\n profile_url: profileUrl,\n locale,\n // TODO: this should be activities_completed_count (assuming the app\n // is correct)\n activities_performed_count: numActivities,\n activities_completed_count: activitiesCompleted,\n recruited_count: numRecruits,\n scoring: {\n rank_progress_from: rankProgressFrom,\n rank_progress_to: rankProgressTo,\n next_rank: nextRank,\n score: numPoints,\n rank,\n } = {},\n created_at: createdAt,\n supplied_zip_code: suppliedZipCode,\n phone,\n } = userProfile;\n\n const closeEditModal = () => {\n loadUserProfile();\n setShowEditModal(false);\n };\n\n if (profileLoading) {\n return (\n <>\n <AppHeader title={t('titles.hq')} />\n <AppContainer>\n <div className=\"flex-row justify-content-center mt-4\">\n <Loading />\n </div>\n </AppContainer>\n </>\n );\n }\n\n return (\n <div>\n <AppHeader title={t('titles.hq')} />\n <AppContainer grayBackground>\n <MaxWidthContainer>\n <Title>{t('hq.title')}</Title>\n <UserInfo>\n <ProfileAndMetrics>\n <Profile\n firstName={firstName}\n lastName={lastName}\n profileUrl={profileUrl}\n createdAt={createdAt}\n suppliedZipCode={suppliedZipCode}\n phone={phone}\n locale={locale}\n onEditClick={() => setShowEditModal(true)}\n />\n <Metrics\n numPoints={numPoints}\n numActivities={numActivities}\n numRecruits={numRecruits}\n />\n </ProfileAndMetrics>\n <NextRank\n current={activitiesCompleted}\n fromComplete={rankProgressFrom}\n toComplete={rankProgressTo}\n nextRank={nextRank}\n rank={rank}\n />\n </UserInfo>\n {/* Not ready on the backend side\n {!teamsLoading && <UserTeamsSection user={userProfile} teams={teams} />} */}\n <SyncContacts />\n </MaxWidthContainer>\n </AppContainer>\n <EditUserModal user={userProfile} visible={showEditModal} onCancel={closeEditModal} />\n </div>\n );\n};\n\nHq.propTypes = {};\n\nexport default Hq;\n","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation, useHistory } from 'react-router-dom';\nimport styled from 'styled-components';\nimport { useDocumentTitle } from '../../hooks/useDocumentTitle';\nimport { users } from '../../services/api';\nimport AppContainer from '../AppContainer';\nimport AppHeader from '../AppHeader';\nimport BackButton from '../common/BackButton';\nimport IdVotersForm from './IdVotersForm';\nimport IdVotersList from './IdVotersList';\n\nconst HeaderAndDescription = styled.div`\n padding: 0px 16px;\n`;\nconst Header = styled.div`\n font-size: 22px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n margin-bottom: 10px;\n`;\n\nconst Description = styled.div`\n font-size: 12px;\n margin-bottom: 20px;\n`;\n\n// Search the national voter file with the following parameters to find possible matches for either a contact or someone you've just met at an event\nconst IdVoters = () => {\n const { t } = useTranslation();\n const { state } = useLocation();\n const history = useHistory();\n const { contact_id, firstName, lastName, activityId, userActivityId, campaignId } = state || {};\n useDocumentTitle(t('titles.idvoters'));\n\n // POST form to get a list of all possible voters, then navigate to search results page to select one. Could also pass the parameters to the search page and POST there since you may want to filter/sort results on the search page.\n // All fields are required\n // Keep in mind: this may be to match a user's contact or it may be to find someone who was just met or it may be used to add someone new who was just met\n const [voters, setVoters] = useState([]);\n const [loadingItems, setLoadingItems] = useState(false);\n const [searched, setSearched] = useState(false);\n\n const handleFormSubmit = async (formData, { setSubmitting }) => {\n setLoadingItems(true);\n setSearched(true);\n await users.searchVoters(formData).then(({ data }) => {\n setVoters(data);\n setSubmitting(false);\n setLoadingItems(false);\n });\n };\n\n const isFriend = !!contact_id;\n const contactId = contact_id;\n const pushToVoterView = voter => {\n history.push({\n pathname: '/voter/view',\n state: {\n activityId,\n campaignId,\n contactId,\n isFriend,\n userActivityId,\n voter,\n voterbaseId: voter?.voterbase_id,\n },\n });\n };\n\n return (\n <>\n <AppHeader title={t('idvoters.header')} />\n <AppContainer>\n <div className=\"px-3\">\n <div className=\"p-3\">\n <BackButton />\n </div>\n <HeaderAndDescription>\n <Header>{t('idvoters.header')}</Header>\n <Description>{t('inbox.report.description')}</Description>\n </HeaderAndDescription>\n <IdVotersForm\n isFriend={!!contact_id}\n campaignId={campaignId}\n activityId={activityId}\n userActivityId={userActivityId}\n firstName={firstName}\n lastName={lastName}\n onSubmit={handleFormSubmit}\n />\n <div className=\"mt-4\">\n <IdVotersList\n isFriend={!!contact_id}\n campaignId={campaignId}\n activityId={activityId}\n userActivityId={userActivityId}\n loading={loadingItems}\n show={searched}\n voters={voters}\n contactId={contact_id}\n onListItemClick={pushToVoterView}\n />\n </div>\n </div>\n </AppContainer>\n </>\n );\n};\n\nIdVoters.propTypes = {};\n\nexport default IdVoters;\n","import React from 'react';\nimport Loading from '../common/Loading';\nimport styled from 'styled-components';\n\nconst LoadingWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n height: 60px;\n width: 100%;\n`;\n\nconst MessageThreadLoading = () => (\n <LoadingWrapper>\n <Loading />\n </LoadingWrapper>\n);\n\nexport default MessageThreadLoading;\n","import words from 'profane-words';\nimport { sortByDisplayOrderFn } from '../../utils/other';\n\nconst getOtherUser = (userId, users) => {\n const not_me = users.filter(user => user.id !== userId);\n if (not_me.length > 0) {\n return not_me[0];\n }\n\n // Now we allow users to DM themselves\n const me = users.find(user => user.id === userId);\n return me ?? {};\n};\n\nconst getPersonFromMessageThread = (messageThread, userId) => {\n const { kind, contact = {}, users } = messageThread;\n if (kind === 'user_to_user') {\n return getOtherUser(userId, users);\n }\n return contact;\n};\n\nconst getFullName = (firstName, lastName) => {\n const [first, last] = [firstName || '', lastName || ''];\n const maybeSpace = first && last ? ' ' : '';\n\n return first || last ? `${first}${maybeSpace}${last}` : 'No Name';\n};\n\nconst formatCustomizationResponse = customizations => {\n return customizations\n .filter(customization => customization.custom_field.is_user_reportable !== false)\n .map(customization => {\n const {\n id,\n custom_field_id,\n custom_field: { available_values, display_order, name, prompt, slug, type },\n value,\n } = customization;\n return {\n available_values,\n custom_field_id,\n display_order,\n id,\n name,\n prompt,\n slug,\n type,\n value,\n };\n })\n .sort(sortByDisplayOrderFn);\n};\n\nconst formatTaggingsResponse = taggings => {\n return taggings\n .map(tagging => {\n const {\n id,\n tag_id,\n tag: { slug, name, display_order, prompt },\n value,\n } = tagging;\n return { display_order, id, name, prompt, slug, tag_id, value };\n })\n .sort(sortByDisplayOrderFn);\n};\n\nconst formatUserReportBody = (reportId, customizations, taggings) => {\n return {\n customizations_attributes: customizations.map(cust => {\n const { custom_field_id, id, value } = cust;\n return { custom_field_id, id, value };\n }),\n id: reportId,\n taggings_attributes: taggings.map(tagging => {\n const { id, tag_id, value } = tagging;\n return { id, tag_id, value };\n }),\n };\n};\n\nconst getRelationshipLabel = (kind, is_staff, is_outvote, user, t) => {\n switch (kind) {\n case 'friend_to_friend':\n return t('inbox.friend_label');\n case 'user_to_user':\n // if someone in the message thread is a campaign admin, and it's not me, I'm talking to staff\n if (is_staff && !user?.is_campaign_admin) {\n return t('inbox.staff_label');\n }\n // if no one on the message thread is staff, I'm talking to a volunteer\n if (!is_staff) {\n return t('inbox.volunteer_label');\n }\n // if someonee in the message thread is from outvote/impactive and it's not me, I'm talking\n // to an Impactive Admin\n if (is_outvote && !user?.is_impactive_admin) {\n return t('inbox.impactive_admin_label');\n }\n // Falls through for if user_to_user doesn't match any clauses too\n default:\n return null;\n }\n};\n\nconst getThreadTypeName = (threadType, t) => {\n switch (threadType) {\n case 'peer_to_peer':\n return t('inbox.threadType.peerToPeer');\n case 'friend_to_friend':\n return t('inbox.threadType.friendToFriend');\n case 'user_to_user':\n return t('inbox.threadType.userToUser');\n case 'team':\n return t('inbox.threadType.team');\n case 'broadcast':\n return t('inbox.threadType.broadcast');\n case 'canvass':\n return t('inbox.threadType.canvass');\n default:\n return '';\n }\n};\n\nconst profanityToExclude = ['abuse', '666', 'bloody'];\nconst profanityWords = words.filter(word => !profanityToExclude.includes(word));\n\nconst checkForProfanity = (message, threadType) => {\n // activity types that detect profane words\n const types = ['peer_to_peer', 'broadcast'];\n\n // split the message into words\n const splittedWords = message?.match(/\\b(\\w+)\\b/g) || [];\n const withProfanity = types.includes(threadType)\n ? splittedWords.some(word => profanityWords.includes(word.toLowerCase()))\n : false;\n\n return withProfanity;\n};\n\nexport {\n getOtherUser,\n getPersonFromMessageThread,\n getFullName,\n formatCustomizationResponse,\n formatTaggingsResponse,\n formatUserReportBody,\n getRelationshipLabel,\n getThreadTypeName,\n checkForProfanity,\n};\n","import { CheckOutlined, FlagFilled, UserOutlined } from '@ant-design/icons';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled, { css } from 'styled-components';\nimport ImpactiveTypes from '@web/../types';\nimport { localizedDateTime, truncate } from '@web/utils/string';\nimport { getThreadTypeName } from '../utils';\nimport pxToRem from '@web/utils/pxToRem';\n\nconst StyledMessageThreadItem = styled.li`\n ${({ active, theme, left, unread }) => css`\n border: 1px solid #eeeeee;\n cursor: pointer;\n padding: ${left ? `28px 40px 28px ${active ? '54px' : '60px'}` : '28px 40px 28px 42px'};\n border-left: ${active ? `solid 7px ${theme.colors.blue}` : 'unset'};\n background: ${unread ? theme.colors.white : theme.colors.activityBackground};\n z-index: 1;\n position: relative;\n :hover {\n box-shadow: ${!active\n ? '2px 6px 14px rgb(0 16 72 / 5%)'\n : 'inset 12px 4px 25px -2px rgb(0 0 0 / 6%)'};\n z-index: 2;\n }\n box-shadow: ${active ? 'inset 12px 4px 25px -2px rgb(0 0 0 / 6%);' : 'none'};\n @media (max-width: 499px) {\n padding: 28px 40px 28px 25px;\n }\n `}\n`;\n\nconst MessageTopSection = styled.div`\n display: flex;\n align-items: start;\n`;\n\nconst MessageTypeSection = styled.div`\n margin-right: 10px;\n svg {\n width: 10px;\n height: 10px;\n ${({ theme, unread }) => `\n color: ${unread ? theme.colors.trueBlack : theme.colors.blue};\n opacity: ${unread ? 1 : 0.8};\n `}\n }\n`;\n\nconst MessageInfoWrapper = styled.div`\n width: 100%;\n`;\n\nconst MessageBottomSection = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nconst ThreadInfo = styled.div`\n font-family: ${({ theme }) => theme.fonts.semibold};\n color: ${({ theme }) => theme.colors.blue};\n font-size: 0.875rem;\n display: flex;\n align-items: center;\n > span {\n margin-left: 6px;\n }\n`;\n\nconst UnreadDot = styled.div`\n background: ${({ theme }) => theme.colors.red};\n border-radius: 50px;\n margin-top: 11px;\n width: 8px;\n height: 8px;\n`;\n\nconst FullNameAndLabel = styled.span`\n ${({ theme, unread }) => css`\n font-family: ${unread ? theme.fonts.semibold : theme.fonts.regular};\n color: ${unread ? theme.colors.trueBlack : theme.colors.blue};\n opacity: ${unread ? 1 : 0.8};\n font-size: 1.125rem;\n display: flex;\n align-items: end;\n `}\n`;\n\nconst Timestamp = styled.span`\n font-family: ${({ theme }) => theme.fonts.regular};\n color: ${({ theme }) => theme.colors.gray};\n font-size: 0.875rem;\n`;\n\nconst MessageInfo = styled.div`\n display: flex;\n justify-content: space-between;\n width: 100%;\n`;\n\nconst MessageContent = styled.div`\n font-family: ${({ theme }) => theme.fonts.regular};\n color: ${({ theme }) => theme.colors.darksLateGray};\n font-size: ${pxToRem(14)};\n line-height: 26px;\n margin: 10px 0 26px;\n`;\n\nconst Tag = styled.div`\n background: rgba(123, 218, 230, 0.44);\n padding: 14px 10px;\n color: rgba(39, 39, 39, 0.5);\n border-radius: 30px;\n height: 24px;\n display: flex;\n font-size: 0.625rem;\n font-weight: bold;\n align-items: center;\n justify-content: center;\n text-align: center;\n margin: 0 8px;\n`;\n\nconst MessageThreadPreviewContent = props => {\n const {\n unread,\n constructThreadLink,\n name,\n relationship,\n countOfMessages,\n isActive,\n isReportFilled,\n messageThread: { latest_message_body, needs_attention, latest_message_at, kind, team },\n } = props;\n const { t } = useTranslation();\n const isTeamChat = kind === 'team';\n\n const renderChatName = () => {\n const chatName = isTeamChat ? team?.name : name;\n\n return truncate(chatName, 30);\n };\n\n return (\n <StyledMessageThreadItem\n active={isActive}\n left={!unread && !needs_attention}\n onClick={constructThreadLink}\n onKeyDown={e => e.key === 'Enter' && constructThreadLink()}\n unread={unread}\n tabIndex={0}\n >\n <MessageTopSection>\n {(unread || needs_attention) && (\n <MessageTypeSection unread={unread}>\n {unread ? <UnreadDot /> : needs_attention ? <FlagFilled size={8} /> : null}\n </MessageTypeSection>\n )}\n <MessageInfoWrapper>\n <MessageInfo>\n <FullNameAndLabel unread={unread}>\n {renderChatName()} {countOfMessages}\n {relationship && <Tag>{relationship}</Tag>}\n </FullNameAndLabel>\n <Timestamp>{latest_message_at && localizedDateTime(latest_message_at)}</Timestamp>\n </MessageInfo>\n <MessageContent>\n {latest_message_body && truncate(latest_message_body, 130)}\n </MessageContent>\n </MessageInfoWrapper>\n </MessageTopSection>\n <MessageBottomSection>\n <span>{getThreadTypeName(kind, t)}</span>\n {isReportFilled && (\n <ThreadInfo>\n {t('inbox.thread.report_filled')} <CheckOutlined />\n </ThreadInfo>\n )}\n {isTeamChat && (\n <ThreadInfo>\n {t('inbox.thread.team')} <UserOutlined />\n </ThreadInfo>\n )}\n </MessageBottomSection>\n </StyledMessageThreadItem>\n );\n};\n\nMessageThreadPreviewContent.propTypes = {\n constructThreadLink: PropTypes.func.isRequired,\n countOfMessages: PropTypes.string,\n isActive: PropTypes.bool.isRequired,\n isReportFilled: PropTypes.bool.isRequired,\n messageThread: ImpactiveTypes.messageThread,\n name: PropTypes.string.isRequired,\n relationship: PropTypes.string,\n unread: PropTypes.bool.isRequired,\n};\n\nexport default MessageThreadPreviewContent;\n","import React, { useContext, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport MessageThreadPreviewContent from './MessageThreadPreview';\n\nimport { AuthContext, StateContext } from 'web/utils/context';\nimport ImpactiveTypes from '@web/../types';\nimport { getOtherUser, getFullName, getRelationshipLabel } from '../utils';\n\nconst MessageThreadPreview = props => {\n const {\n messageThread,\n messageThread: {\n id: messageThreadId,\n contact,\n kind,\n unread: initialUnread,\n users,\n messages_count: totalMessageThreadMessagesCount,\n is_staff,\n is_outvote,\n is_report_filled: isReportFilled,\n },\n setMessageThreadParams,\n activeMessageThreadId,\n } = props;\n const { user } = useContext(AuthContext);\n const { decreaseUnreadMessagesCount } = useContext(StateContext);\n const [unread, setUnread] = useState(initialUnread);\n\n const { t } = useTranslation();\n\n useEffect(() => {\n if (activeMessageThreadId !== messageThreadId) {\n setUnread(initialUnread);\n } else {\n setUnread(false);\n }\n }, [initialUnread, activeMessageThreadId, messageThreadId]);\n\n const not_me = contact ? contact : getOtherUser(user && user.id, users);\n if (!not_me) return null;\n\n const firstName = not_me.first_name;\n const lastName = not_me.last_name;\n const name = getFullName(firstName, lastName);\n\n const constructThreadLink = () => {\n setMessageThreadParams(messageThreadId);\n setUnread(false);\n\n // When the message thread was unread we want to update (decrease) unread messages count\n if (unread) {\n decreaseUnreadMessagesCount();\n }\n };\n\n const countOfMessages = totalMessageThreadMessagesCount\n ? `(${totalMessageThreadMessagesCount})`\n : null;\n\n const relationship = getRelationshipLabel(kind, is_staff, is_outvote, user, t);\n\n return (\n <MessageThreadPreviewContent\n constructThreadLink={constructThreadLink}\n countOfMessages={countOfMessages}\n messageThread={messageThread}\n name={name}\n unread={unread}\n relationship={relationship}\n isReportFilled={isReportFilled}\n isActive={activeMessageThreadId === messageThreadId}\n />\n );\n};\n\nMessageThreadPreview.propTypes = {\n activeMessageThreadId: PropTypes.number,\n messageThread: ImpactiveTypes.messageThread,\n setMessageThreadParams: PropTypes.func.isRequired,\n};\n\nexport default MessageThreadPreview;\n","import { List } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport MessageThreadLoading from './MessageThreadLoading';\nimport MessageThreadPreview from './MessageThreadPreview';\n\nconst InboxList = ({ messages, loading, setMessageThreadParams, messageThreadId }) => {\n return (\n <List\n itemLayout=\"vertical\"\n dataSource={messages}\n renderItem={message => (\n <MessageThreadPreview\n messageThread={message}\n activeMessageThreadId={messageThreadId}\n setMessageThreadParams={setMessageThreadParams}\n />\n )}\n >\n {loading && <MessageThreadLoading />}\n </List>\n );\n};\n\nInboxList.propTypes = {\n loading: PropTypes.bool.isRequired,\n messages: PropTypes.arrayOf(PropTypes.object).isRequired,\n messageThreadId: PropTypes.number,\n setMessageThreadParams: PropTypes.func.isRequired,\n};\n\nexport default InboxList;\n","import { Radio } from 'antd';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\n\nconst RadioGroup = styled(Radio.Group)`\n white-space: nowrap;\n`;\n\nconst values = {\n NO: 'no',\n UNKNOWN: 'unknown',\n YES: 'yes',\n};\n\nconst ThreeStateSwitch = ({ value, onChange, ...rest }) => {\n const { t } = useTranslation();\n const computedValue = value !== values.NO && value !== values.YES ? values.UNKNOWN : value;\n const handleChange = React.useCallback(e => onChange(e.target.value), [onChange]);\n return (\n <RadioGroup {...rest} value={computedValue} onChange={handleChange}>\n <Radio.Button value={values.NO}>{t('common.no')}</Radio.Button>\n <Radio.Button value={values.YES}>{t('common.yes')}</Radio.Button>\n <Radio.Button value={values.UNKNOWN}>{t('common.n_a')}</Radio.Button>\n </RadioGroup>\n );\n};\n\nThreeStateSwitch.propTypes = Radio.Group.propTypes;\nThreeStateSwitch.valueTypes = values;\n\nexport default ThreeStateSwitch;\n","import { Modal, Switch } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport Loading from 'web/components/common/Loading';\nimport { users } from 'web/services/api';\nimport theme from 'web/styles/theme';\nimport ThreeStateSwitch from './ThreeStateSwitch';\n\nconst ModalHeader = styled.div`\n font-size: 22px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n margin-bottom: 10px;\n`;\n\nconst SubHeading = styled.div`\n color: ${({ theme }) => theme.colors.black};\n font-size: 16px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n text-transform: capitalize;\n padding-bottom: 0.5rem;\n border-bottom: 1px solid ${({ theme }) => theme.colors.borderGray};\n margin-top: 2rem;\n`;\n\nconst StepTitle = styled.div`\n font-size: 23px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n margin: 0.5rem 0;\n`;\n\nconst StepName = styled.div`\n font-size: 16px;\n margin-top: 0.5rem;\n`;\n\nconst StepScript = styled.div`\n font-size: 14px;\n margin-top: 0.5rem;\n padding: 20px;\n border-radius: 5px;\n background: ${({ theme }) => theme.colors.messageBackground};\n cursor: pointer;\n`;\n\nconst List = styled.div``;\n\nconst ListItem = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid ${({ theme }) => theme.colors.borderGray};\n padding: 0.5rem 0;\n`;\n\nconst ListItemLabel = styled.label`\n font-family: ${({ theme }) => theme.fonts.semibold};\n text-transform: capitalize;\n padding-right: 1rem;\n`;\n\nconst RegistrationStatusTypes = {\n UNREGISTERED: 'Unregistered',\n WRONG_ADDRESS: 'Wrong Address',\n};\n\nconst RegStateTypes = {\n NEVER_RECEIVED_FORM: 'never_received_form',\n NOT_SENT: 'not_sent',\n RECEIVED_FORM: 'received_form',\n SENT_FORM: 'sent_form',\n UNABLE_REGISTER_ONLINE: 'unable_to_register_online',\n};\n\nconst VbmStateTypes = {\n NEVER_RECEIVED_FORM: 'never_received_form',\n NOT_SENT: 'not_sent',\n RECEIVED_FORM: 'received_form',\n SENT_FORM: 'sent_form',\n UNABLE_REQUEST_ONLINE: 'unable_to_request_online',\n};\n\nconst CheckRegistrationModal = ({\n campaignId,\n contactId,\n onSelectTemplate,\n onUpdateContact,\n onClose,\n}) => {\n const { t } = useTranslation();\n const [loading, setLoading] = React.useState(true);\n const [step, setStep] = React.useState(null);\n const contact = step && step.contact;\n\n React.useEffect(() => {\n setLoading(true);\n users.getRegistrationStep(campaignId, contactId).then(response => {\n setStep(response.data);\n setLoading(false);\n });\n }, [campaignId, contactId]);\n\n const handleClickScript = React.useCallback(() => {\n onSelectTemplate(step.script, step);\n }, [step, onSelectTemplate]);\n\n const handleClickFollowUp = React.useCallback(() => {\n onSelectTemplate(step.follow_up, step);\n }, [step, onSelectTemplate]);\n\n return (\n <Modal\n bodyStyle={{ background: theme.colors.background }}\n visible\n maskClosable\n onCancel={onClose}\n footer={null}\n >\n <ModalHeader>{t('inbox.check_registration.header')}</ModalHeader>\n {loading && <Loading centered />}\n {!loading && (\n <>\n <SubHeading>{t('inbox.check_registration.current_status')}:</SubHeading>\n <StepTitle>{step.title}</StepTitle>\n <div>{step.instructions}</div>\n <SubHeading>{t('inbox.check_registration.next_script')}:</SubHeading>\n <StepName>{step.name}</StepName>\n <StepScript onClick={handleClickScript}>{step.script}</StepScript>\n {step.follow_up && (\n <>\n <SubHeading>{t('inbox.check_registration.follow_up_script')}:</SubHeading>\n <StepScript onClick={handleClickFollowUp}>{step.follow_up}</StepScript>\n </>\n )}\n <SubHeading>{t('inbox.check_registration.voting_information')}:</SubHeading>\n <List>\n {contact.reg_confirmed && contact.vbm_confirmed && (\n <>\n <ListItem>\n <ListItemLabel>{t('inbox.check_registration.name')}</ListItemLabel>\n <span>\n {contact.voter_first_name\n ? `${contact.voter_first_name} ${contact.voter_last_name}`\n : t('inbox.check_registration.unknown')}\n </span>\n </ListItem>\n <ListItem>\n <ListItemLabel>{t('inbox.check_registration.location')}</ListItemLabel>\n <span>\n {contact.mail_city\n ? `${contact.mail_city}, ${contact.mail_state_abbrev}`\n : t('inbox.check_registration.unknown')}\n </span>\n </ListItem>\n <ListItem>\n <ListItemLabel>{t('inbox.check_registration.can_register_online')}</ListItemLabel>\n <Switch checked={contact.can_register_online} />\n </ListItem>\n <ListItem>\n <ListItemLabel>{t('inbox.check_registration.can_vote_by_mail')}</ListItemLabel>\n <Switch checked={contact.can_vbm} />\n </ListItem>\n </>\n )}\n <ListItem>\n <ListItemLabel>{t('inbox.check_registration.registration_confirmed')}</ListItemLabel>\n <Switch checked={contact.reg_confirmed} />\n </ListItem>\n <ListItem>\n <ListItemLabel>{t('inbox.check_registration.address_confirmed')}</ListItemLabel>\n <Switch checked={contact.vbm_confirmed} />\n </ListItem>\n <ListItem>\n <ListItemLabel>{t('inbox.check_registration.correct_address')}</ListItemLabel>\n <Switch\n checked={\n contact.vbm_confirmed &&\n contact.registration_status !== RegistrationStatusTypes.WRONG_ADDRESS\n }\n />\n </ListItem>\n </List>\n <SubHeading>{t('inbox.check_registration.voting_questions')}:</SubHeading>\n <List>\n {(contact.registration_status === RegistrationStatusTypes.UNREGISTERED ||\n contact.registration_status === RegistrationStatusTypes.WRONG_ADDRESS) &&\n contact.reg_confirmed &&\n contact.can_register_online &&\n (contact.reg_state === RegStateTypes.NOT_SENT ||\n contact.reg_state === RegStateTypes.UNABLE_REGISTER_ONLINE) && (\n <ListItem>\n <ListItemLabel>\n {t('inbox.check_registration.were_able_to_register_online')}\n </ListItemLabel>\n <ThreeStateSwitch\n value={\n contact.reported_registered\n ? ThreeStateSwitch.valueTypes.YES\n : !contact.reported_registered &&\n contact.reg_state === RegStateTypes.UNABLE_REGISTER_ONLINE\n ? ThreeStateSwitch.valueTypes.NO\n : ThreeStateSwitch.valueTypes.UNKNOWN\n }\n onChange={value => {\n switch (value) {\n case ThreeStateSwitch.valueTypes.YES:\n return onUpdateContact({\n reg_state: RegStateTypes.NOT_SENT,\n reported_registered: true,\n });\n case ThreeStateSwitch.valueTypes.NO:\n return onUpdateContact({\n reg_state: RegStateTypes.UNABLE_REGISTER_ONLINE,\n reported_registered: false,\n });\n default:\n return onUpdateContact({\n reg_state: RegStateTypes.NOT_SENT,\n reported_registered: false,\n });\n }\n }}\n />\n </ListItem>\n )}\n {(contact.registration_status === RegistrationStatusTypes.UNREGISTERED ||\n contact.registration_status === RegistrationStatusTypes.WRONG_ADDRESS) &&\n contact.reg_confirmed &&\n (!contact.can_register_online ||\n contact.reg_state === RegStateTypes.UNABLE_REGISTER_ONLINE) &&\n step.is_sending_registration_forms && (\n <ListItem>\n <ListItemLabel>\n {t('inbox.check_registration.should_mail_registration_form')}\n </ListItemLabel>\n <ThreeStateSwitch\n value={contact.requested_registration_form}\n onChange={value => onUpdateContact({ requested_registration_form: value })}\n />\n </ListItem>\n )}\n {(contact.reg_state === RegStateTypes.SENT_FORM ||\n contact.reg_state === RegStateTypes.RECEIVED_FORM ||\n contact.reg_state === RegStateTypes.NEVER_RECEIVED_FORM) && (\n <ListItem>\n <ListItemLabel>\n {t('inbox.check_registration.registration_form_received')}\n </ListItemLabel>\n <ThreeStateSwitch\n value={\n contact.reg_state === RegStateTypes.SENT_FORM\n ? ThreeStateSwitch.valueTypes.UNKNOWN\n : contact.reg_state === RegStateTypes.RECEIVED_FORM\n ? ThreeStateSwitch.valueTypes.YES\n : ThreeStateSwitch.valueTypes.NO\n }\n onChange={value => {\n return onUpdateContact({\n reg_state:\n value === ThreeStateSwitch.valueTypes.YES\n ? RegStateTypes.RECEIVED_FORM\n : value === ThreeStateSwitch.valueTypes.NO\n ? RegStateTypes.NEVER_RECEIVED_FORM\n : RegStateTypes.SENT_FORM,\n });\n }}\n />\n </ListItem>\n )}\n {(contact.registration_status === RegistrationStatusTypes.UNREGISTERED ||\n contact.registration_status === RegistrationStatusTypes.WRONG_ADDRESS) &&\n contact.reg_confirmed &&\n ((!contact.can_register_online && !step.is_sending_registration_forms) ||\n contact.reg_state === RegStateTypes.UNABLE_REGISTER_ONLINE ||\n contact.requested_registration_form === 'no') &&\n (contact.reg_state === RegStateTypes.NOT_SENT ||\n contact.reg_state === RegStateTypes.UNABLE_REGISTER_ONLINE) && (\n <ListItem>\n <ListItemLabel>\n {t('inbox.check_registration.were_able_to_register_on_their_own')}\n </ListItemLabel>\n <ThreeStateSwitch\n value={\n contact.reported_registered\n ? ThreeStateSwitch.valueTypes.YES\n : !contact.reported_registered &&\n contact.reg_state === RegStateTypes.UNABLE_REGISTER_ONLINE\n ? ThreeStateSwitch.valueTypes.NO\n : ThreeStateSwitch.valueTypes.UNKNOWN\n }\n onChange={value => {\n switch (value) {\n case ThreeStateSwitch.valueTypes.YES:\n return onUpdateContact({\n reg_state: RegStateTypes.NOT_SENT,\n reported_registered: true,\n });\n case ThreeStateSwitch.valueTypes.NO:\n return onUpdateContact({\n reg_state: RegStateTypes.UNABLE_REGISTER_ONLINE,\n reported_registered: false,\n });\n default:\n return onUpdateContact({\n reg_state: RegStateTypes.NOT_SENT,\n reported_registered: false,\n });\n }\n }}\n />\n </ListItem>\n )}\n {contact.can_vbm &&\n contact.vbm_confirmed &&\n contact.can_vbm_online &&\n (contact.vbm_state === VbmStateTypes.NOT_SENT ||\n contact.vbm_state === VbmStateTypes.UNABLE_REQUEST_ONLINE) && (\n <ListItem>\n <ListItemLabel>\n {t('inbox.check_registration.were_able_to_request_absentee_ballot_online')}\n </ListItemLabel>\n <ThreeStateSwitch\n value={\n contact.reported_requested_vbm\n ? ThreeStateSwitch.valueTypes.YES\n : !contact.reported_requested_vbm &&\n contact.vbm_state === VbmStateTypes.UNABLE_REQUEST_ONLINE\n ? ThreeStateSwitch.valueTypes.NO\n : ThreeStateSwitch.valueTypes.UNKNOWN\n }\n onChange={value => {\n switch (value) {\n case ThreeStateSwitch.valueTypes.YES:\n return onUpdateContact({\n reported_requested_vbm: true,\n vbm_state: VbmStateTypes.NOT_SENT,\n });\n case ThreeStateSwitch.valueTypes.NO:\n return onUpdateContact({\n reported_requested_vbm: false,\n vbm_state: VbmStateTypes.UNABLE_REQUEST_ONLINE,\n });\n default:\n return onUpdateContact({\n reported_requested_vbm: false,\n vbm_state: VbmStateTypes.NOT_SENT,\n });\n }\n }}\n />\n </ListItem>\n )}\n {contact.vbm_confirmed &&\n contact.can_vbm &&\n (!contact.can_vbm_online ||\n contact.vbm_state === VbmStateTypes.UNABLE_REQUEST_ONLINE) &&\n step.is_sending_vbm_forms && (\n <ListItem>\n <ListItemLabel>\n {t('inbox.check_registration.should_mail_absentee_ballot_request_form')}\n </ListItemLabel>\n <ThreeStateSwitch\n value={contact.requested_absentee_form}\n onChange={value => onUpdateContact({ requested_absentee_form: value })}\n />\n </ListItem>\n )}\n {(contact.vbm_state === VbmStateTypes.SENT_FORM ||\n contact.vbm_state === VbmStateTypes.RECEIVED_FORM ||\n contact.vbm_state === VbmStateTypes.NEVER_RECEIVED_FORM ||\n contact.automatic_vbm) && (\n <ListItem>\n <ListItemLabel>\n {t('inbox.check_registration.absentee_ballot_request_form_received')}\n </ListItemLabel>\n <ThreeStateSwitch\n value={\n contact.vbm_state === VbmStateTypes.SENT_FORM\n ? ThreeStateSwitch.valueTypes.UNKNOWN\n : contact.vbm_state === VbmStateTypes.RECEIVED_FORM\n ? ThreeStateSwitch.valueTypes.YES\n : ThreeStateSwitch.valueTypes.NO\n }\n onChange={value => {\n return onUpdateContact({\n vbm_state:\n value === ThreeStateSwitch.valueTypes.YES\n ? VbmStateTypes.RECEIVED_FORM\n : value === ThreeStateSwitch.valueTypes.NO\n ? VbmStateTypes.NEVER_RECEIVED_FORM\n : VbmStateTypes.SENT_FORM,\n });\n }}\n />\n </ListItem>\n )}\n {contact.can_vbm &&\n contact.vbm_confirmed &&\n ((!contact.can_vbm_online && !step.is_sending_vbm_forms) ||\n contact.vbm_state === VbmStateTypes.UNABLE_REQUEST_ONLINE ||\n contact.requested_absentee_form === 'no') &&\n (contact.vbm_state === VbmStateTypes.NOT_SENT ||\n contact.vbm_state === VbmStateTypes.UNABLE_REQUEST_ONLINE) && (\n <ListItem>\n <ListItemLabel>\n {t(\n 'inbox.check_registration.were_able_to_request_absentee_ballot_on_their_own',\n )}\n </ListItemLabel>\n <ThreeStateSwitch\n value={\n contact.reported_requested_vbm\n ? ThreeStateSwitch.valueTypes.YES\n : !contact.reported_requested_vbm &&\n contact.vbm_state === VbmStateTypes.UNABLE_REQUEST_ONLINE\n ? ThreeStateSwitch.valueTypes.NO\n : ThreeStateSwitch.valueTypes.UNKNOWN\n }\n onChange={value => {\n switch (value) {\n case ThreeStateSwitch.valueTypes.YES:\n return onUpdateContact({\n reported_requested_vbm: true,\n vbm_state: VbmStateTypes.NOT_SENT,\n });\n case ThreeStateSwitch.valueTypes.NO:\n return onUpdateContact({\n reported_requested_vbm: false,\n vbm_state: VbmStateTypes.UNABLE_REQUEST_ONLINE,\n });\n default:\n return onUpdateContact({\n reported_requested_vbm: false,\n vbm_state: VbmStateTypes.NOT_SENT,\n });\n }\n }}\n />\n </ListItem>\n )}\n {contact.reported_registered && contact.reported_requested_vbm && (\n <ListItem>\n <ListItemLabel>{t('inbox.check_registration.should_send_reminder')}</ListItemLabel>\n <ThreeStateSwitch\n value={contact.requested_reminders}\n onChange={value => onUpdateContact({ requested_reminders: value })}\n />\n </ListItem>\n )}\n </List>\n </>\n )}\n </Modal>\n );\n};\n\nCheckRegistrationModal.propTypes = {\n campaignId: PropTypes.number.isRequired,\n contactId: PropTypes.number.isRequired,\n onClose: PropTypes.func.isRequired,\n onSelectTemplate: PropTypes.func.isRequired,\n onUpdateContact: PropTypes.func.isRequired,\n};\n\nexport default CheckRegistrationModal;\n","import React from 'react';\n\nconst SentIcon = () => (\n <svg width=\"18\" height=\"16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M1.79541 10.3066L5.35266 13.0216L11.0647 6.49359L9.93516 5.50659L5.14716 10.9786L2.70441 9.11409L1.79541 10.3066ZM16.3147 6.49359L15.1852 5.50659L10.4084 10.9658L9.84366 10.5143L8.90616 11.6858L10.5914 13.0343L16.3147 6.49359Z\"\n fill=\"#23293E\"\n />\n </svg>\n);\n\nconst ErrorIcon = () => (\n <svg width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M9.09199 3.13795C8.98348 2.9439 8.82518 2.78231 8.6334 2.66983C8.44163 2.55734 8.22332 2.49805 8.00099 2.49805C7.77867 2.49805 7.56036 2.55734 7.36859 2.66983C7.17681 2.78231 7.01851 2.9439 6.90999 3.13795L2.15699 11.6399C2.05067 11.8301 1.9959 12.0448 1.99811 12.2626C2.00032 12.4805 2.05943 12.694 2.16959 12.882C2.27974 13.0699 2.43711 13.2258 2.6261 13.3342C2.81509 13.4426 3.02912 13.4998 3.24699 13.4999H12.751C12.9689 13.4999 13.1831 13.4429 13.3722 13.3346C13.5614 13.2263 13.7189 13.0704 13.8291 12.8824C13.9394 12.6944 13.9986 12.4808 14.0009 12.2629C14.0031 12.0449 13.9484 11.8302 13.842 11.6399L9.09199 3.13795ZM8.74999 10.7499C8.74999 10.9489 8.67097 11.1396 8.53032 11.2803C8.38967 11.4209 8.1989 11.4999 7.99999 11.4999C7.80108 11.4999 7.61031 11.4209 7.46966 11.2803C7.32901 11.1396 7.24999 10.9489 7.24999 10.7499C7.24999 10.551 7.32901 10.3603 7.46966 10.2196C7.61031 10.079 7.80108 9.99995 7.99999 9.99995C8.1989 9.99995 8.38967 10.079 8.53032 10.2196C8.67097 10.3603 8.74999 10.551 8.74999 10.7499ZM7.49999 8.49995V5.99995C7.49999 5.86734 7.55267 5.74016 7.64644 5.6464C7.74021 5.55263 7.86738 5.49995 7.99999 5.49995C8.1326 5.49995 8.25978 5.55263 8.35355 5.6464C8.44731 5.74016 8.49999 5.86734 8.49999 5.99995V8.49995C8.49999 8.63256 8.44731 8.75974 8.35355 8.8535C8.25978 8.94727 8.1326 8.99995 7.99999 8.99995C7.86738 8.99995 7.74021 8.94727 7.64644 8.8535C7.55267 8.75974 7.49999 8.63256 7.49999 8.49995Z\"\n fill=\"#F5222D\"\n />\n </svg>\n);\n\nexport { SentIcon, ErrorIcon };\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ErrorIcon, SentIcon } from './Icons';\nimport { StarFilled } from '@ant-design/icons';\nimport styled from 'styled-components';\nimport theme from '../../styles/theme';\n\nimport { useTranslation } from 'react-i18next';\nimport { convertLinks, localizedDateTime } from '../../utils/string';\nimport { Tooltip } from 'antd';\n\nconst Wrapper = styled.div`\n width: 100%;\n height: auto;\n display: flex;\n`;\n\nconst Spacer = styled.div`\n flex: 1;\n`;\n\nconst MessageContainer = styled.div`\n flex: 3;\n order: ${props => (props.from_me ? 1 : 0)};\n padding-bottom: 1rem;\n`;\n\nconst Body = styled.div`\n background-color: ${props =>\n props.from_me\n ? props.$isError\n ? 'rgba(245, 34, 45, 0.32)'\n : theme.colors.lightCyan\n : theme.colors.whiteSmokeLighter};\n\n color: ${theme.colors.darksLateGray};\n border-radius: 1rem;\n padding: 1rem;\n font-family: ${theme.fonts.regular};\n white-space: pre-line;\n`;\n\nconst Timestamp = styled.div`\n color: ${theme.colors.dimGray2};\n font-size: 0.8rem;\n font-family: ${theme.fonts.regular};\n`;\n\nconst FlexWrapper = styled.div`\n display: flex;\n justify-content: ${props => (props.from_me ? 'flex-end' : 'flex-start')};\n margin-top: 8px;\n`;\n\nconst DeliveryStatus = styled.div`\n display: flex;\n align-items: center;\n font-size: 0.8rem;\n color: #f5222d;\n gap: 4px;\n margin-right: 8px;\n`;\n\nconst TeamLeader = styled.div`\n color: ${theme.colors.coral};\n display: flex;\n align-items: center;\n margin-left: 1.5rem;\n > span {\n margin-left: 5px;\n }\n`;\n\nconst SenderData = styled.div`\n display: flex;\n align-items: center;\n color: ${theme.colors.black};\n font-weight: 700;\n margin-bottom: 1rem;\n`;\n\nconst Message = React.forwardRef(({ from_me, body, created_at, sender, type, aasm_state }, ref) => {\n const { t } = useTranslation();\n const dateText = created_at === 'Sending...' ? t('inbox.sending') : localizedDateTime(created_at);\n\n const isError = aasm_state === 'error';\n const showErrorData = isError && from_me;\n\n return (\n <Wrapper ref={ref}>\n <MessageContainer from_me={from_me} tabIndex={0}>\n {!from_me && type === 'TeamMessage' && (\n <SenderData>\n <span>{sender.fullname}</span>\n {sender.is_team_admin && (\n <TeamLeader>\n Team Leader <StarFilled />\n </TeamLeader>\n )}\n </SenderData>\n )}\n <Tooltip title={showErrorData && t('inbox.delivery_error_message')}>\n <Body\n $isError={showErrorData}\n from_me={from_me}\n dangerouslySetInnerHTML={{\n __html: convertLinks(body),\n }}\n />\n <FlexWrapper from_me={from_me}>\n {from_me && (\n <DeliveryStatus>\n {showErrorData ? (\n <>\n <ErrorIcon /> {t('inbox.not_delivered')}\n </>\n ) : (\n <SentIcon />\n )}\n </DeliveryStatus>\n )}\n\n <Timestamp>{dateText}</Timestamp>\n </FlexWrapper>\n </Tooltip>\n </MessageContainer>\n <Spacer />\n </Wrapper>\n );\n});\n\nMessage.propTypes = {\n aasm_state: PropTypes.string,\n body: PropTypes.string.isRequired,\n created_at: PropTypes.string.isRequired,\n from_me: PropTypes.bool.isRequired,\n sender: PropTypes.shape({\n fullname: PropTypes.string,\n is_team_admin: PropTypes.bool,\n }),\n type: PropTypes.string,\n};\n\nexport default Message;\n","import styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport React, { useRef, useState } from 'react';\nimport { EnterOutlined, LeftOutlined, RightOutlined } from '@ant-design/icons';\nimport { Carousel } from 'antd';\nimport { truncate } from '../../../utils/string';\nimport theme from '@web/styles/theme';\n\nconst Slide = styled.div`\n display: grid !important;\n grid-template-columns: 1fr 1fr 1fr;\n height: 100%;\n padding-top: 30px;\n\n @media (max-width: 1300px) {\n grid-template-columns: 1fr 1fr;\n }\n`;\n\nconst Content = styled.div`\n position: relative;\n background: ${theme.colors.white};\n box-shadow: 0px 1px 14px rgba(0, 0, 0, 0.06);\n margin: 8px;\n flex: 1;\n padding: 20px 20px 20px 30px;\n cursor: pointer;\n transition: all 0.2s ease-in-out;\n &:hover {\n box-shadow: 2px 2px 20px rgb(0 16 72 / 8%);\n transform: translate3d(-6px, -5px, 0px);\n }\n`;\n\nconst Title = styled.div`\n font-family: ${theme.fonts.semibold};\n color: ${theme.colors.black};\n font-size: 1.125rem;\n`;\n\nconst Description = styled.div`\n font-family: ${theme.fonts.regular};\n overflow-wrap: anywhere;\n color: ${theme.fonts.dimGray2};\n font-size: 1rem;\n margin-top: 5px;\n`;\n\nconst CarouselWrapper = styled.div`\n width: 92%;\n overflow: ${({ visible }) => (visible ? 'unset' : 'hidden')};\n`;\n\nconst StyledCarousel = styled(Carousel)`\n .slick-dots-bottom {\n bottom: -20px;\n > li {\n width: 5px;\n button {\n background: #c4c4c4;\n opacity: 0.4;\n width: 5px;\n height: 5px;\n border-radius: 50%;\n }\n }\n .slick-active {\n width: 5px;\n button {\n background: #c4c4c4;\n width: 5px;\n height: 5px;\n border-radius: 50%;\n }\n }\n }\n`;\n\nconst ArrowWrapper = styled.div`\n &&& {\n height: 100%;\n z-index: 99;\n width: 5%;\n ${({ rightArrow }) => (!rightArrow ? `left: -4.5%` : `right: -4.5%`)};\n top: 10px;\n display: flex !important;\n align-items: center;\n justify-content: center;\n &:hover {\n background: rgba(64, 169, 255, 0.1);\n }\n > span {\n svg {\n width: 16px;\n height: 20px;\n fill: ${theme.colors.cyan};\n }\n }\n }\n`;\n\nconst StyledEnterOutlined = styled(EnterOutlined)`\n position: absolute;\n left: 10px;\n top: 25px;\n transform: scaleX(-1);\n svg {\n fill: ${theme.colors.cyan};\n stroke: ${theme.colors.cyan};\n stroke-width: 30;\n }\n`;\nconst ScriptsCarousel = ({ visible, slideData, setScriptMessage }) => {\n const carouselRef = useRef(null);\n const [dragging, setDragging] = useState(false);\n\n const renderArrow = isRight => {\n return (\n <ArrowWrapper\n rightArrow={isRight}\n onClick={() => {\n if (carouselRef.current) {\n if (isRight) {\n carouselRef.current.next();\n } else {\n carouselRef.current.prev();\n }\n }\n }}\n >\n {isRight ? <RightOutlined /> : <LeftOutlined />}\n </ArrowWrapper>\n );\n };\n\n const beforeChange = () => {\n setDragging(true);\n // We need this because the afterChange function is sometimes not called.\n setTimeout(() => {\n setDragging(false);\n }, 800);\n };\n\n return (\n <CarouselWrapper visible={visible}>\n <StyledCarousel\n dots\n beforeChange={beforeChange}\n nextArrow={renderArrow(true)}\n prevArrow={renderArrow(false)}\n infinite\n draggable\n arrows\n swipeToSlide\n slidesToScroll={1}\n ref={carouselRef}\n >\n {slideData.scripts.map((i, index) => (\n <Slide key={index}>\n {i.map((script, scriptIndex) => (\n <Content\n key={scriptIndex}\n onClick={() => (!dragging ? setScriptMessage(script) : null)}\n >\n <StyledEnterOutlined />\n <Title>{script.name}</Title>\n <Description>{truncate(script.message, 82)}</Description>\n </Content>\n ))}\n </Slide>\n ))}\n </StyledCarousel>\n </CarouselWrapper>\n );\n};\n\nScriptsCarousel.propTypes = {\n setScriptMessage: PropTypes.func.isRequired,\n slideData: PropTypes.object.isRequired,\n visible: PropTypes.bool.isRequired,\n};\n\nexport default ScriptsCarousel;\n","import styled from 'styled-components';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { DownOutlined, InfoCircleOutlined, UpOutlined } from '@ant-design/icons';\n\nimport { Tooltip } from 'antd';\n\nimport theme from '@web/styles/theme';\nimport { useMedia } from '../../../hooks';\n\nconst ScriptsSectionHeaderWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n padding: 0 30px 0;\n width: 100%;\n`;\n\nconst HideButton = styled.div`\n display: flex;\n align-items: center;\n font-family: ${({ visible }) => (visible ? `${theme.fonts.regular}` : `${theme.fonts.semibold}`)};\n color: ${({ visible }) => (visible ? `${theme.colors.black}` : `${theme.colors.coral}`)};\n font-size: 1rem;\n cursor: pointer;\n > span {\n margin-left: 8px;\n > svg {\n width: 13px;\n }\n }\n\n &:hover {\n color: ${theme.colors.dodgerBlue};\n }\n`;\n\nconst Info = styled.div`\n display: flex;\n align-items: center;\n font-family: ${theme.fonts.regular};\n color: ${theme.colors.darkGray};\n font-size: 1rem;\n > span {\n margin-right: 8px;\n }\n`;\n\nconst ScriptsSectionHeader = ({ textDisabled, visible, setVisible }) => {\n const showInfoTooltip = useMedia('(max-width: 1000px)');\n const infoText = textDisabled\n ? 'Note you cannot edit this response'\n : \"Note you'll be able to edit before sending\";\n\n return (\n <ScriptsSectionHeaderWrapper>\n <HideButton\n visible={visible}\n onClick={() => {\n setVisible(false);\n }}\n >\n {visible ? (\n <>\n Hide follow-up scripts <DownOutlined />\n </>\n ) : (\n <>\n Show follow-up scripts <UpOutlined />\n </>\n )}\n </HideButton>\n <Info>\n {showInfoTooltip ? (\n <Tooltip placement=\"right\" trigger=\"hover\" title={infoText}>\n <InfoCircleOutlined />\n </Tooltip>\n ) : (\n <>\n <InfoCircleOutlined /> {infoText}\n </>\n )}\n </Info>\n </ScriptsSectionHeaderWrapper>\n );\n};\n\nScriptsSectionHeader.propTypes = {\n setVisible: PropTypes.func.isRequired,\n textDisabled: PropTypes.bool.isRequired,\n visible: PropTypes.bool.isRequired,\n};\n\nexport default ScriptsSectionHeader;\n","import styled from 'styled-components';\nimport React, { useState, useRef } from 'react';\n\nimport { array, bool, func } from 'prop-types';\n\nimport useElementsPerSlide from '../hooks/useElementsPerSlide';\nimport ScriptsCarousel from './Carousel';\nimport ScriptsSectionHeader from './ScriptSectionHeader';\n\nconst ScriptsSectionWrapper = styled.div`\n padding-top: 14px;\n padding-bottom: 20px;\n display: flex;\n flex-direction: column;\n align-items: center;\n height: ${({ visible }) => (visible ? 'unset' : '140px')};\n cursor: ${({ visible }) => (visible ? 'unset' : 'pointer')};\n position: relative;\n ${({ visible }) =>\n !visible &&\n `:after {\n background: linear-gradient(180deg, #ffffff 32.29%, rgba(255, 255, 255, 0) 100%);\n content: '';\n transform: matrix(1, 0, 0, -1, 0, 0);\n position: absolute;\n bottom: 0;\n width: 100%;\n height: 58px;\n }`}\n`;\n\nconst ScriptsSection = ({ templates, onSelectTemplate, textDisabled, onOpenScripts }) => {\n const [visible, setVisible] = useState(true);\n\n const ref = useRef();\n\n // TODO: Slider is no longer being used - remove `useElementsPerSlide` and all the logic behind it\n const slideData = useElementsPerSlide(templates, ref);\n\n const setScriptMessage = script => {\n onSelectTemplate(script.id, script.message);\n };\n\n const openScripts = () => {\n if (visible) return;\n setVisible(true);\n // Needed to add setTimeout to allow time for the scripting section to be displayed\n setTimeout(() => {\n onOpenScripts();\n }, 100);\n };\n\n return (\n <ScriptsSectionWrapper ref={ref} visible={visible} onClick={openScripts}>\n <ScriptsSectionHeader visible={visible} setVisible={setVisible} textDisabled={textDisabled} />\n <ScriptsCarousel\n setScriptMessage={setScriptMessage}\n slideData={slideData}\n visible={visible}\n />\n </ScriptsSectionWrapper>\n );\n};\n\nScriptsSection.propTypes = {\n onOpenScripts: func,\n onSelectTemplate: func,\n templates: array,\n textDisabled: bool,\n};\n\nexport default ScriptsSection;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Switch } from 'antd';\n\nimport styled from 'styled-components';\n\nconst Tagging = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst SectionTitle = styled.div`\n font-family: ${({ theme, regular }) => (regular ? theme.fonts.regular : theme.fonts.semibold)};\n color: ${({ theme }) => theme.colors.black};\n font-size: 1rem;\n`;\n\nconst Divider = styled.div`\n height: 1px;\n background: rgba(196, 196, 196, 0.3);\n margin: 16px 0px;\n`;\n\nconst SwitchesWrapper = styled.div``;\n\nconst TaggingsList = ({ taggings, initialUserReport, setUserReportTaggings }) => {\n const onSwitchToggle = (selectedSlug, selectionChange) => {\n const updatedTags = taggings.map((tag, index) => {\n if (tag.slug === selectedSlug) {\n // If the user hasn't submitted this tag before, the initial value obtained from backed is null,\n // so we also need to set it to null if this field was changed to true but returned to false before submitting\n // because we need to disable the button\n if (initialUserReport.taggings[index].value === null && selectionChange === false) {\n return {\n ...tag,\n value: null,\n };\n }\n return {\n ...tag,\n value: selectionChange,\n };\n }\n\n // otherwise leave unchanged\n return tag;\n });\n setUserReportTaggings(updatedTags);\n };\n\n return (\n <>\n <SwitchesWrapper className=\"py-3\">\n {taggings.map(({ name, value, slug, prompt }) => (\n <Tagging className=\"py-2\" key={slug}>\n <Switch slug={slug} checked={value} onChange={(to, e) => onSwitchToggle(slug, to, e)} />\n <SectionTitle regular={!value} className=\"pl-3\">\n {prompt || name}\n </SectionTitle>\n </Tagging>\n ))}\n </SwitchesWrapper>\n <Divider />\n </>\n );\n};\n\nTaggingsList.propTypes = {\n initialUserReport: PropTypes.any.isRequired,\n setUserReportTaggings: PropTypes.func.isRequired,\n taggings: PropTypes.array.isRequired,\n};\n\nexport default TaggingsList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Radio } from 'antd';\nimport TextArea from 'antd/lib/input/TextArea';\n\nimport styled from 'styled-components';\n\nconst SectionTitle = styled.div`\n font-family: ${({ theme, regular }) => (regular ? theme.fonts.regular : theme.fonts.semibold)};\n color: ${({ theme }) => theme.colors.black};\n font-size: 1rem;\n`;\n\nconst Customization = styled.div`\nborderGray`;\n\nconst TextFieldContainer = styled.div``;\n\nconst SelectionFieldRadio = styled.div``;\n\nconst RadioStyled = styled(Radio)`\n &&& {\n margin: 10px 5px 10px 0;\n font-family: ${({ theme, regular }) => (regular ? theme.fonts.regular : theme.fonts.semibold)};\n color: ${({ theme }) => theme.colors.black};\n font-size: 1rem;\n }\n`;\n\nconst StyledRadioGroup = styled(Radio.Group)`\n &&& {\n display: flex;\n flex-direction: column;\n }\n`;\n\nconst CustomFieldsList = ({ customizations, setUserReportCustomizations }) => {\n const onCustomFieldTextUpdate = (selectedSlug, e) => {\n const updatedFields = customizations.map(field => {\n if (field.slug !== selectedSlug) {\n return field;\n }\n return {\n ...field,\n // When the report is empty, the field's default value is null,\n // so if the user has filled in something and then cleared the field,\n // we'll need the same value as the initial to disable the button\n value: e.target.value !== '' ? e.target.value : null,\n };\n });\n setUserReportCustomizations(updatedFields);\n };\n\n const onCustomFieldSelectUpdate = (selectedSlug, val) => {\n const updatedFields = customizations.map(field => {\n if (field.slug !== selectedSlug) {\n return field;\n }\n return {\n ...field,\n value: val,\n };\n });\n setUserReportCustomizations(updatedFields);\n };\n\n const handleRadioClick = (field, value) => {\n if (field.value === value) {\n onCustomFieldSelectUpdate(field.slug, null);\n }\n };\n return customizations.map((field, i) => {\n if (\n (field.type === 'SelectionField' && field.available_values.length > 0) ||\n field.type === 'TextField'\n ) {\n return (\n <Customization className=\"py-3\" key={field.slug}>\n {field.type === 'TextField' && (\n <TextFieldContainer>\n <SectionTitle className=\"pb-2\">{field.prompt || field.name}</SectionTitle>\n\n <TextArea\n name={field.slug}\n value={field.value}\n autoSize={{ minRows: 4 }}\n onChange={e => onCustomFieldTextUpdate(field.slug, e)}\n />\n </TextFieldContainer>\n )}\n\n {field.type === 'SelectionField' && (\n <SelectionFieldRadio>\n <SectionTitle className=\"pb-2\">{field.prompt || field.name}</SectionTitle>\n <StyledRadioGroup\n onChange={e => onCustomFieldSelectUpdate(field.slug, e.target.value)}\n value={field.value}\n >\n {field.available_values.map((val, fieldIndex) => (\n <RadioStyled\n onClick={() => {\n handleRadioClick(field, val);\n }}\n key={fieldIndex}\n regular={field.value !== val}\n value={val}\n >\n {val}\n </RadioStyled>\n ))}\n </StyledRadioGroup>\n </SelectionFieldRadio>\n )}\n </Customization>\n );\n }\n return null;\n });\n};\n\nCustomFieldsList.propTypes = {\n customizations: PropTypes.array.isRequired,\n setUserReportCustomizations: PropTypes.func.isRequired,\n};\n\nexport default CustomFieldsList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\n\nimport { Select } from 'antd';\nimport TaggingsList from './TaggingsList';\nimport CustomFieldsList from './CustomFieldsList';\nimport ImpactiveButton from '../../ImpactiveButton';\n\nimport theme from '@web/styles/theme';\n\nconst FillReportContainer = styled.div`\n padding-bottom: 30px;\n display: flex;\n flex-direction: column;\n`;\n\nconst TitleWrapper = styled.div`\n margin-right: 30px;\n position: sticky;\n top: 0;\n width: 100%;\n background: ${({ theme }) => theme.colors.white};\n z-index: 2;\n`;\n\nconst Title = styled.div`\n font-family: ${({ theme }) => theme.fonts.semibold};\n color: ${({ theme }) => theme.colors.black};\n font-size: 1.5rem;\n margin-top: 16px;\n`;\n\nconst Divider = styled.div`\n height: 1px;\n background: rgba(196, 196, 196, 0.3);\n margin: 16px 0px;\n`;\n\nconst ScrollableContainer = styled.div`\n padding-right: 30px;\n`;\n\nconst ButtonsWrapper = styled.div`\n margin-top: 32px;\n padding: 0 30px 30px 0;\n position: sticky;\n bottom: 0;\n width: 100%;\n background: ${({ theme }) => theme.colors.white};\n`;\n\nconst SubmitButton = styled(ImpactiveButton)`\n width: 100%;\n`;\n\nconst ArchiveWrapper = styled.div`\n margin: 20px 0;\n\n > div {\n display: flex;\n align-items: center;\n font-family: ${({ theme, regular }) => (regular ? theme.fonts.regular : theme.fonts.semibold)};\n color: ${({ theme }) => theme.colors.black};\n font-size: 1rem;\n font-weight: 400;\n }\n`;\nconst StyledSelect = styled(Select)`\n &&& {\n > div {\n color: ${({ theme }) => theme.colors.dimGray};\n font-size: 14px;\n font-weight: 500;\n height: 42px;\n &:hover {\n border-color: unset;\n }\n\n min-width: 50px;\n display: flex;\n flex-direction: row-reverse;\n border: none;\n\n > span {\n margin-top: 2px;\n display: flex;\n align-items: center;\n }\n }\n }\n`;\n\nconst StyledLink = styled.a`\n font-family: ${theme.fonts.regular};\n color: ${theme.colors.black};\n font-size: 1rem;\n cursor: pointer;\n &:hover {\n color: ${theme.colors.dodgerBlue};\n text-decoration: none;\n }\n`;\n\nconst FillReportContent = ({\n archived,\n automaticallyArchiveThread,\n customizations,\n disableSubmitButton,\n setAutomaticallyArchiveThread,\n setUserReport,\n taggings,\n loading,\n submitReport,\n initialUserReport,\n userActivityId,\n reportActivityId,\n reportActivityName,\n isNewReportActivity,\n}) => {\n const { t } = useTranslation();\n\n const activityUrl = isNewReportActivity\n ? `${window.location.origin}/add_report`\n : `${window.location.origin}/activities/${userActivityId}`;\n return (\n <FillReportContainer>\n <TitleWrapper>\n <Title>Fill report</Title>\n {userActivityId && userActivityId !== reportActivityId && (\n <StyledLink target=\"blank\" href={activityUrl}>\n {reportActivityName}\n </StyledLink>\n )}\n <Divider />\n </TitleWrapper>\n <ScrollableContainer>\n {taggings && taggings.length !== 0 && (\n <TaggingsList\n taggings={taggings}\n initialUserReport={initialUserReport}\n setUserReportTaggings={updatedTaggings =>\n setUserReport({ customizations, taggings: updatedTaggings })\n }\n />\n )}\n\n <CustomFieldsList\n customizations={customizations}\n setUserReportCustomizations={updatedCustomFields => {\n setUserReport({ customizations: updatedCustomFields, taggings });\n }}\n />\n </ScrollableContainer>\n <ButtonsWrapper>\n <Divider />\n {!archived && (\n <ArchiveWrapper>\n <div>\n {t('inbox.archive_conversation_question')}\n\n <StyledSelect\n value={automaticallyArchiveThread}\n onChange={setAutomaticallyArchiveThread}\n >\n <Select.Option value>ON</Select.Option>\n <Select.Option value={false}>OFF</Select.Option>\n </StyledSelect>\n </div>\n <span>{t('inbox.archive_conversation')}</span>\n </ArchiveWrapper>\n )}\n\n <SubmitButton\n block={false}\n children={t('common.send_to_campaign')}\n disabled={disableSubmitButton}\n key=\"submit\"\n size=\"medium\"\n loading={loading}\n onClick={submitReport}\n />\n </ButtonsWrapper>\n </FillReportContainer>\n );\n};\n\nFillReportContent.propTypes = {\n archived: PropTypes.bool,\n automaticallyArchiveThread: PropTypes.bool,\n customizations: PropTypes.array.isRequired,\n disableSubmitButton: PropTypes.bool.isRequired,\n initialUserReport: PropTypes.object.isRequired,\n isNewReportActivity: PropTypes.bool.isRequired,\n loading: PropTypes.bool.isRequired,\n reportActivityId: PropTypes.number,\n reportActivityName: PropTypes.string,\n setAutomaticallyArchiveThread: PropTypes.func,\n setUserReport: PropTypes.func.isRequired,\n submitReport: PropTypes.func.isRequired,\n taggings: PropTypes.array.isRequired,\n userActivityId: PropTypes.number,\n};\n\nexport default FillReportContent;\n","import { message } from 'antd';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState, useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport isEqual from 'lodash/isEqual';\n\nimport { userReportApi } from '../../../services/api';\nimport FillReportContent from './FillReportContent';\nimport {\n formatCustomizationResponse,\n formatTaggingsResponse,\n formatUserReportBody,\n} from '../utils';\n\nimport { AuthContext } from '../../../utils/context';\nimport useLocalStorage from '@admin/hooks/useLocalStorage';\n\nconst FillReport = ({\n campaignId,\n contactId,\n activityId,\n archiveThread,\n archived,\n userActivityId,\n reportActivityId,\n}) => {\n const { t } = useTranslation();\n const { user } = useContext(AuthContext);\n\n const [reportId, setReportId] = useState({});\n const [userReport, setUserReport] = useState({});\n const [initialUserReport, setInitialUserReport] = useState({});\n const [loading, setLoading] = useState(false);\n\n // Get whether to archive messages after submitting a report\n // We need to use a unique key to avoid when a user uses 2 or more accounts on the same device.\n const [automaticallyArchiveThread, setAutomaticallyArchiveThread] = useLocalStorage(\n `${user.id}-archive-thread`,\n false,\n );\n\n const { taggings = [], customizations = [], activityName = '' } = userReport;\n\n const setReportData = React.useCallback(data => {\n const {\n data: { id: reportId, taggings, customizations, activity_name },\n } = data;\n setReportId(reportId);\n\n const strippedTaggings = formatTaggingsResponse(taggings);\n\n const strippedCustomizations = formatCustomizationResponse(customizations);\n\n setUserReport({\n activityName: activity_name,\n customizations: strippedCustomizations,\n taggings: strippedTaggings,\n });\n setInitialUserReport({\n activityName: activity_name,\n customizations: strippedCustomizations,\n taggings: strippedTaggings,\n });\n }, []);\n\n // Load latest outreach report when conditions are met.\n useEffect(() => {\n if (!campaignId || !contactId || !activityId) return;\n\n setLoading(true);\n\n userReportApi\n .findOrCreateReport({\n activity_id: activityId,\n campaign_id: campaignId,\n contact_id: contactId,\n })\n .then(userReportDataResponse => {\n if (!userReportDataResponse || userReportDataResponse.status !== 200) {\n message.error(t('errors.fetch_outreach_report'));\n return;\n }\n\n setReportData(userReportDataResponse);\n setLoading(false);\n })\n .catch(err => {\n message.error(t('errors.fetch_report'));\n setLoading(false);\n return;\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [campaignId, contactId, activityId]);\n\n const submitReport = async () => {\n setLoading(true);\n\n const userReportBody = formatUserReportBody(reportId, customizations, taggings);\n\n await userReportApi\n .update({ campaign_id: campaignId, report_id: reportId }, userReportBody)\n .then(data => {\n message.success(t('common.submitted_successfully'));\n\n if (automaticallyArchiveThread && !archived) {\n archiveThread();\n }\n\n setReportData(data);\n setLoading(false);\n })\n .catch(err => {\n message.error(t('errors.submit_outreach_report'));\n setLoading(false);\n });\n };\n\n if (taggings.length === 0 && customizations.length === 0) {\n return null;\n }\n\n return (\n <FillReportContent\n userActivityId={userActivityId}\n archived={archived}\n customizations={customizations}\n taggings={taggings}\n disableSubmitButton={isEqual(initialUserReport, userReport)}\n loading={loading}\n setUserReport={setUserReport}\n submitReport={submitReport}\n initialUserReport={initialUserReport}\n setAutomaticallyArchiveThread={setAutomaticallyArchiveThread}\n automaticallyArchiveThread={automaticallyArchiveThread}\n reportActivityId={reportActivityId}\n isNewReportActivity={activityId === reportActivityId}\n reportActivityName={activityName}\n />\n );\n};\n\nFillReport.propTypes = {\n activityId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n archived: PropTypes.bool,\n archiveThread: PropTypes.func,\n campaignId: PropTypes.number,\n contactId: PropTypes.number,\n firstName: PropTypes.string,\n lastName: PropTypes.string,\n reportActivityId: PropTypes.number,\n userActivityId: PropTypes.number,\n};\n\nFillReport.defaultProps = {\n campaignId: null,\n firstName: null,\n lastName: null,\n};\n\nexport default FillReport;\n","import PropTypes from 'prop-types';\nimport { DoubleRightOutlined } from '@ant-design/icons';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { getFullName } from './utils';\nimport FillReport from './FillReport';\nimport { media } from '../../styles/theme';\n\nimport { useMedia } from '../../hooks';\nconst Container = styled.div`\n padding: 0 0 0 30px;\n max-height: 100vh;\n min-width: 300px;\n max-width: 460px;\n font-family: ${({ theme }) => theme.fonts.regular};\n font-color: ${({ theme }) => theme.colors.black};\n overflow-y: auto;\n\n @media screen and (max-width: 1400px) {\n position: fixed;\n box-shadow: 0px 1px 14px rgb(0 0 0 / 6%);\n background: white;\n z-index: 999;\n height: 100%;\n top: 0;\n right: 0;\n width: 85%;\n }\n ${media.s} {\n z-index: 999;\n width: 100%;\n }\n`;\n\nconst InfoSection = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 30px 30px 30px 0;\n flex-wrap: wrap-reverse;\n`;\n\nconst ContactName = styled.div`\n font-size: 2rem;\n font-family: ${({ theme }) => theme.fonts.semibold};\n color: ${({ theme }) => theme.colors.black};\n`;\n\nconst NameAndInfo = styled.div`\n margin-right: 10px;\n button {\n margin-top: 10px;\n }\n`;\n\nconst InfoButtonContainer = styled.div`\n background: ${({ showRightSideBar }) => (showRightSideBar ? 'rgba(233, 234, 236)' : 'none')};\n cursor: pointer;\n height: 36px;\n width: 36px;\n display: flex;\n align-items: center;\n border-radius: 4px;\n justify-content: center;\n margin-top: 15px;\n &:hover {\n background: rgba(233, 234, 236);\n }\n`;\n\nconst Divider = styled.div`\n height: 1px;\n background: rgba(196, 196, 196, 0.3);\n margin: 16px 0px;\n`;\nconst ReportingSidebar = ({\n archived,\n archiveThread,\n contact,\n canRegister,\n onRegisterClick,\n campaignId,\n activityId,\n showRightSideBar,\n toggleSidebar,\n userActivityId,\n reportActivityId,\n}) => {\n const {\n first_name: contactFirstName,\n last_name: contactLastName,\n id: contactId,\n contact_email: contactEmail,\n } = contact;\n\n const showToggleButton = useMedia('(max-width: 1400px)');\n\n return (\n <Container>\n {showToggleButton && (\n <InfoButtonContainer showRightSideBar onClick={() => toggleSidebar(false)}>\n <DoubleRightOutlined />\n </InfoButtonContainer>\n )}\n <InfoSection>\n <NameAndInfo>\n <ContactName>{getFullName(contactFirstName, contactLastName)}</ContactName>\n <div>{contactEmail}</div>\n </NameAndInfo>\n </InfoSection>\n <Divider />\n {activityId && (\n <FillReport\n archived={archived}\n contactId={contactId}\n campaignId={campaignId}\n activityId={activityId}\n archiveThread={archiveThread}\n userActivityId={userActivityId}\n reportActivityId={reportActivityId}\n />\n )}\n </Container>\n );\n};\n\nReportingSidebar.propTypes = {\n activityId: PropTypes.number,\n archived: PropTypes.bool,\n archiveThread: PropTypes.func,\n campaignId: PropTypes.number,\n canRegister: PropTypes.bool,\n contact: PropTypes.object,\n onRegisterClick: PropTypes.func.isRequired,\n reportActivityId: PropTypes.number,\n showRightSideBar: PropTypes.bool,\n toggleSidebar: PropTypes.func,\n userActivityId: PropTypes.number,\n};\n\nReportingSidebar.defaultProps = {\n contact: {},\n};\nexport default ReportingSidebar;\n","import { ArrowUpOutlined } from '@ant-design/icons';\nimport { Input, Tooltip } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport { media } from '../../styles/theme';\nimport ImpactiveButton from '../ImpactiveButton';\n\nconst { TextArea } = Input;\n\nconst Inputs = styled.div`\n box-sizing: border-box;\n padding: 15px 15px 15px;\n ${media.ns} {\n padding-bottom: 1em;\n }\n`;\n\nconst TextAndSendButton = styled.div`\n display: flex;\n justify-content: space-between;\n martin: 15px;\n`;\n\nconst TextAreaWrapper = styled.div`\n margin-right: 10px;\n flex: 1;\n`;\n\nconst ButtonWrapper = styled.div`\n min-width: 135px;\n display: flex;\n flex-direction: column-reverse;\n`;\n\nconst StyledTextArea = styled(TextArea)`\n &&& {\n min-height: 42px !important;\n font-size: 1rem;\n border-radius: 4px;\n }\n`;\n\nconst MessageInput = React.forwardRef(\n (\n {\n setMessageContent,\n pressSend,\n sendDisabled,\n constructMailToLink,\n textDisabled,\n messageContent,\n isEmailResponseType,\n profaneWordDetected,\n },\n ref,\n ) => {\n const { t } = useTranslation();\n return (\n <Inputs ref={ref}>\n <TextAndSendButton>\n <TextAreaWrapper>\n <StyledTextArea\n autoSize={{ maxRows: 6 }}\n onChange={e => setMessageContent(e.target.value)}\n disabled={textDisabled}\n value={messageContent}\n aria-label=\"Enter message\"\n />\n </TextAreaWrapper>\n <Tooltip title={profaneWordDetected && t('inbox.thread.profane_words')}>\n <ButtonWrapper>\n {isEmailResponseType ? (\n // eslint-disable-next-line\n <a\n role=\"button\"\n target=\"emailTab\"\n href={sendDisabled ? null : constructMailToLink()}\n onClick={sendDisabled ? undefined : pressSend}\n tabIndex={0}\n aria-label=\"Send\"\n aria-invalid={sendDisabled}\n >\n <ImpactiveButton\n icon={<ArrowUpOutlined />}\n type=\"primary\"\n size=\"medium\"\n block\n disabled={sendDisabled}\n children={t('common.send')}\n />\n </a>\n ) : (\n <ImpactiveButton\n icon={<ArrowUpOutlined />}\n type=\"primary\"\n size=\"medium\"\n block\n disabled={sendDisabled}\n onClick={pressSend}\n children={t('common.send')}\n aria-label=\"Send\"\n />\n )}\n </ButtonWrapper>\n </Tooltip>\n </TextAndSendButton>\n </Inputs>\n );\n },\n);\n\nMessageInput.propTypes = {\n constructMailToLink: PropTypes.func,\n isEmailResponseType: PropTypes.bool,\n messageContent: PropTypes.string,\n pressSend: PropTypes.func,\n profaneWordDetected: PropTypes.bool,\n sendDisabled: PropTypes.bool,\n setMessageContent: PropTypes.func,\n textDisabled: PropTypes.bool,\n};\n\nexport default MessageInput;\n","import { DownOutlined } from '@ant-design/icons';\nimport { Dropdown, Menu, Tooltip } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport ImpactiveButton from '@web/components/ImpactiveButton';\n\nconst ButtonWithDropdown = ({\n buttonText,\n icon,\n onClick,\n menuItems,\n buttonType,\n placement,\n styles,\n trigger,\n disabled,\n ...rest\n}) => {\n const menu = (\n <Menu>\n {menuItems.map((menuItem, index) => {\n return (\n <Menu.Item\n icon={menuItem.icon}\n disabled={menuItem.disabled}\n key={index}\n onClick={menuItem.onClick}\n >\n {menuItem.tooltipData ? (\n <Tooltip placement=\"top\" trigger={'hover'} title={menuItem.tooltipData}>\n {menuItem.text}\n </Tooltip>\n ) : (\n menuItem.text\n )}\n </Menu.Item>\n );\n })}\n </Menu>\n );\n\n return (\n <Dropdown disabled={disabled} overlay={menu} trigger={trigger || 'hover'} placement={placement}>\n <ImpactiveButton\n type={buttonType ?? 'primary'}\n style={styles}\n icon={icon || <DownOutlined />}\n noIconMargin={!buttonText}\n onClick={onClick}\n {...rest}\n >\n {buttonText}\n </ImpactiveButton>\n </Dropdown>\n );\n};\n\nButtonWithDropdown.propTypes = {\n buttonText: PropTypes.string,\n buttonType: PropTypes.string,\n disabled: PropTypes.bool,\n icon: PropTypes.element,\n menuItems: PropTypes.arrayOf(\n PropTypes.shape({ icon: PropTypes.element, onClick: PropTypes.func, text: PropTypes.string }),\n ),\n onClick: PropTypes.func,\n placement: PropTypes.oneOf(['bottomLeft', 'bottom', 'bottomRight', 'topLeft', 'top', 'topRight']),\n styles: PropTypes.object,\n trigger: PropTypes.string,\n};\n\nexport default ButtonWithDropdown;\n","import React from 'react';\n\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport ImpactiveModal from '@web/components/common/ImpactiveModal';\nimport ImpactiveButton from '@web/components/ImpactiveButton';\n\nconst StyledH1 = styled.h1`\n font-size: 2rem;\n margin-bottom: 12px;\n`;\n\nconst Flex = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n margin-top: 4rem;\n gap: 1rem;\n`;\n\nconst ImpactiveConfirmModal = ({ onClose, onSubmit, text, title, confirmText, cancelText }) => {\n return (\n <ImpactiveModal visible onCancel={onClose} width={600}>\n <StyledH1>{title}</StyledH1>\n <p>{text}</p>\n <Flex>\n <ImpactiveButton secondary onClick={onClose}>\n {cancelText || 'No'}\n </ImpactiveButton>\n <ImpactiveButton onClick={onSubmit}>{confirmText || 'Yes'}</ImpactiveButton>\n </Flex>\n </ImpactiveModal>\n );\n};\n\nImpactiveConfirmModal.propTypes = {\n cancelText: PropTypes.string,\n confirmText: PropTypes.string,\n onClose: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n text: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n title: PropTypes.oneOfType([PropTypes.element, PropTypes.string]).isRequired,\n};\n\nImpactiveConfirmModal.defaultProps = {\n cancelText: null,\n confirmText: null,\n text: null,\n};\n\nexport default ImpactiveConfirmModal;\n","import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { useMedia, useModal } from '@web/hooks';\n\nimport { SyncOutlined, DoubleLeftOutlined, DoubleRightOutlined } from '@ant-design/icons';\nimport { Button } from 'antd';\nimport {\n LeftOutlined,\n EllipsisOutlined,\n UserSwitchOutlined,\n FolderOutlined,\n} from '@ant-design/icons';\nimport { getFullName, getThreadTypeName } from './utils';\nimport ImpactiveButton from '@web/components/ImpactiveButton';\nimport theme, { sizes } from '@web/styles/theme';\nimport ButtonWithDropdown from '@web/components/ButtonWithDropdown';\nimport { useTranslation } from 'react-i18next';\nimport ImpactiveConfirmModal from '@web/components/common/ImpactiveConfirmModal';\n\nconst MessageHeader = styled.div`\n border-bottom: 1px solid ${theme.colors.borderGray};\n display: flex;\n flex-direction: row;\n box-shadow: -20px 16px 16px 0px rgb(255 255 255 / 93%);\n z-index: 1;\n justify-content: space-between;\n align-items: center;\n padding: 0.8rem 1rem;\n`;\n\nconst AvatarContainer = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst AvatarName = styled.div`\n font-size: 1.125rem;\n margin-left: 10px;\n font-family: ${({ theme }) => theme.fonts.bold};\n color: ${({ theme }) => theme.colors.black};\n white-space: nowrap;\n @media (max-width: 415px) {\n white-space: normal;\n }\n`;\n\nconst HeaderButtons = styled.div`\n display: flex;\n align-items: center;\n gap: 10px;\n`;\n\nconst InfoButtonContainer = styled.div`\n background: ${({ showRightSideBar }) => (showRightSideBar ? '#F8F8F8' : 'none')};\n cursor: pointer;\n height: 36px;\n width: 36px;\n display: flex;\n align-items: center;\n border-radius: 4px;\n justify-content: center;\n &:hover {\n background: rgba(233, 234, 236);\n }\n`;\n\nconst StyledButton = styled(Button)`\n &&& {\n border: none;\n background: none;\n display: flex;\n align-items: center;\n color: ${({ theme, $archive }) => ($archive ? theme.colors.blue : theme.colors.black)};\n padding-right: 0;\n // #23293E\n margin-right: ${({ $archive }) => ($archive ? '10px' : 0)};\n font-size: 0.875rem;\n font-weight: 600;\n font-style: italic;\n &:hover {\n color: ${({ theme, $archive }) => ($archive ? theme.colors.cyan : theme.colors.black)};\n }\n }\n`;\n\nconst ThreadType = styled.span`\n font-size: 1.125rem;\n font-family: ${({ theme }) => theme.fonts.regular};\n color: ${({ theme }) => theme.colors.blackL32};\n margin-right: 15px;\n`;\n\nconst MessageThreadHeader = ({\n firstName,\n lastName,\n refreshing,\n handleRefresh,\n reassignToAdmin,\n reassignAllToAdmin,\n showRightSideBar,\n toggleSidebar,\n setMessageThreadParams,\n showFillReportButton,\n archiveThread,\n archived,\n teamName,\n kind,\n currentActivityId,\n currentThreadId,\n}) => {\n const small = useMedia(`(max-width: ${sizes.lg})`);\n const { t } = useTranslation();\n\n const reassignableActivityTypes = ['peer_to_peer'];\n const isArchived = !!archived;\n const showReassignDropdown = reassignableActivityTypes.includes(kind);\n\n const [openReassignModal, closeReassignModal] = useModal(ImpactiveConfirmModal);\n\n const reassignmentMenuItems = [\n {\n icon: <UserSwitchOutlined />,\n onClick: () =>\n openReassignModal({\n cancelText: 'No, Cancel',\n confirmText: 'Yes, Reassign',\n onClose: closeReassignModal,\n onSubmit: () => {\n reassignToAdmin(currentThreadId);\n closeReassignModal();\n },\n text: (\n <>\n Are you sure you want to <strong>reassign</strong> this conversation{' '}\n <strong>to an admin?</strong> It will disappear from your inbox.\n </>\n ),\n title: 'Reassign Conversation to Admin',\n }),\n text: t('button.reassign'),\n },\n {\n icon: <UserSwitchOutlined />,\n onClick: () =>\n openReassignModal({\n cancelText: 'No, Cancel',\n confirmText: 'Yes, Reassign',\n onClose: closeReassignModal,\n onSubmit: () => {\n reassignAllToAdmin(currentActivityId);\n closeReassignModal();\n },\n text: (\n <>\n Are you sure you want to <strong>reassign</strong> all conversations from this\n activity <strong>to an admin?</strong> They will disappear from your inbox.\n </>\n ),\n title: 'Reassign All Conversations to Admin',\n }),\n text: t('button.reassign_all'),\n },\n {\n icon: <FolderOutlined />,\n onClick: () => archiveThread(),\n text: 'Archive message',\n },\n ];\n\n return (\n <MessageHeader>\n <AvatarContainer>\n {small && (\n <StyledButton type=\"link\" onClick={() => setMessageThreadParams(null, null, null, null)}>\n <LeftOutlined />\n </StyledButton>\n )}\n\n <AvatarName>\n {teamName || getFullName(firstName, lastName)} •\n <ThreadType> {getThreadTypeName(kind, t)}</ThreadType>\n </AvatarName>\n {showFillReportButton && (\n <ImpactiveButton\n block\n size=\"medium\"\n children={t('inbox.thread.outreach_report')}\n onClick={() => toggleSidebar(!showRightSideBar)}\n />\n )}\n <Button\n style={{ marginLeft: showFillReportButton ? 15 : 0 }}\n type=\"link\"\n icon={<SyncOutlined />}\n disabled={refreshing}\n onClick={handleRefresh}\n aria-label=\"Refresh thread\"\n />\n </AvatarContainer>\n <HeaderButtons>\n {!isArchived && !showReassignDropdown && (\n <StyledButton $archive disabled={refreshing} onClick={archiveThread}>\n {t('inbox.archive_message')}\n </StyledButton>\n )}\n {!isArchived && showReassignDropdown && (\n <ButtonWithDropdown\n secondary\n placement=\"bottomRight\"\n size=\"large-square\"\n icon={<EllipsisOutlined />}\n menuItems={reassignmentMenuItems}\n />\n )}\n {!teamName && (\n <InfoButtonContainer\n showRightSideBar={showRightSideBar}\n onClick={() => toggleSidebar(!showRightSideBar)}\n >\n {showRightSideBar ? <DoubleRightOutlined /> : <DoubleLeftOutlined />}\n </InfoButtonContainer>\n )}\n </HeaderButtons>\n </MessageHeader>\n );\n};\n\nMessageThreadHeader.propTypes = {\n archived: PropTypes.bool,\n archiveThread: PropTypes.func.isRequired,\n currentActivityId: PropTypes.number.isRequired,\n currentThreadId: PropTypes.number.isRequired,\n firstName: PropTypes.string,\n handleRefresh: PropTypes.func,\n handleRefreshAll: PropTypes.func,\n kind: PropTypes.string,\n lastName: PropTypes.string,\n reassignAllToAdmin: PropTypes.func,\n reassignToAdmin: PropTypes.func,\n refreshing: PropTypes.bool,\n setMessageThreadParams: PropTypes.func,\n showFillReportButton: PropTypes.bool,\n showRightSideBar: PropTypes.bool,\n teamName: PropTypes.string,\n toggleSidebar: PropTypes.func,\n};\n\nexport default MessageThreadHeader;\n","import { message, Modal } from 'antd';\nimport get from 'lodash/get';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport React, {\n Fragment,\n useContext,\n useEffect,\n useRef,\n useState,\n useCallback,\n useMemo,\n} from 'react';\nimport { users as usersAPI } from '@web/services/api';\nimport { ArrowDownOutlined } from '@ant-design/icons';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport { useModal } from 'web/hooks';\nimport { getLocalizedOnboardingData } from 'web/utils/other';\nimport { useDocumentTitle } from '../../hooks/useDocumentTitle';\nimport { usePaginatedApi } from '../../hooks/usePaginatedApi';\nimport { track } from '../../services/analytics';\nimport { campaigns, users } from '../../services/api';\nimport { media } from '../../styles/theme';\nimport { AuthContext } from '../../utils/context';\nimport { interpolateMessage } from '../../utils/other';\nimport Container from '../Container';\nimport CheckRegistrationModal from './CheckRegistrationModal';\nimport Message from './Message';\nimport ScriptsSection from './ScriptsSection';\nimport ReportingSidebar from './ReportingSidebar';\nimport { checkForProfanity, getPersonFromMessageThread } from './utils';\nimport MessageInput from './MessageInput';\nimport { useMedia } from '../../hooks';\nimport MessageThreadHeader from './MessageThreadHeader';\nimport MessageThreadLoading from './MessageThreadLoading';\n\nconst { confirm } = Modal;\n\nconst CenteredContainer = styled(Container)`\n overflow: hidden;\n padding: 0;\n display: flex;\n flex-direction: column;\n height: 100vh;\n position: relative;\n border-right: 1px solid ${({ theme }) => theme.colors.borderGray};\n`;\n\nconst Messages = styled.div`\n flex: 1;\n padding: 1.8rem 1.8rem 1rem;\n`;\n\nconst ThreadAndRightPanel = styled.div`\n height: 100vh;\n display: flex;\n flex-direction: column;\n ${media.ns} {\n display: grid;\n grid-template-columns: ${({ showRightSideBar }) => (showRightSideBar ? '68% 32%' : '100%')};\n @media (max-width: 1400px) {\n grid-template-columns: 100%;\n }\n }\n height: 100%;\n`;\n\nconst ScrollSection = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n`;\n\nconst BottomArrowContainer = styled.div`\n position: absolute;\n bottom: 25px;\n margin-left: auto;\n margin-right: auto;\n left: 0;\n right: 0;\n width: 50px;\n height: 50px;\n background: ${({ theme }) => theme.colors.white};\n box-shadow: 0px 1px 14px rgba(0, 0, 0, 0.06);\n cursor: pointer;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #54dde8;\n`;\n\nconst resolveEndpointByType = type => {\n if (\n type === 'peer_to_peer' ||\n type === 'friend_to_friend' ||\n type === 'broadcast' ||\n type === 'team' ||\n type === 'canvass'\n )\n return {\n send: users.updateMessageSent,\n };\n if (type === 'user_to_user')\n return {\n send: users.updateUserMessageSent,\n };\n\n throw new Error('Unknown message type provided.');\n};\n\n/* Helper function that determines type of the response message based on thread type, contactable user type and latest message type.\n * For User to User messages always respond with InternalMessage\n - TeamMessage: that if the thread type is team,\n * For User to Contact messages\n * if the contact belongs to a User they are a \"Friend\" and we use EmailMessage\n * if the contact does not belong to a User they are a Campaign's Contact & last message received was:\n - InviteMessage: response should be of EmailMessage type\n - SmsMessage: response should be of EmailMessage type\n - CanvasserMessage: respond with TwilioMessage if we have a number for them, otherwise the button should be disabled.\n - TwilioMessage, BroadcastMessage: copy the type of last message received\n */\nexport const resolveResponseMessageType = (threadType, contactableType, messageList) => {\n const isFriend = contactableType === 'User';\n\n // user to user case\n if (threadType === 'user_to_user') {\n return 'InternalMessage';\n }\n\n // user to team chat\n if (threadType === 'team') {\n return 'TeamMessage';\n }\n\n // user to friend contact\n if (isFriend) {\n return 'EmailMessage';\n }\n\n // user to contact, which is not a friend. Return type is based on the rules above\n const [latestMessage] = messageList;\n const latestMessageType = (latestMessage && latestMessage.type) || null;\n\n if (latestMessageType === 'InviteMessage' || latestMessageType === 'SmsMessage') {\n return 'EmailMessage';\n }\n\n if (latestMessageType === 'CanvasserMessage') {\n return 'TwilioMessage';\n }\n\n // TwillioMessage, BroadcastMessage should stay the same\n if (latestMessageType === 'TwilioMessage' || latestMessageType === 'BroadcastMessage') {\n return latestMessageType;\n }\n\n // Unhandled type\n return null;\n};\n\n// There are several different types of threads:\n// 1. One will be between users and other users. When messaging these people we will create a direct message between users. (InternalMessage)\n// 2. One will be between users and their phone contacts. When messaging these people, we will jump out to personal emails on web. (SmsMessage)\n// 3. One will be between users and contacts that belong to campaigns. When messaging these people, we will use the standard TwilioMessage endpoint. (TwilioMessage, CanvasserMessage). For CanvasserMessage depending on if we have phone we can send a TwilioMessage, if not we can open email.\n// Message types are: SmsMessage, TwilioMessage, InviteMessage, CavasserMessage, InternalMessage\n\nconst MessageThread = ({\n handleThreadsRefresh,\n messageThreadId,\n setMessageThreadParams,\n refetchThreads,\n}) => {\n const { t } = useTranslation();\n const { user } = useContext(AuthContext);\n\n const [refreshMessageThreads, setRefreshMessageThreads] = useState(false);\n\n // right sidebar\n const [showRightSideBar, setShowRightSideBar] = useState();\n\n // New message state\n const [messageContent, setMessageContent] = useState('');\n const [scriptId, setScriptId] = useState(null);\n const [profaneWordDetected, setProfaneWordDetected] = useState(false);\n\n // Messages list, pagination and infiniteScroll\n const scrollRef = useRef({});\n\n const overflowSidebar = useMedia(`(min-width: 1400px)`);\n\n const lastMessageRef = useRef(null);\n const messageInputRef = useRef(null);\n const lastScriptRef = useRef(null);\n const [showScrollToBottom, setShowScrollToBottom] = useState(false);\n\n const [\n // eslint-disable-next-line\n _hasMore,\n // eslint-disable-next-line\n _initialLoading,\n messages,\n loadMore,\n loading,\n // eslint-disable-next-line\n _setMessages,\n resetPagination,\n metadata,\n // eslint-disable-next-line\n _cancelPendingRequests,\n error,\n ] = usePaginatedApi(users.getUserMessageThread, messageThreadId, null, true);\n\n const {\n archived,\n campaign_id: campaignId,\n activity_id: activityId,\n user_activity_id: userActivityId,\n opt_in_form_id: optInFormId,\n kind: threadType,\n p2p_free_response_disabled,\n is_canvasser_action,\n has_canvasser_permissions,\n } = metadata;\n\n const person = useMemo(\n () => (user && getPersonFromMessageThread(metadata, user.id)) || {},\n [metadata, user],\n );\n const contactable_type = (metadata.contact && metadata.contact.contactable_type) || '';\n const contact_has_phone = (metadata.contact && metadata.contact.hasPhone) || false;\n const contactId = metadata?.contact?.id || person?.id || metadata?.team?.id;\n\n const { email = '', name: threadName = '', first_name = '', last_name = '' } = person;\n\n // Error handling\n useEffect(() => {\n if (error?.status === 403)\n message.error(\n `Your account does not have access to this feature. Upgrade to a Professional or Enterprise plan to access this feature.`,\n );\n }, [error]);\n\n // Check if need to show report sidebar by default\n useEffect(() => {\n setShowRightSideBar(threadType !== 'team' && overflowSidebar);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [overflowSidebar, threadType]);\n\n // If another messagethread is clicked on in the Inbox, change the message thread\n useEffect(() => {\n resetPagination();\n setShouldRefetchMessages(true);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [messageThreadId]);\n\n const [shouldrefetchMessages, setShouldRefetchMessages] = useState(true);\n\n // Callback effect when messages need to be (re)fetched\n useEffect(() => {\n if (shouldrefetchMessages) {\n loadMore();\n setShouldRefetchMessages(false);\n }\n }, [loadMore, shouldrefetchMessages]);\n\n const handleSelectTemplate = (id, message) => {\n setScriptId(id);\n handleInput(interpolateMessage(message, person));\n\n // Scroll the message text into view once the template is selected\n // NOTE: smooth scrolling is flaky here and stops mid scroll sometimes so we use the default option.\n setTimeout(() => messageInputRef?.current?.scrollIntoView(), 0);\n };\n\n // Update document title when threadName changes\n const title = threadName ? `${t('inbox.messages')} · ${threadName}` : t('inbox.messages');\n useDocumentTitle(title);\n\n // Outreach report and response scripts are loaded inside modals, we only keep toggles here\n const [refreshing, setRefreshing] = useState(false);\n\n const [templates, setTemplates] = useState(null);\n\n // Callback effect to scroll to the latest message when initial messages page loads\n useEffect(() => {\n // don't scroll anything into view until we loaded templates first (it'd just scroll away)\n if (!templates) return;\n\n const isInitialMessagesLoad = metadata?.current_page === 1;\n if (isInitialMessagesLoad) {\n // Needed to add setTimeout to allow time for the templates section to be displayed first\n //\n // NOTE: we cannot use { behavior: 'smooth' } here because pagination will try to load more\n // items before the animation triggers\n setTimeout(() => lastMessageRef?.current?.scrollIntoView(), 0);\n }\n }, [metadata, templates]);\n\n useEffect(() => {\n // Load templates\n if (campaignId && activityId) {\n campaigns\n .getActivityScripts(campaignId, activityId, {\n contact_id: contactId,\n script_type: 'response',\n })\n .then(({ data: { data } }) => {\n setTemplates(\n data.map(({ id, name, script }) => ({\n id,\n message: script,\n name,\n })),\n );\n });\n } else if (optInFormId) {\n campaigns.getScripts(messageThreadId).then(({ data: { data } }) => {\n const cleanTemplates = data\n .map(({ script_type: scriptType, name, script, id }) => {\n if (scriptType === 'response')\n return {\n id,\n message: script,\n name,\n };\n\n return null;\n })\n .filter(i => i); // clear nulls\n\n setTemplates(cleanTemplates);\n });\n } else {\n setTemplates([]);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [campaignId, activityId]);\n\n const [campaign, setCampaign] = useState(null);\n useEffect(() => {\n // Load campaign\n if (campaignId) {\n campaigns.getCampaign({ id: campaignId }).then(({ data: { data } }) => {\n const localizedData = getLocalizedOnboardingData(data);\n\n setCampaign(localizedData);\n });\n } else {\n setCampaign(null);\n }\n }, [campaignId]);\n\n const [openCheckRegistrationModal, closeCheckRegistrationModal] =\n useModal(CheckRegistrationModal);\n\n // Custom scroll handler for loading more messages beacuse InfiniteScroll is broken for reverse lists\n const handleMessagesScroll = ({ target: { scrollTop } }) => {\n if (scrollTop < 5 && !loading) {\n loadMore();\n }\n\n // a quick hack to move scroll a tiny bit down - this enables fast scroll\n // otherwise users needed to scroll down and back up again to load more messages\n if (scrollTop === 0) scrollRef.current.scrollTo(0, 1);\n\n // Determine whether to show \"scroll to bottom\" button based on current div scroll location\n setShowScrollToBottom(\n scrollRef.current.scrollHeight - scrollRef.current.scrollTop >\n scrollRef.current.clientHeight + 300,\n );\n };\n\n const handleRefresh = () => {\n setRefreshing(true);\n resetPagination();\n setShouldRefetchMessages(true);\n setRefreshing(false);\n };\n\n const isEmailResponseType =\n resolveResponseMessageType(threadType, contactable_type, messages) === 'EmailMessage';\n const isUndefinedResponseType =\n resolveResponseMessageType(threadType, contactable_type, messages) === null;\n\n // User is not contactable if we don't have sufficient contact info for resolved response type\n const isNotContactable = isUndefinedResponseType || (isEmailResponseType && !email);\n\n const constructMailToLink = () => {\n const subject = encodeURI(t('common.new_outvote_message'));\n const trimmedMessage = messageContent.trim();\n const encodedBody = encodeURI(trimmedMessage);\n\n // don't create partial mailto links\n if (!email || !trimmedMessage) return '';\n\n return `mailto:${email}?subject=${subject}&body=${encodedBody}`;\n };\n\n // This block is to determine if the contact was transfered between campaign members\n // and allows us to preserve conversation history and the original number that was\n // used.\n function getStickyNumber() {\n let stickyNumber = null;\n if (messages && messages.length) {\n const lastMessage = messages[messages.length - 1];\n\n const { from_me, sender_raw, receiver_raw } = lastMessage;\n stickyNumber = from_me ? sender_raw : receiver_raw;\n }\n return stickyNumber;\n }\n\n const trackSendByType = type => {\n if (type === 'BroadcastMessage') {\n track('SEND_BROADCAST_MESSAGE');\n }\n if (type === 'TwilioMessage') {\n track('SEND_TWILIO_MESSAGE');\n }\n if (type === 'InternalMessage') {\n track('SEND_INTERNAL_MESSAGE');\n }\n if (type === 'EmailMessage') {\n track('SEND_EMAIL_MESSAGE');\n }\n };\n\n const showConfirmModal = async () => {\n const answerPromise = new Promise((resolve, reject) => {\n confirm({\n cancelText: t('common.no'),\n okText: t('common.yes'),\n onCancel() {\n resolve('no');\n },\n onOk() {\n resolve('yes');\n },\n title: t('inbox.did_you_send'),\n });\n });\n\n // Pass answer promise down to caller for awaiting\n return answerPromise;\n };\n\n const pressSend = async () => {\n // For email responses we need to wait for user to confirm that the email was sent before continuing\n if (isEmailResponseType) {\n const answer = await showConfirmModal();\n if (answer === 'no') return;\n }\n\n const trimmedMessage = messageContent.trim();\n if (trimmedMessage.length === 0) return;\n\n const type = resolveResponseMessageType(threadType, contactable_type, messages);\n\n const useStickyNumber = type === 'TwilioMessage';\n\n const messageInner = {\n activity_script_id: scriptId,\n body: trimmedMessage,\n campaign_id: campaignId,\n lock: false,\n rate_limit: false,\n sender_raw: useStickyNumber ? getStickyNumber() : undefined,\n type,\n visible: true,\n };\n\n if (activityId) {\n messageInner.activity_id = activityId;\n }\n\n if (userActivityId) {\n messageInner.user_activity_id = userActivityId;\n }\n\n if (type === 'TeamMessage') {\n messageInner.message_thread_id = messageThreadId;\n }\n\n if (optInFormId && !activityId) {\n messageInner.script_id = scriptId;\n messageInner.opt_in_form_id = optInFormId;\n delete messageInner.activity_script_id;\n }\n\n resolveEndpointByType(threadType)\n .send(contactId, {\n message: messageInner,\n })\n .then(() => {\n setScriptId(null);\n trackSendByType(type);\n message.success(t('inbox.message_sent'));\n\n const isTextMessage = type !== 'EmailMessage';\n if (isTextMessage) {\n refetchThreads();\n // It's a text message thread, so add to msgs for smoother UX\n addSentFromMe(trimmedMessage);\n return;\n }\n\n setMessageContent('');\n resetPagination();\n setShouldRefetchMessages(true);\n })\n .catch(e => {\n if (e?.response?.data?.message) message.error(t('inbox.message_error'));\n else message.error(t('inbox.sending_failed'));\n });\n };\n\n const addSentFromMe = msg => {\n const timeNow = moment().toISOString();\n const newMsg = {\n aasm_state: 'sent',\n body: msg,\n created_at: timeNow,\n from_me: true,\n read_at: null,\n received_at: null,\n receiver_raw: '',\n sender_raw: '',\n sent_at: timeNow,\n type: 'TwilioMessage',\n };\n\n messages.unshift(newMsg);\n setMessageContent(''); // Force UI re-render\n lastMessageRef.current.scrollIntoView();\n };\n\n const updateContact = useCallback(\n payload => {\n users.updateContact(contactId, payload).then(() => {\n resetPagination();\n setShouldRefetchMessages(true);\n });\n },\n [contactId, resetPagination],\n );\n\n const toggleSidebar = useCallback(value => {\n setShowRightSideBar(value);\n }, []);\n\n const handleRegisterClick = useCallback(() => {\n if (campaign && person) {\n openCheckRegistrationModal({\n campaignId: campaign.id,\n contactId: person.id,\n onSelectTemplate: (template, step) => {\n if (step?.slug === 'send_vbm_automatic_info') {\n updateContact({ requested_absentee_form: 'sent_automatic_info' });\n }\n setScriptId(step.id);\n setMessageContent(interpolateMessage(template, person, user, campaign));\n closeCheckRegistrationModal();\n },\n onUpdateContact: payload => {\n updateContact(payload);\n closeCheckRegistrationModal();\n },\n });\n }\n }, [\n openCheckRegistrationModal,\n closeCheckRegistrationModal,\n user,\n campaign,\n person,\n updateContact,\n ]);\n\n // Thread archiving\n const archiveThread = async () => {\n usersAPI.archiveThread(messageThreadId, true).then(data => {\n if (data.data) {\n setRefreshMessageThreads(true);\n message.success(t('inbox.thread_archived'));\n } else {\n message.error(t('inbox.archiving_failed'));\n }\n });\n };\n\n const reassignToAdmin = messageThreadId => {\n usersAPI\n .reassignToAdmin({ messageThreadId })\n .then(() => setRefreshMessageThreads(true))\n .catch(err =>\n message.error(err?.response?.data?.message || t('common.something_went_wrong')),\n );\n };\n\n const reassignAllToAdmin = userActivityId => {\n usersAPI\n .reassignAllToAdmin({ userActivityId })\n .then(() => setRefreshMessageThreads(true))\n .catch(err =>\n message.error(err?.response?.data?.message || t('common.something_went_wrong')),\n );\n };\n\n // Close thread and refresh messages\n useEffect(() => {\n if (refreshMessageThreads) {\n handleThreadsRefresh();\n setMessageThreadParams(null);\n setRefreshMessageThreads(false);\n }\n }, [handleThreadsRefresh, refreshMessageThreads, setMessageThreadParams]);\n\n const handleInput = useCallback(\n message => {\n const withProfanity = checkForProfanity(message, threadType);\n setMessageContent(message);\n setProfaneWordDetected(withProfanity);\n },\n [threadType],\n );\n\n const disabled_canvasser_twilio =\n is_canvasser_action &&\n (!has_canvasser_permissions || contactable_type === 'User' || !contact_has_phone);\n\n const sendDisabled =\n isNotContactable ||\n !messageContent.trim().length ||\n disabled_canvasser_twilio ||\n profaneWordDetected;\n\n const textDisabled =\n (threadType === 'peer_to_peer' && p2p_free_response_disabled) || disabled_canvasser_twilio;\n\n const showFillReportButton =\n !showRightSideBar && threadType !== 'user_to_user' && activityId !== null;\n\n return (\n <Fragment>\n <ThreadAndRightPanel showRightSideBar={showRightSideBar}>\n <CenteredContainer>\n <MessageThreadHeader\n archived={archived}\n teamName={metadata?.team?.name}\n firstName={first_name}\n lastName={last_name}\n refreshing={refreshing}\n setMessageThreadParams={setMessageThreadParams}\n toggleSidebar={toggleSidebar}\n showRightSideBar={showRightSideBar}\n handleRefresh={handleRefresh}\n reassignToAdmin={reassignToAdmin}\n reassignAllToAdmin={reassignAllToAdmin}\n showFillReportButton={showFillReportButton}\n archiveThread={archiveThread}\n kind={threadType}\n currentThreadId={messageThreadId}\n currentActivityId={userActivityId}\n />\n <ScrollSection ref={scrollRef} onScroll={handleMessagesScroll}>\n <Messages>\n {loading && <MessageThreadLoading />}\n {/* Improvised reverse infinite scroll */}\n {messages\n ?.map((item, index) => {\n // Attach lastMessageRef to the last message (list will be reversed)\n const ref = index === 0 ? lastMessageRef : undefined;\n return <Message key={index} ref={ref} {...item} />;\n })\n .reverse()}\n </Messages>\n <MessageInput\n ref={messageInputRef}\n constructMailToLink={constructMailToLink}\n isEmailResponseType={isEmailResponseType}\n messageContent={messageContent}\n pressSend={pressSend}\n sendDisabled={sendDisabled}\n setMessageContent={handleInput}\n textDisabled={textDisabled}\n profaneWordDetected={profaneWordDetected}\n />\n {templates?.length > 0 && (\n <ScriptsSection\n textDisabled={textDisabled}\n templates={templates}\n onOpenScripts={() => {\n lastScriptRef?.current?.scrollIntoView({ behavior: 'smooth' });\n }}\n onSelectTemplate={handleSelectTemplate}\n />\n )}\n {/* This div needs to be below scripts container */}\n <div ref={lastScriptRef} />\n\n {showScrollToBottom && (\n <BottomArrowContainer\n onClick={() => {\n lastScriptRef.current.scrollIntoView({ behavior: 'smooth' });\n }}\n >\n <ArrowDownOutlined />\n </BottomArrowContainer>\n )}\n </ScrollSection>\n </CenteredContainer>\n {showRightSideBar && (\n <ReportingSidebar\n archived={archived}\n archiveThread={archiveThread}\n threadType={threadType}\n activityId={activityId}\n contact={person}\n toggleSidebar={toggleSidebar}\n canRegister={\n contactId &&\n threadType !== 'user_to_user' &&\n get(campaign, 'registration_feature_enabled')\n }\n campaignId={campaignId}\n reportActivityId={campaign?.report_activity_id}\n onRegisterClick={handleRegisterClick}\n userActivityId={userActivityId}\n />\n )}\n </ThreadAndRightPanel>\n </Fragment>\n );\n};\n\nMessageThread.propTypes = {\n handleThreadsRefresh: PropTypes.func.isRequired,\n messageThreadId: PropTypes.number.isRequired,\n refetchThreads: PropTypes.func.isRequired,\n setMessageThreadParams: PropTypes.func.isRequired,\n};\n\nexport default MessageThread;\n","export const FilterTypes = {\n ALL: undefined,\n ARCHIVED: 'archived',\n CANVASSED: 'canvassed',\n FRIENDS: 'friends',\n NEEDS_ATTENTION: 'needs_attention',\n TEAM: 'team',\n UNREAD: 'unread',\n};\n","import styled from 'styled-components';\nconst UnreadIcon = styled.div`\n width: 8px;\n height: 8px;\n background: ${({ theme }) => theme.colors.coral};\n border-radius: 15px;\n`;\nexport default UnreadIcon;\n","import React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { users as usersAPI } from '@web/services/api';\nimport { useWindowVisibility } from '@web/hooks';\n\nconst NEEDS_ATTENTION_THREADS_COUNT_POLLING_INTERVAL = 120000;\n\n// Hook to get needs attention messages count\nfunction useNeedsAttentionMessagesCount() {\n const windowVisible = useWindowVisibility();\n const { selectedCampaign } = useSelector(state => state.oneCampaign);\n const [needsAttentionMessagesCount, setNeedsAttentionMessagesCount] = useState();\n\n // Get needs attention messages count from a server\n const getNeedsAttentionMessagesCount = React.useCallback(async campaignId => {\n return await usersAPI\n .getNeedsAttentionMessagesCount(campaignId)\n .then(({ data }) => {\n return data?.data?.needs_attention_message_threads_count;\n })\n .catch(() => {\n return 0;\n });\n }, []);\n\n // Poll for needs attention messages\n useEffect(() => {\n async function pollForChanges() {\n if (windowVisible) {\n const count = await getNeedsAttentionMessagesCount(selectedCampaign?.id);\n setNeedsAttentionMessagesCount(count);\n }\n }\n\n // Run it initially\n pollForChanges();\n\n // Set timer\n const timerFn = setInterval(pollForChanges, NEEDS_ATTENTION_THREADS_COUNT_POLLING_INTERVAL);\n\n // Set cleanup fn\n return () => clearInterval(timerFn);\n }, [\n getNeedsAttentionMessagesCount,\n setNeedsAttentionMessagesCount,\n windowVisible,\n selectedCampaign?.id,\n ]);\n\n return needsAttentionMessagesCount;\n}\n\nexport default useNeedsAttentionMessagesCount;\n","import { FlagFilled, FolderFilled } from '@ant-design/icons';\nimport { Radio } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\n\nimport { fonts } from '@web/styles/theme';\nimport UnreadIcon from '../UnreadIcon';\nimport { FilterTypes } from '../consts';\nimport { StateContext } from '@web/utils/context';\n\nimport { useMedia } from '../../../hooks';\nimport useNeedsAttentionMessagesCount from '../hooks/needsAttentionMessagesCount';\n\nconst Filters = styled(Radio.Group)`\n display: flex !important;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst Buttons = styled.div`\n display: flex;\n`;\n\nconst StyledRadioButton = styled(Radio.Button)`\n &&& {\n &:not(:first-child) {\n padding-left: 30px;\n }\n &:first-child {\n padding-left: 0px;\n }\n padding-right: 0px;\n border: none;\n color: ${({ theme }) => theme.colors.dimGray};\n font-size: 14px;\n font-weight: 500;\n font-family: ${fonts.regular};\n display: flex;\n &.ant-radio-button-wrapper-checked {\n color: ${({ theme, checked }) => (checked ? theme.colors.darkBlack : theme.colors.dimGray)};\n > span:nth-child(2) {\n border-bottom: ${({ theme, checked }) =>\n `solid ${checked ? theme.colors.darkBlack : 'transparent'}`};\n }\n &:focus-within {\n box-shadow: none;\n }\n }\n :before {\n width: 0;\n }\n\n &:hover {\n color: ${({ theme }) => theme.colors.black};\n }\n\n > span {\n display: flex;\n align-items: center;\n white-space: nowrap;\n > :nth-child(1) {\n margin-right: 6px;\n }\n }\n }\n`;\n\nconst InboxFilters = ({ onFilterChange, filter }) => {\n const { t } = useTranslation();\n\n const { unreadMessagesCount } = React.useContext(StateContext);\n const needsAttentionMessagesCount = useNeedsAttentionMessagesCount();\n const isMobile = useMedia('(max-width: 470px)');\n\n const displayCount = data => {\n if (data > 0) {\n return ` (${data})`;\n }\n\n return null;\n };\n\n return (\n <Filters\n value={filter}\n size=\"large\"\n onChange={e => {\n onFilterChange(e.target.value);\n }}\n >\n <Buttons>\n <StyledRadioButton\n checked={filter === FilterTypes.ALL}\n value={FilterTypes.ALL}\n tabIndex={0}\n role=\"radio\"\n aria-checked={filter === FilterTypes.ALL}\n aria-label=\"All\"\n >\n {t('inbox.all')}\n </StyledRadioButton>\n <StyledRadioButton\n checked={filter === FilterTypes.UNREAD}\n data-testid=\"unread-filter\"\n buttonStyle=\"solid\"\n value={FilterTypes.UNREAD}\n tabIndex={-1}\n role=\"radio\"\n aria-checked={filter === FilterTypes.UNREAD}\n aria-label=\"Unread\"\n >\n {unreadMessagesCount ? <UnreadIcon /> : null} {t('inbox.unread')}\n {displayCount(unreadMessagesCount)}\n </StyledRadioButton>\n\n <StyledRadioButton\n checked={filter === FilterTypes.NEEDS_ATTENTION}\n data-testid=\"needs-attention-filter\"\n value={FilterTypes.NEEDS_ATTENTION}\n tabIndex={-1}\n role=\"radio\"\n aria-checked={filter === FilterTypes.NEEDS_ATTENTION}\n aria-label=\"Need attention\"\n >\n <FlagFilled /> {t('inbox.needs_attention')}\n {displayCount(needsAttentionMessagesCount)}\n </StyledRadioButton>\n </Buttons>\n <StyledRadioButton\n checked={filter === FilterTypes.ARCHIVED}\n data-testid=\"archived-filter\"\n value={FilterTypes.ARCHIVED}\n tabIndex={-1}\n role=\"radio\"\n aria-checked={filter === FilterTypes.ARCHIVED}\n aria-label=\"Archived\"\n >\n <FolderFilled /> {!isMobile && t('inbox.archive')}\n </StyledRadioButton>\n </Filters>\n );\n};\n\nInboxFilters.propTypes = {\n filter: PropTypes.string,\n onFilterChange: PropTypes.func.isRequired,\n};\n\nexport default InboxFilters;\n","import { Select } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\n\nimport { fonts } from '@web/styles/theme';\nimport { FilterTypes } from '../consts';\n\nconst { Option } = Select;\n\nconst StyledSelect = styled(Select)`\n &&& {\n > div {\n color: ${({ theme, checked }) => (checked ? theme.colors.darkBlack : theme.colors.dimGray)};\n font-family: ${fonts.regular};\n font-size: 14px;\n font-weight: 500;\n height: 42px;\n &:hover {\n border-color: unset;\n }\n\n min-width: 133px;\n display: flex;\n flex-direction: row-reverse;\n border: none;\n border-bottom: ${({ theme, checked }) =>\n `solid ${checked ? theme.colors.darkBlack : 'transparent'}`};\n > span {\n margin-top: 5px;\n display: flex;\n align-items: center;\n margin-left: 6px;\n }\n }\n }\n`;\n\nconst FiltersSelect = ({ onFilterChange, filter }) => {\n const { t } = useTranslation();\n const dropdownValue = () => {\n if (\n filter === FilterTypes.TEAM ||\n filter === FilterTypes.CANVASSED ||\n filter === FilterTypes.FRIENDS\n ) {\n return filter;\n }\n\n return t('inbox.more_filters');\n };\n return (\n <StyledSelect\n onChange={val => {\n onFilterChange(val);\n }}\n data-testid=\"select\"\n value={dropdownValue()}\n checked={dropdownValue() !== 'MORE FILTERS'}\n >\n <Option value={FilterTypes.TEAM} data-testid=\"team-filter\">\n {t('inbox.team')}\n </Option>\n <Option value={FilterTypes.CANVASSED}>{t('inbox.canvassed')}</Option>\n <Option value={FilterTypes.FRIENDS}>{t('inbox.friends')}</Option>\n </StyledSelect>\n );\n};\n\nFiltersSelect.propTypes = {\n filter: PropTypes.string,\n onFilterChange: PropTypes.func.isRequired,\n};\n\nexport default FiltersSelect;\n","import { SyncOutlined, InfoCircleOutlined } from '@ant-design/icons';\nimport { Button, Tooltip } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport { colors, fonts, media, sizes } from '@web/styles/theme';\nimport InboxFilters from './InboxFilters';\nimport FiltersSelect from './FiltersSelect';\n\nconst Container = styled.div`\n border-bottom: 1px solid ${colors.borderGray};\n @media screen and (min-width: 1600px) {\n padding: 2rem 2.75rem 2rem 3.75rem;\n }\n ${media.xxl} {\n padding: 1rem 1.75rem 1rem 2.75rem;\n }\n @media (max-width: ${sizes.xxl}) and (min-width: 900px) {\n padding: 2rem 2.75rem 2rem 3.75rem;\n }\n padding: 20px 25px;\n`;\n\nconst Title = styled.div`\n font-size: 30px;\n color: ${colors.black};\n font-family: ${fonts.bold};\n margin-bottom: 10px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nconst InfoIcon = styled(InfoCircleOutlined)`\n && {\n color: ${colors.cyan};\n cursor: pointer;\n font-size: 16px;\n margin-left: 8px;\n vertical-align: middle;\n }\n`;\n\nconst ButtonsWrapper = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst InboxHeader = ({ onFilterChange, refreshing, onRefresh, filter }) => {\n const { t } = useTranslation();\n\n return (\n <Container>\n <Title>\n <div>\n <span tabIndex={0}>{t('inbox.header')}</span>\n <Tooltip placement=\"right\" trigger=\"hover\" title={t('inbox.description')}>\n <InfoIcon role=\"tooltip\" tabIndex={0} aria-label={t('inbox.description')} />\n </Tooltip>\n </div>\n <ButtonsWrapper>\n <FiltersSelect onFilterChange={onFilterChange} filter={filter} />\n <Button\n data-testid=\"refresh-button\"\n type=\"link\"\n icon={<SyncOutlined />}\n disabled={refreshing}\n onClick={onRefresh}\n aria-label=\"Refresh messages\"\n />\n </ButtonsWrapper>\n </Title>\n\n <InboxFilters onFilterChange={onFilterChange} filter={filter} />\n </Container>\n );\n};\n\nInboxHeader.propTypes = {\n filter: PropTypes.string,\n onFilterChange: PropTypes.func.isRequired,\n onRefresh: PropTypes.func.isRequired,\n refreshing: PropTypes.bool,\n};\n\nInboxHeader.defaultProps = {};\n\nexport default InboxHeader;\n","import values from 'lodash/values';\nimport React, { useEffect, useState, useMemo, useCallback } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport InfiniteScroll from 'react-infinite-scroller';\nimport { useLocation, useHistory, useParams } from 'react-router-dom';\nimport styled from 'styled-components';\nimport { useDocumentTitle, useComparePrevious, useMedia } from '../../hooks';\nimport { toObject, usePaginatedApi } from '../../hooks/usePaginatedApi';\nimport { track } from '../../services/analytics';\nimport { users } from '../../services/api';\nimport { media, sizes } from '../../styles/theme';\nimport InboxList from './InboxList';\nimport MessageThread from './MessageThread';\nimport { FilterTypes } from './consts';\nimport InboxHeader from './InboxHeader';\nimport Sidebar from '../AppContainer/Sidebar';\n\nconst getPaginatedApiParams = filter => {\n switch (filter) {\n case FilterTypes.UNREAD:\n return { unread: true };\n case FilterTypes.FRIENDS:\n return { friends: true };\n case FilterTypes.NEEDS_ATTENTION:\n return { needs_attention: true };\n case FilterTypes.TEAM:\n return { team: true };\n case FilterTypes.CANVASSED:\n return { canvassed: true };\n case FilterTypes.ARCHIVED:\n return { archived: true };\n default:\n return { unread: false };\n }\n};\n\nconst InboxContainer = styled.div`\n display: grid;\n grid-template-columns: 3fr 7fr;\n margin-left: 80px;\n`;\n\nconst HeaderAndInbox = styled.div`\n width: 100%;\n ${media.lg} {\n border-right: 1px solid ${({ theme }) => theme.colors.borderGray};\n }\n`;\n\nconst MessageThreadsList = styled.div`\n overflow: auto;\n height: calc(100vh - 179px);\n`;\n\nconst MessageThreadContainer = styled.div``;\n\nconst NotClickedOnMessageYet = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n width: 100%;\n height: 100%;\n font-size: 16px;\n`;\n\nconst InboxWrapper = styled.div`\n display: flex;\n`;\n\nconst Inbox = () => {\n const { t } = useTranslation();\n const { selectedCampaign } = useSelector(state => state.oneCampaign);\n\n const { search } = useLocation();\n const history = useHistory();\n const queryParams = new URLSearchParams(search);\n const filterQueryParam = queryParams.get('filter') || undefined;\n const initialThreadId = queryParams.get('threadId') || undefined;\n const [filter, setFilter] = useState(filterQueryParam);\n\n const computedFilter = useMemo(() => {\n const validFilterValues = values(FilterTypes);\n return validFilterValues.includes(filter) ? filter : undefined;\n }, [filter]);\n\n const {\n hasMore,\n items: messages,\n loadMore,\n loading,\n initialLoading,\n resetPagination,\n cancelPendingRequests,\n restartIntervalRefetch,\n resetLiveUpdatePagination,\n } = toObject(\n usePaginatedApi(\n users.getUserMessageThreads,\n null,\n {\n ...getPaginatedApiParams(computedFilter),\n ...{ campaign_id: selectedCampaign?.id },\n },\n true,\n ),\n );\n\n useEffect(() => {\n if (selectedCampaign?.id) {\n resetPagination({ refetch: true });\n }\n // Do not change this as it will cause queries to loop\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedCampaign?.id]);\n\n const small = useMedia(`(max-width: ${sizes.lg})`);\n\n let { messageThreadId: initialMessageThreadId = null } = useParams();\n\n const [messageThreadId, setMessageThreadId] = useState(initialMessageThreadId);\n\n const showMessageThread = !!messageThreadId;\n\n const setMessageThreadParams = messageThreadId => {\n restartIntervalRefetch(true);\n setMessageThreadId(messageThreadId);\n };\n\n useDocumentTitle(t('titles.inbox'));\n\n // Track the page view\n useEffect(() => {\n track('VIEW_INBOX_SCREEN');\n if (initialThreadId) setMessageThreadParams(initialThreadId);\n\n // Do not change to avoid errors\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [initialThreadId]);\n\n // Initial load\n const initialLoadingChanged = useComparePrevious(initialLoading);\n useEffect(() => {\n if (initialLoading && initialLoadingChanged) {\n loadMore();\n }\n });\n\n const handleRefresh = useCallback(() => {\n resetPagination();\n cancelPendingRequests();\n }, [resetPagination, cancelPendingRequests]);\n\n const handleFilterChange = useCallback(\n newFilter => {\n if (computedFilter === newFilter) {\n return;\n }\n setFilter(newFilter);\n history.push(newFilter ? `?filter=${newFilter}` : '?');\n handleRefresh();\n },\n [computedFilter, setFilter, history, handleRefresh],\n );\n\n // React to external query param changes (e.g. browser back button)\n useEffect(() => {\n if (filterQueryParam !== filter) {\n setFilter(filterQueryParam);\n handleRefresh();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [filterQueryParam, handleRefresh]);\n\n const renderHeaderAndInbox = () => {\n return (\n <HeaderAndInbox>\n <InboxHeader\n filter={computedFilter}\n onFilterChange={handleFilterChange}\n refreshing={initialLoading}\n onRefresh={handleRefresh}\n />\n <MessageThreadsList>\n <InfiniteScroll\n initialLoad={false}\n pageStart={0}\n loadMore={loadMore}\n hasMore={!loading && hasMore}\n useWindow={false}\n >\n <InboxList\n messages={messages}\n loading={loading}\n messageThreadId={messageThreadId}\n setMessageThreadParams={setMessageThreadParams}\n />\n </InfiniteScroll>\n </MessageThreadsList>\n </HeaderAndInbox>\n );\n };\n\n const renderMessageThread = () => {\n return (\n <MessageThread\n key={messageThreadId}\n setMessageThreadParams={setMessageThreadParams}\n messageThreadId={messageThreadId}\n handleThreadsRefresh={handleRefresh}\n refetchThreads={resetLiveUpdatePagination}\n />\n );\n };\n\n const renderMessageThreadContainer = () => {\n return (\n <MessageThreadContainer>\n {!showMessageThread && (\n <NotClickedOnMessageYet>{t('inbox.click_on_a_message')}</NotClickedOnMessageYet>\n )}\n {showMessageThread && renderMessageThread()}\n </MessageThreadContainer>\n );\n };\n\n /* On smaller screens, only show the inbox or the messages one at a time */\n if (small) {\n // show inbox if message thread isn't set\n if (!showMessageThread) {\n return renderHeaderAndInbox();\n }\n return <>{renderMessageThreadContainer()}</>;\n }\n\n return (\n <InboxWrapper>\n <Sidebar mini />\n <InboxContainer>\n {renderHeaderAndInbox()}\n {renderMessageThreadContainer()}\n </InboxContainer>\n </InboxWrapper>\n );\n};\n\nInbox.propTypes = {};\n\nexport default Inbox;\n","import map from 'lodash/map';\nimport React from 'react';\nimport ModalManager from './ModalManager';\n\nconst ModalContainer = () => {\n const [modals, setModals] = React.useState({});\n\n React.useEffect(() => {\n ModalManager.addChangeListener(setModals);\n return () => {\n ModalManager.removeChangeListener(setModals);\n };\n }, [setModals]);\n\n return (\n <>\n {map(modals, ({ component: Component, props = {} }, key) => (\n <Component key={key} {...props} onClose={() => ModalManager.closeModal(key)} />\n ))}\n </>\n );\n};\n\nexport default ModalContainer;\n","import { message, Switch } from 'antd';\nimport TextArea from 'antd/lib/input/TextArea';\nimport { Formik } from 'formik';\nimport { Form, FormItem, Input, SubmitButton } from 'formik-antd';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Redirect, useLocation } from 'react-router-dom';\nimport * as yup from 'yup';\nimport { track } from '../../services/analytics';\nimport { user, users, userReportApi } from '../../services/api';\nimport { sortByDisplayOrderFn } from '../../utils/other';\nimport AppContainer from '../AppContainer';\nimport AppHeader from '../AppHeader';\nimport BackButton from '../common/BackButton';\nimport './new-voter-report.scss';\n\nconst phoneRegExp =\n /^((\\\\+[1-9]{1,4}[ \\\\-]*)|(\\\\([0-9]{2,3}\\\\)[ \\\\-]*)|([0-9]{2,4})[ \\\\-]*)*?[0-9]{3,4}?[ \\\\-]*[0-9]{3,4}?$/;\n\nconst NewVoterReport = () => {\n // Fetch new_report from campaign endpoint to get the latest tags and custom fields that give us the report for users to fill out\n // Fetch voter using voterbase ID. If none exists, then we are adding someone new to the database and must require a phone or email and first/last.\n const { t } = useTranslation();\n const { state } = useLocation();\n const { campaignId, activityId, userActivityId } = state || {};\n\n const [redirectToVoterForm, setRedirectToVoterForm] = useState(null);\n const [userReport, setUserReport] = useState({});\n const [userActivity, setUserActivity] = useState({});\n const { tags = [], custom_fields = [] } = userReport;\n\n const NewReportFormSchema = yup.object().shape({\n email: yup.string().email(t('idvoters.validation.email')),\n first_name: yup\n .string()\n .test('first_name', t('idvoters.validation.first_or_last'), function (value) {\n const { last_name } = this.parent;\n if (!last_name) return value != null;\n return true;\n }),\n last_name: yup\n .string()\n .test('last_name', t('idvoters.validation.first_or_last'), function (value) {\n const { first_name } = this.parent;\n if (!first_name) return value != null;\n return true;\n }),\n phone: yup.string().matches(phoneRegExp, t('idvoters.validation.phone')),\n });\n\n useEffect(() => {\n // Load latest report when conditions are met.\n if (!campaignId) {\n return;\n }\n\n user\n .getUserActivity(userActivityId)\n .then(({ data: { data: userActivity } }) => {\n setUserActivity(userActivity);\n })\n .catch(x => {}); // Noop\n\n userReportApi\n .getBlankReport({ activity_id: activityId, campaign_id: campaignId })\n .then(({ data }) => {\n const { campaign_id, taggings, customizations } = data;\n\n const strippedTags = taggings\n .map(tagging => {\n const {\n tag: { id, slug, name, display_order, prompt },\n value,\n } = tagging;\n return { campaign_id, display_order, id, name, prompt, slug, value };\n })\n .sort(sortByDisplayOrderFn);\n\n const strippedFields = customizations\n .filter(customization => customization.custom_field.is_user_reportable !== false)\n .map(customization => {\n const {\n custom_field: { id, name, type, slug, available_values, display_order, prompt },\n value,\n } = customization;\n return {\n available_values,\n campaign_id,\n display_order,\n id,\n name,\n prompt,\n slug,\n type,\n value,\n };\n })\n .sort(sortByDisplayOrderFn);\n\n setUserReport({\n custom_fields: strippedFields,\n tags: strippedTags,\n });\n })\n .catch(err => {\n message.error(t('errors.fetch_outreach_report'));\n });\n // Load response scripts if latest message is associated with an activity\n // eslint-disable-next-line\n }, [campaignId]);\n\n const onSwitchToggle = (selectedSlug, selectionChange) => {\n const updatedTags = tags.map(tag => {\n if (tag.slug !== selectedSlug) {\n return tag;\n }\n return {\n ...tag,\n value: selectionChange,\n };\n });\n\n setUserReport({\n custom_fields,\n tags: updatedTags,\n });\n };\n\n const onCustomFieldTextUpdate = (selectedSlug, e) => {\n const updatedFields = custom_fields.map(field => {\n if (field.slug !== selectedSlug) {\n return field;\n }\n return {\n ...field,\n value: e.target.value,\n };\n });\n\n setUserReport({\n custom_fields: updatedFields,\n tags,\n });\n };\n\n const onCustomFieldSelectUpdate = (selectedSlug, val) => {\n const updatedFields = custom_fields.map(field => {\n if (field.slug !== selectedSlug) {\n return field;\n }\n return {\n ...field,\n value: val,\n };\n });\n\n setUserReport({\n custom_fields: updatedFields,\n tags,\n });\n };\n\n const onSaveError = () => {\n message.error(t('errors.submit_outreach_report'));\n };\n\n const submitReport = async formData => {\n if (!formData) {\n return;\n }\n\n const newUserReportBody = {\n activity_id: activityId,\n address: formData.address,\n email: formData.email,\n first_name: formData.first_name,\n last_name: formData.last_name,\n phone: formData.phone,\n };\n\n const userReportRes = await userReportApi\n .findOrCreateReport({ activity_id: activityId, campaign_id: campaignId }, newUserReportBody)\n .catch(err => {\n onSaveError();\n return;\n });\n\n if (!userReportRes || userReportRes.status !== 200) {\n onSaveError();\n return;\n }\n\n const {\n data: { id: newReportId, taggings, customizations },\n } = userReportRes;\n\n let updatedReport = {\n ...newUserReportBody,\n customizations_attributes: customizations.map(cust => {\n const existingCf = custom_fields.find(x => x.id === cust.custom_field_id);\n cust.value = existingCf && existingCf.value;\n const { id, custom_field_id, value } = cust;\n return { custom_field_id, id, value };\n }),\n taggings_attributes: taggings.map(tagging => {\n const existingTag = tags.find(x => x.id === tagging.tag_id);\n tagging.value = existingTag && existingTag.value;\n const { id, tag_id, value } = tagging;\n return { id, tag_id, value };\n }),\n };\n\n await userReportApi\n .update({ campaign_id: campaignId, report_id: newReportId }, updatedReport)\n .catch(err => {\n onSaveError();\n });\n\n const activity = userActivity && userActivity.activity;\n const campaign = activity && activity.campaign;\n track('COMPLETED_ACTIVITY', {\n activity_id: activityId,\n activity_title: activity && activity.title,\n campaign_id: campaign && campaign.id,\n campaign_name: campaign && campaign.name,\n });\n\n await users.sendCanvasserMessagePublic(\n {\n activity_id: activityId,\n campaign_id: campaignId,\n contact_id: null,\n report_id: newReportId,\n user_activity_id: userActivityId,\n },\n updatedReport,\n );\n\n await user.updateUserActivity(userActivityId, { completed: true });\n await user.userActivityAddPerform(userActivityId);\n\n message.success(t('idvoters.voter.outreach_report_sent'));\n setRedirectToVoterForm(true);\n };\n\n if (redirectToVoterForm) {\n return (\n <Redirect\n push\n to={{\n pathname: '/voters',\n state: {\n activityId,\n campaignId,\n userActivityId,\n },\n }}\n />\n );\n }\n\n return (\n <div>\n <AppHeader title={t('idvoters.voter.new.header')} />\n <AppContainer>\n <div className=\"flexbox justify-content-center\">\n <div className=\"new-voter-report-section p-2\">\n <div className=\"p-3\">\n <BackButton />\n </div>\n <Formik\n initialValues={{\n address: '',\n email: '',\n first_name: '',\n last_name: '',\n phone: '',\n }}\n validationSchema={NewReportFormSchema}\n onSubmit={submitReport}\n >\n <Form>\n <div className=\"flex-row flex-wrap\">\n <FormItem name=\"first_name\" className=\"flex1 form-input px-3\">\n <label htmlFor=\"first_name\">{t('idvoters.labels.firstname')}</label>\n <Input name=\"first_name\" placeholder={t('idvoters.labels.firstname')} />\n </FormItem>\n <FormItem name=\"last_name\" className=\"flex1 form-input px-3\">\n <label htmlFor=\"last_name\">{t('idvoters.labels.lastname')}</label>\n <Input name=\"last_name\" placeholder={t('idvoters.labels.lastname')} />\n </FormItem>\n </div>\n\n <FormItem name=\"phone\" className=\"form-input px-3\">\n <label htmlFor=\"phone\">{t('idvoters.labels.phone')}</label>\n <Input name=\"phone\" placeholder={t('idvoters.labels.phone')} />\n </FormItem>\n\n <FormItem name=\"email\" className=\"form-input px-3\">\n <label htmlFor=\"email\">{t('idvoters.labels.email')}</label>\n <Input name=\"email\" placeholder={t('idvoters.labels.email')} />\n </FormItem>\n\n <FormItem name=\"address\" className=\"form-input px-3\">\n <label htmlFor=\"address\">{t('idvoters.labels.address')}</label>\n <Input name=\"address\" placeholder={t('idvoters.placeholders.address')} />\n </FormItem>\n\n <div className=\"p-3\">\n {tags &&\n tags.map(({ name, value, slug, prompt }) => (\n <div className=\"py-3\" key={slug}>\n <span className=\"pr-3\">{prompt || name}</span>\n <Switch\n slug={slug}\n checked={value}\n onChange={(to, e) => onSwitchToggle(slug, to, e)}\n />\n </div>\n ))}\n </div>\n\n <div className=\"p-3\">\n {custom_fields &&\n custom_fields.map((field, i) => (\n <div className=\"py-3\" key={field.slug}>\n <div className=\"pb-2\">{field.prompt || field.name}</div>\n\n {field.type === 'TextField' && (\n <TextArea\n name={field.slug}\n value={field.value}\n autoSize={{ minRows: 4 }}\n onChange={e => onCustomFieldTextUpdate(field.slug, e)}\n />\n )}\n\n {field.type === 'SelectionField' && (\n <div className=\"flex-row flex-wrap\">\n {field.available_values.map(val => (\n <div key={val} className=\"m-2\">\n <div\n className={`selection-box ${\n field.value === val ? 'selected' : ''\n }`}\n onClick={e => onCustomFieldSelectUpdate(field.slug, val)}\n >\n {val}\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n ))}\n </div>\n\n <div className=\"flex-row justify-content-end m-3\">\n <SubmitButton className=\"w-100\">{t('common.send_to_campaign')}</SubmitButton>\n </div>\n </Form>\n </Formik>\n </div>\n </div>\n </AppContainer>\n </div>\n );\n};\n\nexport default NewVoterReport;\n","import styled from 'styled-components';\nimport ImpactiveButton from 'web/components/ImpactiveButton';\n\nexport const OptInForm = styled.div`\n align-items: center;\n background: #f4f5f6;\n color: #000;\n display: flex;\n flex: 1;\n flex-direction: column;\n font-size: 1.5rem;\n height: 100%;\n justify-content: center;\n padding: 3rem;\n width: 100%;\n`;\n\nexport const InitialContainer = styled.div`\n align-items: center;\n background: #fff;\n border-radius: 10px;\n display: flex;\n flex-direction: column;\n`;\n\nexport const OptInImg = styled.img`\n display: block;\n max-width: 512px;\n max-height: 512px;\n`;\n\nexport const Title = styled.h1`\n max-width: 512px;\n padding-top: 2rem;\n text-transform: uppercase;\n text-align: center;\n`;\n\nexport const Subtitle = styled.div`\n max-width: 512px;\n padding-bottom: 2rem;\n text-align: center;\n`;\n\nexport const OptInButton = styled(ImpactiveButton)`\n font-size: 1.8rem;\n text-transform: uppercase;\n max-width: 512px;\n`;\n\nexport const Disclaimer = styled.div`\n color: $gray-800;\n font-size: 1.2rem;\n max-width: 512px;\n padding-top: 3.125rem;\n text-align: center;\n`;\n\nexport const DisclaimerLink = styled.a`\n color: $gray-800;\n font-size: 1.2rem;\n max-width: 512px;\n margin-top: 1rem;\n text-align: center;\n display: block;\n`;\n\nexport const ThankYouContainer = styled.div`\n color: white;\n`;\n","import { message } from 'antd';\nimport React from 'react';\nimport Clipboard from 'react-clipboard.js';\nimport { useTranslation } from 'react-i18next';\nimport { FacebookShareButton, TwitterShareButton, FacebookIcon, TwitterIcon } from 'react-share';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst ShareButtonInner = styled.div`\n align-items: center;\n border: 1px solid;\n border-color: white;\n border-radius: 4px;\n height: 52px;\n display: flex;\n font-size: 1.5rem;\n justify-content: center;\n padding-top: 1rem;\n padding-bottom: 1rem;\n width: 100%;\n`;\n\nconst ShareButtonText = styled.div`\n padding-left: 1rem;\n`;\n\nconst StyledFacebookShareButton = styled(FacebookShareButton)`\n margin-bottom: 1.5rem;\n width: 100%;\n cursor: pointer;\n display: flex;\n`;\n\nconst StyledTwitterShareButton = styled(TwitterShareButton)`\n margin-bottom: 1.5rem;\n width: 100%;\n cursor: pointer;\n`;\n\nconst StyledClipboard = styled(Clipboard)`\n margin-bottom: 1.5rem;\n width: 100%;\n cursor: pointer;\n`;\n\nexport const FacebookShare = ({ url, children }) => (\n <StyledFacebookShareButton url={url}>\n <ShareButtonInner>\n <FacebookIcon round size=\"30\" />\n <ShareButtonText>{children}</ShareButtonText>\n </ShareButtonInner>\n </StyledFacebookShareButton>\n);\n\nFacebookShare.propTypes = {\n children: PropTypes.node,\n url: PropTypes.string.isRequired,\n};\n\nexport const TwitterShare = ({ url, children }) => (\n <StyledTwitterShareButton url={url}>\n <ShareButtonInner>\n <TwitterIcon round size=\"30\" />\n <ShareButtonText>{children}</ShareButtonText>\n </ShareButtonInner>\n </StyledTwitterShareButton>\n);\n\nTwitterShare.propTypes = {\n children: PropTypes.node,\n url: PropTypes.string.isRequired,\n};\n\nexport const ClipboardShare = ({ children, text }) => {\n const { t } = useTranslation();\n\n return (\n <StyledClipboard\n component=\"span\"\n data-clipboard-text={text}\n onSuccess={() => message.info(t('common.copied_to_clipboard'))}\n >\n <ShareButtonInner>\n <i className=\"fal fa-external-link ml-1 text-dark\" />\n <ShareButtonText>{children}</ShareButtonText>\n </ShareButtonInner>\n </StyledClipboard>\n );\n};\n\nClipboardShare.propTypes = {\n children: PropTypes.node,\n text: PropTypes.string.isRequired,\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\n\nimport { Field, Formik } from 'formik';\nimport { Form, FormItem } from 'formik-antd';\nimport { LoadingOutlined } from '@ant-design/icons';\nimport { Redirect } from 'react-router-dom';\nimport { Spin, message } from 'antd';\n\nimport { campaigns, optInForms } from 'web/services/api';\nimport { colors } from 'web/styles/theme';\nimport i18n from 'web/components/i18n';\nimport { isMobileOnly } from 'react-device-detect';\nimport sendError from '@web/utils/sendError';\nimport { track } from 'web/services/analytics';\nimport { useTranslation } from 'react-i18next';\nimport * as yup from 'yup';\n\nimport {\n Disclaimer,\n DisclaimerLink,\n InitialContainer,\n OptInForm,\n OptInImg,\n OptInButton,\n Subtitle,\n Title,\n ThankYouContainer,\n} from './styles';\n\nimport { FacebookShare, TwitterShare, ClipboardShare } from './components/shareButtons';\n\nconst ScreenTypes = {\n COLLECT_PHONE: 'collect_phone',\n INITIAL: 'initial',\n THANK_YOU: 'thank_you',\n};\n\nconst phoneRegExp = /^(\\+\\d{1,2}\\s)?\\(?\\d{3}\\)?[\\s.-]?\\d{3}[\\s.-]?\\d{4}$/;\n\nconst schema = yup.object().shape({\n phone: yup.string().matches(phoneRegExp, i18n.t('check_registration.invalid_phone')),\n});\n\nconst OptInFormWeb = props => {\n const { campaignId, formId } = props.match.params; // can be either campaign `id` or `slug`\n const { t } = useTranslation();\n const params = new URLSearchParams(props.location.search);\n // MTS - This is used to let us know if a contact shared this opt-in.\n const trackedLinkKey = params.get('tlkey');\n\n const [campaign, setCampaign] = useState({});\n const [form, setForm] = useState({});\n\n const [screenType, setScreenType] = useState(ScreenTypes.INITIAL);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n track(`VIEW_OPT_IN`);\n }, []);\n\n useEffect(() => {\n const search = trackedLinkKey ? `?tracked_link_key=${trackedLinkKey}` : '';\n setLoading(true);\n campaigns\n .getPublicCampaign({ id: campaignId })\n .then(({ data: { data: campaign } }) => {\n setCampaign(campaign);\n })\n .then(() => optInForms.getFormPublic({ campaign_id: campaignId, form_id: formId, search }))\n .then(res => setForm(res?.data?.data))\n .then(() => setLoading(false))\n .catch(() => setLoading(false));\n }, [campaignId, formId, trackedLinkKey]);\n\n const handleSubmitPhone = useCallback(\n (formData, { setSubmitting }) => {\n const { phone } = formData;\n if (!phone) {\n message.error('Phone required.');\n setSubmitting(false);\n return;\n }\n const payload = { phone };\n const url = `/api/v2/campaigns/${campaignId}/opt_in_forms/${formId}/add_contact`;\n if (trackedLinkKey) {\n payload.tracked_link_key = trackedLinkKey;\n }\n return axios\n .post(url, payload)\n .then(() => setScreenType(ScreenTypes.THANK_YOU))\n .catch(error => {\n setSubmitting(false);\n message.error('An error occurred.');\n sendError('An error occurred while joining an opt in', error);\n });\n },\n [campaignId, formId, trackedLinkKey],\n );\n\n if (loading) {\n return (\n <div className=\"flex-col justify-content-center align-items-center mt-4\">\n <Spin indicator={<LoadingOutlined style={{ fontSize: 24 }} spin />} />\n </div>\n );\n }\n\n const shouldRedirect = campaign && campaign.broadcast_disabled;\n if (shouldRedirect) {\n return <Redirect to={`/campaigns/${campaignId}`} />;\n }\n\n const numberForLink = campaign.broadcast_number;\n const encodedMessage = form.text_to_join_message.replaceAll(' ', '%20');\n const smsLink = `sms://${numberForLink};?&body=${encodedMessage}`;\n\n const disclaimerText = t('ga_runoff.junk_text', { campaign: campaign.name });\n\n return (\n <OptInForm\n style={{\n backgroundColor: screenType === ScreenTypes.THANK_YOU ? colors.darkBlue : colors.whiteSmoke,\n }}\n >\n {screenType === ScreenTypes.INITIAL && (\n <InitialContainer style={{ padding: form.media_url ? '2.5rem' : '2.5rem 3rem' }}>\n {form.media_url && <OptInImg src={form.media_url} alt=\"Media for opt-in\" />}\n <Title>{form.title}</Title>\n <Subtitle>{form.subtitle}</Subtitle>\n\n <div\n className=\"flex-col justify-content-center align-items-center mt-4\"\n style={{ width: '100%' }}\n >\n {isMobileOnly && (\n <a\n href={smsLink}\n onClick={() => setScreenType(ScreenTypes.THANK_YOU)}\n style={{ width: '100%' }}\n >\n <OptInButton\n style={{ backgroundColor: form.accent_color }}\n size=\"xlarge\"\n type=\"primary\"\n children={form.button_text}\n block\n />\n </a>\n )}\n\n {!isMobileOnly && (\n <OptInButton\n style={{ backgroundColor: form.accent_color }}\n type=\"primary\"\n children={form.button_text}\n size=\"xlarge\"\n onClick={() => {\n setScreenType(ScreenTypes.COLLECT_PHONE);\n }}\n block\n />\n )}\n </div>\n <Disclaimer>{disclaimerText}</Disclaimer>\n {!!campaign && (\n <div>\n <DisclaimerLink\n target=\"_blank\"\n href={campaign.terms_link || 'https://www.impactive.io/terms-conditions'}\n >\n {'Terms of Service'}\n </DisclaimerLink>\n <DisclaimerLink\n target=\"_blank\"\n href={campaign.privacy_link || 'https://www.impactive.io/privacy-policy'}\n >\n {'Privacy Policy'}\n </DisclaimerLink>\n </div>\n )}\n </InitialContainer>\n )}\n\n {screenType === ScreenTypes.COLLECT_PHONE && (\n <div>\n <Title>{form.title}</Title>\n <Subtitle>{form.subtitle}</Subtitle>\n <Formik\n initialValues={{ phone: '' }}\n validationSchema={schema}\n onSubmit={handleSubmitPhone}\n render={({ isSubmitting, isValid, submitCount }) => (\n <Form>\n <FormItem name=\"phone\">\n <label htmlFor=\"phone\">{'Enter Phone Number'}</label>\n <Field id=\"phone\" name=\"phone\" className=\"outvote-input\" />\n </FormItem>\n\n <OptInButton\n type=\"submit\"\n disabled={isSubmitting || (!isValid && submitCount > 0)}\n style={{ backgroundColor: form.accent_color }}\n size=\"xlarge\"\n block\n >\n {isSubmitting ? t('ga_runoff.submitting') : t('ga_runoff.submit')}\n </OptInButton>\n\n <Disclaimer>{disclaimerText}</Disclaimer>\n {!!campaign && (\n <div>\n <DisclaimerLink\n target=\"_blank\"\n href={campaign.terms_link || 'https://www.impactive.io/terms-conditions'}\n >\n {'Terms of Service'}\n </DisclaimerLink>\n <DisclaimerLink\n target=\"_blank\"\n href={campaign.privacy_link || 'https://www.impactive.io/privacy-policy'}\n >\n {'Privacy Policy'}\n </DisclaimerLink>\n </div>\n )}\n </Form>\n )}\n />\n </div>\n )}\n\n {screenType === ScreenTypes.THANK_YOU && (\n <ThankYouContainer style={{ flex: 1 }}>\n <Title>Thanks!</Title>\n <Subtitle>Share with your friends to help make an impact.</Subtitle>\n\n {form.tracked_link_url && (\n <div className=\"flex-col justify-content-center align-items-center mt-4\">\n <FacebookShare url={form.tracked_link_url}>\n {t('voting_information.share.facebook')}\n </FacebookShare>\n <TwitterShare url={form.tracked_link_url}>\n {t('voting_information.share.twitter')}\n </TwitterShare>\n <ClipboardShare text={form.tracked_link_url}>\n {t('voting_information.share.copy_share_link')}\n </ClipboardShare>\n </div>\n )}\n </ThankYouContainer>\n )}\n </OptInForm>\n );\n};\n\nOptInFormWeb.propTypes = {\n location: PropTypes.shape({\n search: PropTypes.string.isRequired,\n }).isRequired,\n match: PropTypes.shape({\n params: PropTypes.shape({\n campaignId: PropTypes.string.isRequired,\n formId: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n};\n\nexport default OptInFormWeb;\n","import { Table } from 'antd';\nimport { Radio } from 'formik-antd';\nimport styled from 'styled-components';\nimport ImpactiveButton from '../ImpactiveButton';\n\nexport const SplashWrapper = styled.div`\n max-width: 400px;\n margin: 40px auto;\n font-size: 16px;\n text-align: center;\n`;\n\nexport const SplashTitle = styled.h3`\n color: #000;\n font-size: 2em;\n font-family: ${({ theme }) => theme.fonts.semibold};\n margin: 0 0 12px;\n`;\n\nexport const SplashDescription = styled.div`\n margin-bottom: 2em;\n line-height: 1.3;\n opacity: 0.85;\n`;\n\nexport const BigRoundButton = styled(ImpactiveButton)`\n font-size: 19px;\n border-radius: 10px;\n width: 100%;\n margin: 10px 0;\n`;\n\nexport const CannotVoteLink = styled.a`\n margin-top: 14px;\n display: inline-block;\n font-family: ${({ theme }) => theme.fonts.boldItalic};\n`;\n\nexport const FormContainer = styled.div`\n margin-top: 2rem;\n\n @media screen and (min-width: 768px) {\n max-width: 590px;\n }\n`;\n\nexport const StyledRadio = styled(Radio.Button)`\n margin-right: 5px !important;\n margin-top: 10px !important;\n border-radius: 0 !important;\n`;\n\nexport const SearchResults = styled.div`\n margin-top: 32px;\n`;\n\nexport const SearchResultsTitle = styled.h3`\n font-size: 24px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n line-height: 26px;\n margin: 0;\n`;\n\nexport const SearchResultsDescription = styled.div`\n margin-top: 6px;\n`;\n\nexport const VoterTable = styled(Table)`\n border: 1px solid ${({ theme }) => theme.colors.borderGray};\n border-radius: 3px;\n margin: 20px 0;\n max-width: 620px;\n\n .ant-table {\n color: #000;\n }\n\n .ant-table-content {\n overflow-x: auto !important;\n }\n\n .ant-table tbody > tr {\n cursor: pointer;\n\n > td {\n height: 47px;\n padding-top: 0;\n padding-bottom: 0;\n }\n }\n`;\n\nexport const VoterName = styled.div`\n color: #454545;\n font-family: ${({ theme }) => theme.fonts.bold};\n text-transform: capitalize;\n`;\n\nexport const VoterAddress = styled.div`\n text-transform: capitalize;\n`;\n\nexport const VoterAge = styled.div``;\n\nexport const VoterNameCell = styled.div`\n ${VoterAddress}, ${VoterAge} {\n display: none;\n @media screen and (max-width: 767px) {\n display: block;\n }\n }\n`;\n\nexport const ButtonsRow = styled.div`\n margin-bottom: -10px;\n\n > * {\n margin-bottom: 20px;\n\n &:not(:last-child) {\n margin-right: 20px;\n }\n\n @media screen and (max-width: 767px) {\n width: 100%;\n }\n }\n`;\n\nexport const TermsAndConditions = styled.div`\n margin-top: 40px;\n font-size: 13px;\n`;\n","import { PhoneOutlined, MailOutlined, LoadingOutlined } from '@ant-design/icons';\nimport { Checkbox, message, Row, Col, Spin } from 'antd';\nimport { Formik } from 'formik';\nimport { Form, FormItem, Input, Select } from 'formik-antd';\nimport PropTypes from 'prop-types';\nimport queryString from 'query-string';\nimport React, { useEffect, useState, useRef, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport i18n from 'web/components/i18n';\nimport states from 'web/data/states';\nimport * as yup from 'yup';\nimport { track, trackPageViewWithDynamicIDs } from '../../services/analytics';\nimport { users, campaigns, teams } from '../../services/api';\nimport ImpactiveButton from '../ImpactiveButton';\nimport VoterRegistrationTemplate from '../templates/VoterRegistrationTemplate';\nimport {\n SplashWrapper,\n SplashTitle,\n SplashDescription,\n BigRoundButton,\n CannotVoteLink,\n FormContainer,\n ButtonsRow,\n TermsAndConditions,\n} from './styles';\n\nconst phoneRegExp =\n /^((\\\\+[1-9]{1,4}[ \\\\-]*)|(\\\\([0-9]{2,3}\\\\)[ \\\\-]*)|([0-9]{2,4})[ \\\\-]*)*?[0-9]{3,4}?[ \\\\-]*[0-9]{3,4}?$/;\n\nconst ContactFormSchema = yup.object().shape({\n email: yup.string().email(i18n.t('check_registration.invalid_email')),\n firstName: yup.string(),\n lastName: yup.string(),\n phone: yup.string().matches(phoneRegExp, i18n.t('check_registration.invalid_phone')),\n stateAbbv: yup.string().required(i18n.t('idvoters.validation.state')),\n zipCode: yup.number(i18n.t('idvoters.validation.zip')),\n});\n\nconst formInitialValues = {\n email: '',\n firstName: '',\n lastName: '',\n phone: '',\n stateAbbv: '',\n zipCode: '',\n};\n\nconst ScreenTypes = {\n PLEDGE_TO_VOTE: 'pledge_to_vote',\n SIGNUP_TO_HELP: 'signup_to_help',\n SPLASH: 'splash',\n};\n\nconst PledgeToVote = props => {\n const { campaignId } = props.match.params; // can be either campaign `id` or `slug`\n const { contact_id, contact_referral_id, h, referral_hash, postmates_enabled } =\n queryString.parse(props.location.search);\n const { t } = useTranslation();\n const history = useHistory();\n\n const [campaign, setCampaign] = useState({});\n const [team, setTeam] = useState();\n const [loading, setLoading] = useState(true);\n const [optIn, setOptIn] = useState(true);\n const formRef = useRef(null);\n const [screenType, setScreenType] = useState(ScreenTypes.SPLASH);\n const isSignupToHelpScreen = screenType === ScreenTypes.SIGNUP_TO_HELP;\n const user_referral_id = team ? team.id : undefined;\n\n useEffect(() => {\n track('VIEW_READY_TO_VOTE');\n setLoading(true);\n campaigns\n .getPublicCampaign({ id: campaignId })\n .then(({ data: { data: campaign } }) => {\n setCampaign(campaign);\n\n trackPageViewWithDynamicIDs({\n fbPixelId: campaign.fb_pixel_id,\n gaTrackingId: campaign.ga_tracking_id,\n snapchatPixelId: campaign.snapchat_pixel_id,\n });\n\n if (referral_hash) {\n return users\n .getUserByReferralHash(referral_hash)\n .then(({ data: { data: user } }) => {\n return teams.getTeam({ filters: { campaign_id: campaign.id }, id: user.id });\n })\n .then(({ data: { data: team } }) => setTeam(team))\n .catch(error => {\n // Catch error and make this promise always resolved,\n // so we can render this view at least\n console.error('get team data >', error);\n });\n }\n })\n .then(() => setLoading(false));\n }, [campaignId, referral_hash]);\n\n const handleClickReady = useCallback(() => {\n setScreenType(ScreenTypes.PLEDGE_TO_VOTE);\n }, []);\n\n const handleClickCannotVote = useCallback(() => {\n setScreenType(ScreenTypes.SIGNUP_TO_HELP);\n }, []);\n\n const goToNextStep = useCallback(\n (contact, state_abbrev) => {\n const query = queryString.stringify({\n can_vote: !isSignupToHelpScreen,\n postmates_enabled,\n referral_hash,\n state_abbrev: state_abbrev,\n });\n const url = `/campaigns/${campaign.slug}/contacts/${contact.id}/state_voting_information?${query}`;\n history.push(encodeURI(url));\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [campaign, referral_hash, isSignupToHelpScreen, history],\n );\n\n const handleContactFormSubmit = useCallback(\n (formData, { setSubmitting }) => {\n const { stateAbbv, email, phone, firstName, lastName } = formData;\n if (!stateAbbv || (!contact_id && !h && !email && !phone)) {\n message.error(t('check_registration.email_phone_required'));\n setSubmitting(false);\n return;\n }\n campaigns\n .submitPledge({\n campaign_id: campaign.id,\n contact_id,\n contact_referral_id,\n email,\n first_name: firstName,\n h,\n last_name: lastName,\n opt_in: optIn,\n phone,\n registration_status: isSignupToHelpScreen ? 'Unable to Vote' : 'Ready to Vote',\n state_abbrev: stateAbbv,\n user_referral_id,\n })\n .then(({ data }) => goToNextStep(data, stateAbbv))\n .catch(error => {\n // TODO: Improve error handling\n console.error(error);\n setSubmitting(false);\n message.error(t('errors.default'));\n });\n },\n [\n campaign,\n user_referral_id,\n contact_id,\n contact_referral_id,\n h,\n optIn,\n isSignupToHelpScreen,\n goToNextStep,\n t,\n ],\n );\n\n const termsAndConditions = campaign.terms ? (\n <TermsAndConditions>\n <p>{campaign.terms}</p>\n {campaign.terms_link && (\n <a href={campaign.terms_link} target=\"_blank\" rel=\"noopener noreferrer\">\n {t('check_registration.read_more')}\n </a>\n )}\n </TermsAndConditions>\n ) : (\n <TermsAndConditions>\n <div>\n {t('check_registration.by_proceeding')}\n <a href=\"/outvote/terms_of_service\" target=\"_blank\" rel=\"noopener noreferrer\">\n {t('check_registration.tos')}\n </a>\n {'.'}\n </div>\n </TermsAndConditions>\n );\n\n if (loading) {\n return (\n <div className=\"flex-row justify-content-center mt-4\">\n <Spin indicator={<LoadingOutlined style={{ fontSize: 24 }} spin />} />\n </div>\n );\n }\n\n if (screenType === ScreenTypes.SPLASH) {\n return (\n <VoterRegistrationTemplate\n campaign={campaign}\n team={team}\n postmatesEnabled={campaign.postmates_integration_enabled}\n >\n <SplashWrapper>\n <SplashTitle>{t('pledge_to_vote.splash_title')}</SplashTitle>\n <SplashDescription>\n {t('pledge_to_vote.splash_description', {\n extra: campaign.postmates_integration_enabled\n ? \"You'll get 30 days of Unlimited Free Delivery from Postmates when you get 3 friends to do the same.\"\n : '',\n })}\n </SplashDescription>\n <BigRoundButton onClick={handleClickReady} data-testid=\"already-registered-button\">\n <span\n dangerouslySetInnerHTML={{\n __html: t('pledge_to_vote.splash_ready'),\n }}\n />\n </BigRoundButton>\n <CannotVoteLink onClick={handleClickCannotVote}>\n {t('check_registration.splash.cannot_vote')}\n </CannotVoteLink>\n {termsAndConditions}\n </SplashWrapper>\n </VoterRegistrationTemplate>\n );\n }\n\n const stepCount = 2;\n const title = t('pledge_to_vote.title');\n const instruction = t('pledge_to_vote.description');\n\n return (\n <VoterRegistrationTemplate\n campaign={campaign}\n team={team}\n postmatesEnabled={postmates_enabled && campaign.postmates_integration_enabled}\n stepCount={stepCount}\n currentStep={1}\n title={title}\n instruction={instruction}\n data-testid=\"find-possibilities\"\n >\n <FormContainer>\n <Formik\n ref={formRef}\n initialValues={formInitialValues}\n validationSchema={ContactFormSchema}\n onSubmit={handleContactFormSubmit}\n render={({ isSubmitting, isValid, submitCount }) => (\n <Form>\n <Row gutter={30}>\n {!contact_id && (\n <>\n <Col span={24} md={12}>\n <FormItem name=\"email\">\n <label htmlFor=\"email\">{t('idvoters.labels.email')}</label>\n <Input\n name=\"email\"\n placeholder={t('placeholders.default_email')}\n id=\"email\"\n prefix={<MailOutlined />}\n />\n </FormItem>\n </Col>\n <Col span={24} md={12}>\n <FormItem name=\"phone\">\n <label htmlFor=\"phone\">{t('idvoters.labels.phone')}</label>\n <Input\n name=\"phone\"\n placeholder={'(111) 222 - 3333'}\n id=\"phone\"\n prefix={<PhoneOutlined />}\n />\n </FormItem>\n </Col>\n </>\n )}\n <Col span={24} md={12}>\n <FormItem name=\"firstName\">\n <label htmlFor=\"firstName\">{t('idvoters.labels.firstname')}</label>\n <Input\n name=\"firstName\"\n placeholder={t('idvoters.labels.firstname')}\n id=\"firstName\"\n />\n </FormItem>\n </Col>\n <Col span={24} md={12}>\n <FormItem name=\"lastName\">\n <label htmlFor=\"lastName\">{t('idvoters.labels.lastname')}</label>\n <Input\n name=\"lastName\"\n placeholder={t('idvoters.labels.lastname')}\n id=\"lastName\"\n />\n </FormItem>\n </Col>\n <Col span={24} md={12}>\n <FormItem name=\"stateAbbv\">\n <label htmlFor=\"stateAbbv\">{t('idvoters.labels.state')}</label>\n <Select\n data-testid=\"state-abbv\"\n name=\"stateAbbv\"\n autoComplete={'off'}\n id=\"stateAbbv\"\n placeholder={t('idvoters.placeholders.state')}\n filterOption={(input, option) =>\n option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0\n }\n >\n {states.map(({ value, label }) => (\n <Select.Option key={value} value={value}>\n {label}\n </Select.Option>\n ))}\n </Select>\n </FormItem>\n </Col>\n <Col span={24} md={12}>\n <FormItem name=\"zipCode\">\n <label htmlFor=\"zipCode\">{t('idvoters.labels.zip')}</label>\n <Input name=\"zipCode\" placeholder={t('idvoters.labels.zip')} id=\"zipCode\" />\n </FormItem>\n </Col>\n </Row>\n <ButtonsRow>\n <ImpactiveButton\n type=\"submit\"\n disabled={isSubmitting || (!isValid && submitCount > 0)}\n >\n {t('check_registration.submit')}\n </ImpactiveButton>\n </ButtonsRow>\n </Form>\n )}\n />\n <Checkbox\n style={{ marginTop: 10 }}\n disabled\n name=\"optIn\"\n id=\"optIn\"\n checked={optIn}\n onChange={e => {\n setOptIn(e.target.checked);\n }}\n >\n <span\n style={{ color: '#232322' }}\n dangerouslySetInnerHTML={{\n __html: t('check_registration.agreement', {\n campaign: campaign.name,\n privacy_link: campaign.privacy_link,\n terms_link: campaign.terms_link,\n }),\n }}\n ></span>\n </Checkbox>\n </FormContainer>\n {termsAndConditions}\n </VoterRegistrationTemplate>\n );\n};\n\nPledgeToVote.propTypes = {\n location: PropTypes.shape({\n search: PropTypes.string.isRequired,\n }).isRequired,\n match: PropTypes.shape({\n params: PropTypes.shape({\n campaignId: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n};\n\nexport default PledgeToVote;\n","export const largeBreakpoint = '@media screen and (min-width: 958px)';\nexport const smallBreakpoint = `@media screen and (max-width: 957px)`;\nexport const small800Breakpoint = `@media screen and (max-width: 800px)`;\n","import { useMedia } from '@web/hooks';\n\nfunction useIsMobile() {\n return useMedia('(max-width: 957px)');\n}\n\nexport const useIs800 = () => {\n return useMedia('(max-width: 800px)');\n};\n\nexport default useIsMobile;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport theme from '@web/styles/theme';\n\nconst FanOutLogo = props => {\n const { fill } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={175}\n height={34}\n fill=\"none\"\n viewBox=\"0 0 175 34\"\n {...props}\n >\n <path\n fill={fill}\n fillRule=\"evenodd\"\n d=\"M96.177 31.026a15.98 15.98 0 0 0 5.427 1.521c4.057.39 7.937-.52 11.114-2.616 5.288-3.489 7.853-10.04 6.501-16.608-.667-3.23-2.426-6.291-4.816-8.379-1.945-1.698-4.677-3.043-7.205-3.553C98.622-.344 90.666 3.979 88.212 11.69c-.602 1.892-.704 2.598-.713 5.047 0 1.976.028 2.348.213 3.285 1.019 5.01 3.955 8.833 8.465 11.004Zm6.955-6.412c-1.482 1.986-1.546 2.06-1.991 2.292-.435.223-1.38.232-1.815.019-.352-.177-6.15-6.848-6.474-7.46-.26-.473-.287-1.336-.065-1.782.528-1.048 1.852-1.475 2.797-.9.158.093 1.223 1.272 2.38 2.617 1.158 1.345 2.13 2.44 2.177 2.44.037 0 .518-.584 1.065-1.299 3.473-4.518 9.067-11.05 9.9-11.551.787-.483 1.945-.223 2.593.584.232.288.287.455.315.937.056.9-.12 1.197-1.898 3.183-3.205 3.572-6.465 7.534-8.984 10.92Z\"\n clipRule=\"evenodd\"\n />\n <path\n fill={fill}\n d=\"M129.092 31.852c.981.39 2.473.76 3.51.872 1.797.204 3.797.093 5.473-.306 4.233-1.002 7.576-4.018 8.863-7.98l.091-.272c.07-.21.13-.389.181-.57.289-1.03.292-2.139.315-9.54l.043-11.84h-8.715v9.697c0 8.322 0 9.328-.36 10.181-.049.118-.106.232-.17.362l-.025.053c-.686 1.4-2.029 2.161-3.798 2.161-2.232 0-3.63-1.085-4.176-3.229-.167-.668-.176-1.104-.176-9.964v-9.26h-8.706v10.241c0 8.559 0 9.912.345 11.17.064.236.141.469.232.745l.034.103c1.13 3.423 3.603 6.012 7.039 7.376ZM2.063 2.217h20.005v7.422h-11.3v4.918h8.892v7.33h-8.891V32.37H2.063V2.217Z\"\n />\n <path\n fill={fill}\n fillRule=\"evenodd\"\n d=\"M24.605 17.247c-3.121 8.24-5.686 15.013-5.686 15.059 0 .037 1.963.056 4.37.046l4.372-.027.287-.79.158-.433V31.1c.215-.59.555-1.524.852-2.367l.731-2.023h9.484l1.019 2.812 1.01 2.802 4.37.027c2.408.01 4.372-.009 4.372-.046 0-.046-2.556-6.82-5.687-15.059L38.572 2.263h-8.27l-5.696 14.984Zm9.826-5.103c.047 0 2.455 7.32 2.455 7.45 0 .038-1.103.066-2.455.066s-2.454-.028-2.454-.056c0-.12 2.417-7.46 2.454-7.46Z\"\n clipRule=\"evenodd\"\n />\n <path\n fill={fill}\n d=\"M51.148 2.217h7.094l5.548 7.608c3.047 4.185 5.584 7.608 5.621 7.608.037 0 .074-3.423.074-7.608V2.217H78.1V32.37h-7.086l-5.547-7.608c-3.047-4.184-5.575-7.636-5.622-7.664-.046-.028-.083 3.248-.083 7.608v7.664h-8.613V2.217ZM157.561 9.918V32.37h8.705V9.918h7.687V2.217h-24.172v7.7h7.78Z\"\n />\n </svg>\n );\n};\n\nFanOutLogo.propTypes = {\n fill: PropTypes.string,\n};\n\nFanOutLogo.defaultProps = {\n fill: theme.colors.black,\n};\n\nexport default FanOutLogo;\n","import { useEffect } from 'react';\nimport queryString from 'query-string';\nimport { useLocation } from 'react-router-dom';\n\nimport { track } from '@web/services/analytics';\n\nexport const amplitudeTrack = ({ name, activity, team }) => {\n const { utm_campaign, utm_source, utm_term, utm_content, utm_medium } = queryString.parse(\n window.location.search,\n );\n\n track(name, {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n utm_campaign,\n utm_content,\n utm_medium,\n utm_source,\n utm_term,\n });\n};\n\nexport const useTrackFanOut = ({ name, activity, team }) => {\n const { search } = useLocation();\n const { utm_campaign, utm_source, utm_term, utm_content, utm_medium } = queryString.parse(search);\n\n useEffect(() => {\n track(name, {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n utm_campaign,\n utm_content,\n utm_medium,\n utm_source,\n utm_term,\n });\n }, [name, activity, team, utm_campaign, utm_source, utm_term, utm_content, utm_medium]);\n};\n","import React from 'react';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { bool, object } from 'prop-types';\n\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport ImpactiveButton from '@web/components/ImpactiveButton';\nimport { amplitudeTrack } from '@web/components/FanOut/hooks/useFanOutAmplitude';\n\nconst StyledHref = styled.a`\n :link {\n text-decoration: none;\n }\n`;\n\nconst StyledImpactiveButton = styled(ImpactiveButton)`\n background: ${({ theme }) => theme.colors.transparent};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1rem;\n letter-spacing: 0.03125rem;\n padding: ${({ $isFooter }) => ($isFooter ? '4.5px 13px' : '2px 13px')};\n padding: ${({ $isDrawer }) => $isDrawer && '9px'};\n width: ${({ $isDrawer }) => $isDrawer && '100%'};\n border-radius: 8px;\n\n &&& {\n color: ${({ theme, $isFooter }) => ($isFooter ? theme.colors.white : theme.colors.blue)};\n width: ${({ $isFooter }) => $isFooter && '148px'};\n ${smallBreakpoint} {\n width: ${({ $isFooter }) => $isFooter && 'calc(100vw - 40px)'};\n }\n }\n`;\n\nconst DonateButton = ({ $isFooter, $isDrawer, activity, team }) => {\n const { t } = useTranslation();\n\n return (\n <StyledHref target=\"_blank\" href=\"https://fanout.vote/donate\" rel=\"noopener noreferrer\">\n <StyledImpactiveButton\n $isFooter={$isFooter}\n $isDrawer={$isDrawer}\n secondary\n onClick={() => amplitudeTrack({ activity, name: 'FAN_OUT_OPEN_CLICK_DONATE', team })}\n >\n {t('fan_out.header.donate')}\n </StyledImpactiveButton>\n </StyledHref>\n );\n};\n\nDonateButton.propTypes = {\n $isDrawer: bool,\n $isFooter: bool,\n activity: object,\n team: object,\n};\n\nDonateButton.defaultProps = {\n $isDrawer: false,\n $isFooter: false,\n};\n\nexport default DonateButton;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport { Button as AntdButton } from 'antd';\nimport DotLoader from '@web/components/DotLoader';\nimport { vrDefaultColors } from '@web/styles/theme';\n\nconst variants = {\n blue: css`\n background-color: ${({ theme }) => theme.colors.blue};\n color: ${({ theme }) => theme.colors.white};\n border: 1px solid ${({ theme }) => theme.colors.blue};\n `,\n disabled: css`\n background-color: ${({ theme }) => theme.colors.whiteSmoke};\n border-color: ${({ theme }) => theme.colors.blackL72};\n color: ${({ theme }) => theme.colors.blackL72};\n `,\n fan_out: css`\n background-color: ${({ theme }) => theme.colors.newBlue};\n color: ${({ theme }) => theme.colors.blue};\n border: 1px solid ${({ theme }) => theme.colors.blue};\n border-radius: 8px;\n text-transform: capitalize;\n `,\n link: css`\n background-color: transparent;\n border: none;\n color: ${({ theme }) => theme.colors.blue};\n :hover {\n color: ${({ theme }) => theme.colors.black};\n }\n `,\n outline: css`\n background-color: ${({ theme }) => theme.colors.white};\n color: ${({ theme }) => theme.colors.blue};\n border: 1px solid ${({ theme }) => theme.colors.blue};\n `,\n};\n\nconst StyledButton = styled(AntdButton)`\n &&& {\n border-radius: ${({ $isFanOut }) => ($isFanOut ? '8px' : '6px')};\n box-shadow: none;\n height: ${({ $isFanOut }) => ($isFanOut ? '64px' : '48px')};\n font-weight: 700;\n font-size: 1rem;\n padding-bottom: 4px;\n padding-top: 4px;\n text-align: center;\n transition: color 150ms ease-out, opacity 150ms ease-out;\n text-transform: ${({ $isFanOut }) => $isFanOut && 'capitalize'};\n width: 100%;\n :hover {\n opacity: 0.5;\n }\n &&& {\n ${({ $variant, $originalVariant, $customSettings }) =>\n $customSettings\n ? css`\n background-color: ${$originalVariant === 'link'\n ? 'unset'\n : $customSettings.button_color ?? vrDefaultColors.buttonColor};\n\n color: ${$originalVariant === 'link'\n ? `${$customSettings.font_color ?? vrDefaultColors.fontColor}BF`\n : $customSettings.background_color ?? vrDefaultColors.backgroundColor};\n border-color: ${$originalVariant === 'link'\n ? 'unset'\n : $customSettings.background_color ?? vrDefaultColors.backgroundColor};\n border-width: ${$originalVariant === 'link' ? 0 : 1};\n svg path {\n stroke: ${$originalVariant === 'link'\n ? `${$customSettings.font_color ?? vrDefaultColors.fontColor}BF`\n : $customSettings.background_color ?? vrDefaultColors.backgroundColor};\n }\n `\n : $variant}\n }\n :disabled {\n ${variants.disabled}\n }\n }\n`;\n\nfunction Button({ children, loading, variant, isFanOut, customVariant, ...rest }) {\n const thisVariant = variants[variant] || 'blue';\n\n return (\n <StyledButton\n $customSettings={customVariant}\n $variant={thisVariant}\n $originalVariant={variant}\n $isFanOut={isFanOut}\n {...rest}\n >\n {loading ? <DotLoader color={isFanOut && 'blue'} /> : children}\n </StyledButton>\n );\n}\n\nButton.propTypes = {\n children: PropTypes.any,\n customVariant: PropTypes.shape({\n button_color: PropTypes.string,\n field_outline_color: PropTypes.string,\n font_color: PropTypes.string,\n }),\n isFanOut: PropTypes.bool,\n loading: PropTypes.bool,\n variant: PropTypes.oneOf(['blue', 'disabled', 'link', 'outline', 'fan_out']),\n};\n\nButton.defaultProps = {\n children: null,\n loading: false,\n variant: 'blue',\n};\n\nexport default Button;\n","import { string } from 'prop-types';\nimport React from 'react';\n\nconst Drawer = props => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" {...props}>\n <path\n stroke=\"#23293E\"\n strokeLinecap=\"round\"\n strokeMiterlimit={10}\n strokeWidth={1.5}\n d=\"M4.125 7.125h15.75M4.125 12h15.75m-15.75 4.875h15.75\"\n />\n </svg>\n );\n};\n\nDrawer.propTypes = {\n fill: string,\n};\n\nDrawer.defaultProps = {};\n\nexport default Drawer;\n","import React from 'react';\n\nconst CloseDrawer = props => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={36} height={36} fill=\"none\" {...props}>\n <rect width={36} height={36} fill=\"#23293E\" fillOpacity={0.06} rx={18} />\n <path\n fill=\"#707070\"\n fillRule=\"evenodd\"\n d=\"m18.007 19.794 5.42 5.42 1.787-1.785-5.421-5.421 5.42-5.421-1.785-1.786-5.421 5.42-5.421-5.42-1.786 1.786 5.42 5.42-5.42 5.422 1.786 1.786 5.42-5.421Z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n};\n\nCloseDrawer.propTypes = {};\n\nCloseDrawer.defaultProps = {};\n\nexport default CloseDrawer;\n","import React, { useCallback, useState } from 'react';\nimport styled, { createGlobalStyle } from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Link, useLocation } from 'react-router-dom';\nimport { Drawer } from 'antd';\n\nimport Button from '@web/components/VoterRegistration/newComponents/Button';\nimport DrawerIcon from '@web/components/FanOut/components/icons/Drawer';\nimport FanOutLogoIcon from '@web/components/FanOut/components/icons/FanOutLogo';\nimport CloseDrawerIcon from '@web/components/FanOut/components/icons/CloseDrawer';\nimport DonateButton from '@web/components/FanOut/components/DonateButton';\n\nconst DrawerAntdStyles = createGlobalStyle`\n &&& {\n .ant-drawer-body {\n padding: 0px !important;\n width: 100vw;\n margin: 0;\n width: 100%;\n height: 100%;\n top: 0;\n overflow: hidden;\n display: flex;\n flex: 1;\n }\n }\n`;\n\nconst DrawerContent = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n flex: 1;\n padding: 56px 48px 73px 48px;\n background: ${({ theme }) => theme.colors.white};\n`;\n\nconst FanOutLogo = styled(FanOutLogoIcon)`\n width: 176px;\n height: 33px;\n`;\n\nconst TopSection = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nconst CloseIconWrapper = styled.a`\n :hover,\n :focus,\n .active {\n opacity: 0.5;\n }\n`;\n\nconst StyledButton = styled(Button)`\n &&& {\n padding: 0px;\n height: 40px;\n width: 40px;\n background: ${({ theme }) => theme.colors.white};\n color: ${({ theme }) => theme.colors.white};\n border: 1px solid #d0d5dd;\n }\n`;\n\nconst LinksContainer = styled.div`\n display: inline-flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 40px;\n margin-bottom: 10%;\n`;\n\nconst StyledLink = styled(Link)`\n display: flex;\n align-items: center;\n padding: 5px 0px;\n transition: all 0.3s ease-in-out;\n\n outline: 0;\n color: ${({ theme }) => theme.colors.blue};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1.5rem;\n line-height: 2rem; /* 133.333% */\n font-weight: ${({ $isActive }) => ($isActive ? 600 : 400)};\n border-bottom: ${({ $isActive }) => $isActive && '2.748px solid #90b9f6'};\n\n cursor: pointer;\n\n :hover,\n .active {\n color: ${({ theme }) => theme.colors.newBlue};\n text-decoration: none;\n text-decoration-color: unset;\n }\n`;\n\nconst DrawerComponent = ({ fanOutCookies, activity, team }) => {\n const { search, state } = useLocation();\n const { t } = useTranslation();\n const [openDrawer, setOpenDrawer] = useState(false);\n\n const onOpen = useCallback(() => {\n setOpenDrawer(true);\n }, []);\n\n const onClose = useCallback(() => {\n setOpenDrawer(false);\n }, []);\n\n return (\n <>\n <StyledButton onClick={onOpen} variant=\"outline\">\n <DrawerIcon />\n </StyledButton>\n <DrawerAntdStyles />\n <Drawer\n visible={openDrawer}\n width={'100%'}\n placement={'right'}\n onClose={onClose}\n closable={false}\n >\n <>\n <DrawerContent>\n <TopSection>\n <StyledLink onClick={onClose} to={{ search, state: '' }}>\n <FanOutLogo />\n </StyledLink>\n <CloseIconWrapper>\n <CloseDrawerIcon onClick={onClose} />\n </CloseIconWrapper>\n </TopSection>\n <LinksContainer>\n {fanOutCookies && (\n <StyledLink\n onClick={onClose}\n $isActive={state === 'activity'}\n to={{ search, state: 'activity' }}\n >\n {t('fan_out.header.my_activity')}\n </StyledLink>\n )}\n <StyledLink\n onClick={onClose}\n $isActive={state === 'sweepstakes'}\n to={{ search, state: 'sweepstakes' }}\n >\n {t('fan_out.header.all_sweepstakes')}\n </StyledLink>\n <StyledLink\n onClick={onClose}\n $isActive={state === 'terms'}\n to={{ search, state: 'terms' }}\n >\n {t('fan_out.header.terms')}\n </StyledLink>\n </LinksContainer>\n <DonateButton $isDrawer team={team} activity={activity} />\n </DrawerContent>\n </>\n </Drawer>\n </>\n );\n};\n\nDrawerComponent.propTypes = {\n activity: PropTypes.object,\n fanOutCookies: PropTypes.bool,\n team: PropTypes.object,\n};\n\nDrawerComponent.defaultProps = {};\n\nexport default DrawerComponent;\n","import React, { useMemo } from 'react';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation, Link } from 'react-router-dom';\nimport { useCookies } from 'react-cookie';\nimport PropTypes from 'prop-types';\n\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport useIsMobile from '@web/components/VoterRegistration/hooks/useIsMobile';\nimport FanOutLogoIcon from '@web/components/FanOut/components/icons/FanOutLogo';\nimport DonateButton from '@web/components/FanOut/components/DonateButton';\nimport Drawer from '@web/components/FanOut/components/Drawer';\n\nconst StyledHeader = styled.header`\n top: 0;\n z-index: 99;\n position: sticky;\n width: 100%;\n display: flex;\n background: ${({ theme }) => theme.colors.white};\n align-items: center;\n justify-content: space-between;\n height: 56px;\n padding: 0 40px;\n box-shadow: -3px 4px 34px 0px rgba(0, 0, 0, 0.05);\n\n ${smallBreakpoint} {\n padding: 0 20px;\n }\n`;\n\nconst FanOutLogo = styled(FanOutLogoIcon)`\n width: 107px;\n height: 20px;\n`;\n\nconst LinksContainer = styled.div`\n display: flex;\n gap: 56px;\n`;\n\nconst StyledLink = styled(Link)`\n display: flex;\n align-items: center;\n transition: all 0.3s ease-in-out;\n\n outline: 0;\n color: ${({ theme }) => theme.colors.blue};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1.125rem;\n font-weight: 400;\n border-bottom: ${({ $isActive }) => ($isActive ? '2px solid #90b9f6' : 'none')};\n cursor: pointer;\n\n :hover,\n .active {\n color: ${({ theme }) => theme.colors.newBlue};\n text-decoration: none;\n text-decoration-color: unset;\n }\n`;\n\nconst Header = ({ activity, team }) => {\n const { search, state } = useLocation();\n const { t } = useTranslation();\n const isMobile = useIsMobile();\n const [cookies] = useCookies();\n\n const fanOutCookies = useMemo(() => !!cookies?.fan_out_auth, [cookies?.fan_out_auth]);\n\n return (\n <>\n <StyledHeader>\n <StyledLink to={{ search, state: '' }}>\n <FanOutLogo />\n </StyledLink>\n {isMobile ? (\n <Drawer fanOutCookies={fanOutCookies} activity={activity} team={team} />\n ) : (\n <>\n <LinksContainer>\n {fanOutCookies && (\n <StyledLink $isActive={state === 'activity'} to={{ search, state: 'activity' }}>\n {t('fan_out.header.my_activity')}\n </StyledLink>\n )}\n <StyledLink $isActive={state === 'sweepstakes'} to={{ search, state: 'sweepstakes' }}>\n {t('fan_out.header.all_sweepstakes')}\n </StyledLink>\n <StyledLink $isActive={state === 'terms'} to={{ search, state: 'terms' }}>\n {t('fan_out.header.terms')}\n </StyledLink>\n </LinksContainer>\n <DonateButton activity={activity} team={team} />\n </>\n )}\n </StyledHeader>\n </>\n );\n};\n\nHeader.propTypes = {\n activity: PropTypes.object,\n team: PropTypes.object,\n};\n\nHeader.defaultProps = {};\n\nexport default Header;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nconst Wrapper = styled.div`\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n gap: 8px;\n`;\n\nconst HeroImage = styled.img`\n object-fit: scale-down;\n border-radius: 16px;\n max-width: 740px;\n max-height: 740px;\n width: 100%;\n overflow: hidden;\n\n border-radius: 12px;\n border: 2px solid ${({ theme }) => theme.colors.blue};\n background: ${({ theme }) => theme.colors.white};\n box-shadow: 4px 4px 0px 0px ${({ theme }) => theme.colors.blue};\n`;\n\nconst Title = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-size: 3.5rem;\n font-weight: 600;\n line-height: 4rem; /* 114.286% */\n`;\n\nconst HeroImages = ({ activity }) => {\n return (\n <Wrapper>\n {activity.hero_img_url ? (\n <HeroImage alt={activity.title} src={activity.hero_img_url} />\n ) : (\n <Title>{activity.title}</Title>\n )}\n </Wrapper>\n );\n};\n\nHeroImages.propTypes = {\n activity: PropTypes.object.isRequired,\n team: PropTypes.object,\n};\n\nHeroImages.defaultProps = {};\n\nexport default HeroImages;\n","import { bool } from 'prop-types';\nimport React from 'react';\n\nconst Ticket = ({ isFriendLookUp, isMyActivity, ...props }) => {\n return isFriendLookUp ? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={50}\n height={50}\n viewBox=\"0 0 50 50\"\n fill=\"none\"\n {...props}\n >\n <g clipPath=\"url(#clip0_290_27498)\">\n <path\n d=\"M7.3685 31.0126L20.0495 43.6936C20.2652 43.9093 20.6169 43.9112 20.8345 43.6936L43.3638 21.1642C43.5795 20.9486 43.5814 20.5969 43.3638 20.3793L30.6828 7.69827C30.4671 7.48261 30.1155 7.48067 29.8979 7.69827L7.3685 30.2277C7.1509 30.4453 7.15284 30.7969 7.3685 31.0126ZM35.6993 27.088C35.3107 28.8638 33.0123 28.8657 32.6257 27.088C32.5985 26.9675 32.5985 26.8432 32.6257 26.7227C33.0142 24.947 35.3126 24.945 35.6993 26.7227C35.7245 26.8451 35.7245 26.9695 35.6993 27.088ZM32.4294 23.8182C32.0409 25.5939 29.7425 25.5959 29.3558 23.8182C29.3286 23.6977 29.3286 23.5734 29.3558 23.4529C29.7444 21.6771 32.0428 21.6752 32.4294 23.4529C32.4527 23.5734 32.4547 23.6997 32.4294 23.8182ZM28.9653 20.3541C28.5767 22.1298 26.2783 22.1318 25.8917 20.3541C25.8645 20.2336 25.8645 20.1093 25.8917 19.9888C26.2803 18.213 28.5787 18.2111 28.9653 19.9888C28.9886 20.1093 28.9906 20.2355 28.9653 20.3541ZM25.6955 17.0842C25.3069 18.86 23.0085 18.8619 22.6219 17.0842C22.5947 16.9638 22.5947 16.8394 22.6219 16.719C23.0105 14.9432 25.3089 14.9412 25.6955 16.719C25.7188 16.8394 25.7207 16.9657 25.6955 17.0842Z\"\n fill=\"#A65F3E\"\n />\n <path\n d=\"M6.78754 30.4286L19.4686 43.1096C19.6842 43.3253 20.0359 43.3272 20.2535 43.1096L42.7829 20.5802C42.9985 20.3646 43.0005 20.0129 42.7829 19.7953L30.1018 7.11429C29.8862 6.89863 29.5345 6.89669 29.3169 7.11429L6.78754 29.6437C6.56994 29.8613 6.57188 30.2129 6.78754 30.4286ZM35.1183 26.504C34.7297 28.2798 32.4313 28.2817 32.0447 26.504C32.0175 26.3836 32.0175 26.2592 32.0447 26.1388C32.4333 24.363 34.7317 24.361 35.1183 26.1388C35.1436 26.2612 35.1436 26.3855 35.1183 26.504ZM31.8485 23.2342C31.4599 25.01 29.1615 25.0119 28.7749 23.2342C28.7477 23.1137 28.7477 22.9894 28.7749 22.8689C29.1634 21.0932 31.4618 21.0912 31.8485 22.8689C31.8718 22.9894 31.8737 23.1157 31.8485 23.2342ZM28.3844 19.7701C27.9958 21.5458 25.6974 21.5478 25.3108 19.7701C25.2836 19.6496 25.2836 19.5253 25.3107 19.4048C25.6993 17.629 27.9977 17.6271 28.3844 19.4048C28.4077 19.5253 28.4096 19.6516 28.3844 19.7701ZM25.1145 16.5002C24.726 18.276 22.4275 18.278 22.0409 16.5002C22.0137 16.3798 22.0137 16.2554 22.0409 16.135C22.4295 14.3592 24.7279 14.3573 25.1145 16.135C25.1378 16.2554 25.1398 16.3817 25.1145 16.5002Z\"\n fill=\"#FFD54F\"\n />\n <path\n opacity={0.8}\n d=\"M13.0933 32.1123L19.4193 25.7864M16.1009 35.1199L20.5831 30.6377M23.6839 27.5369L24.6242 26.5965\"\n stroke=\"#4E342E\"\n strokeWidth={1.95115}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n />\n <path\n opacity={0.5}\n d=\"M18.5201 38.1211L19.103 37.5382L20.9098 39.3451L20.327 39.928L18.5201 38.1211ZM23.4064 33.2348L23.9893 32.6519L25.7961 34.4588L25.2133 35.0417L23.4064 33.2348ZM24.4633 32.1779L25.0462 31.595L26.853 33.4019L26.2702 33.9847L24.4633 32.1779ZM19.6683 36.9729L20.8341 35.8071L22.6409 37.614L21.4752 38.7797L19.6683 36.9729ZM25.5338 31.1074L26.8938 29.7474L28.7007 31.5542L27.3407 32.9142L25.5338 31.1074ZM21.3528 35.2884L22.9071 33.7341L24.7139 35.541L23.1597 37.0953L21.3528 35.2884Z\"\n fill=\"#6D4C41\"\n />\n <path\n d=\"M29.4918 6.93943L6.61074 29.8205C6.49028 29.9409 6.49222 30.1333 6.61074 30.2518L8.54582 32.1869L23.0104 17.7223C22.5461 17.5377 22.1536 17.1142 22.0273 16.4439C22.0098 16.3526 22.0098 16.2554 22.0273 16.1641C22.3168 14.7361 23.8283 14.4292 24.6424 15.2432C24.792 15.3928 24.9047 15.5677 24.9766 15.7522L31.8562 8.87257L29.9212 6.93749C29.8065 6.81897 29.6122 6.81898 29.4918 6.93943Z\"\n fill=\"#E2A610\"\n />\n <path\n opacity={0.5}\n d=\"M28.7132 15.5771L32.2551 12.0353L35.4977 15.2779L31.9559 18.8198L28.7132 15.5771Z\"\n fill=\"#6D4C41\"\n />\n <path\n opacity={0.8}\n d=\"M33.8877 20.2979L35.6499 18.5357M35.1156 21.5257L37.89 18.7513\"\n stroke=\"#4E342E\"\n strokeWidth={0.731681}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_290_27498\">\n <rect\n width={35.1695}\n height={35.1695}\n fill=\"white\"\n transform=\"translate(0.25264 25.123) rotate(-45)\"\n />\n </clipPath>\n </defs>\n </svg>\n ) : isMyActivity ? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={68}\n height={68}\n viewBox=\"0 0 68 68\"\n fill=\"none\"\n {...props}\n >\n <g clipPath=\"url(#clip0_414_5631)\">\n <path\n d=\"M9.90917 41.8833L27.0587 59.0328C27.3503 59.3245 27.8259 59.3271 28.1202 59.0328L58.5884 28.5646C58.88 28.273 58.8827 27.7974 58.5884 27.5031L41.4389 10.3536C41.1472 10.0619 40.6716 10.0593 40.3774 10.3536L9.90917 40.8218C9.61489 41.1161 9.61752 41.5916 9.90917 41.8833ZM48.223 36.5758C47.6975 38.9773 44.5892 38.9799 44.0663 36.5758C44.0296 36.4129 44.0296 36.2447 44.0663 36.0818C44.5918 33.6803 47.7001 33.6777 48.223 36.0818C48.2572 36.2474 48.2572 36.4155 48.223 36.5758ZM43.801 32.1537C43.2755 34.5553 40.1672 34.5579 39.6443 32.1537C39.6075 31.9908 39.6075 31.8227 39.6443 31.6598C40.1698 29.2583 43.2781 29.2556 43.801 31.6598C43.8325 31.8227 43.8351 31.9935 43.801 32.1537ZM39.1162 27.469C38.5907 29.8705 35.4824 29.8731 34.9595 27.469C34.9227 27.3061 34.9227 27.1379 34.9595 26.975C35.485 24.5735 38.5933 24.5709 39.1162 26.975C39.1477 27.1379 39.1503 27.3087 39.1162 27.469ZM34.6941 23.0469C34.1686 25.4484 31.0603 25.4511 30.5375 23.0469C30.5007 22.884 30.5007 22.7159 30.5375 22.553C31.063 20.1514 34.1713 20.1488 34.6941 22.553C34.7257 22.7159 34.7283 22.8866 34.6941 23.0469Z\"\n fill=\"#A65F3E\"\n />\n <path\n d=\"M9.12352 41.0932L26.2731 58.2428C26.5647 58.5344 27.0403 58.5371 27.3346 58.2428L57.8028 27.7746C58.0944 27.4829 58.097 27.0074 57.8028 26.7131L40.6532 9.56355C40.3616 9.2719 39.886 9.26927 39.5917 9.56355L9.12352 40.0318C8.82925 40.326 8.83187 40.8016 9.12352 41.0932ZM47.4374 35.7858C46.9119 38.1873 43.8036 38.1899 43.2807 35.7858C43.2439 35.6228 43.2439 35.4547 43.2807 35.2918C43.8062 32.8903 46.9145 32.8876 47.4374 35.2918C47.4715 35.4573 47.4715 35.6255 47.4374 35.7858ZM43.0153 31.3637C42.4898 33.7652 39.3815 33.7678 38.8587 31.3637C38.8219 31.2008 38.8219 31.0326 38.8587 30.8697C39.3842 28.4682 42.4925 28.4656 43.0153 30.8697C43.0469 31.0326 43.0495 31.2034 43.0153 31.3637ZM38.3305 26.6789C37.805 29.0804 34.6967 29.0831 34.1739 26.6789C34.1371 26.516 34.1371 26.3479 34.1739 26.185C34.6994 23.7834 37.8077 23.7808 38.3305 26.185C38.3621 26.3479 38.3647 26.5186 38.3305 26.6789ZM33.9085 22.2569C33.383 24.6584 30.2747 24.661 29.7518 22.2569C29.715 22.094 29.715 21.9258 29.7518 21.7629C30.2773 19.3614 33.3856 19.3588 33.9085 21.7629C33.94 21.9258 33.9427 22.0966 33.9085 22.2569Z\"\n fill=\"#FFD54F\"\n />\n <path\n opacity={0.8}\n d=\"M17.6509 43.3691L26.2059 34.8141M21.7182 47.4365L27.7798 41.3749M31.9732 37.1814L33.2449 35.9097\"\n stroke=\"#4E342E\"\n strokeWidth={3.07847}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n />\n <path\n opacity={0.5}\n d=\"M24.9888 51.4951L25.777 50.7069L28.2206 53.1504L27.4323 53.9387L24.9888 51.4951ZM31.5969 44.887L32.3851 44.0988L34.8287 46.5423L34.0404 47.3306L31.5969 44.887ZM33.0262 43.4577L33.8145 42.6694L36.258 45.113L35.4698 45.9012L33.0262 43.4577ZM26.5416 49.9423L28.1181 48.3658L30.5616 50.8093L28.9852 52.3858L26.5416 49.9423ZM34.474 42.0099L36.3132 40.1707L38.7567 42.6143L36.9175 44.4535L34.474 42.0099ZM28.8196 47.6643L30.9216 45.5623L33.3652 48.0058L31.2632 50.1078L28.8196 47.6643Z\"\n fill=\"#6D4C41\"\n />\n <path\n d=\"M39.8282 9.32708L8.88442 40.2709C8.72152 40.4338 8.72415 40.6939 8.88442 40.8541L11.5014 43.4711L31.0629 23.9096C30.435 23.66 29.9042 23.0872 29.7334 22.1807C29.7098 22.0572 29.7098 21.9258 29.7334 21.8023C30.1249 19.8711 32.1691 19.456 33.27 20.5569C33.4723 20.7592 33.6247 20.9957 33.7219 21.2453L43.0258 11.9414L40.4089 9.32445C40.2538 9.16418 39.9911 9.16418 39.8282 9.32708Z\"\n fill=\"#E2A610\"\n />\n <path\n opacity={0.5}\n d=\"M38.7764 21.0098L43.5663 16.2199L47.9515 20.6051L43.1616 25.395L38.7764 21.0098Z\"\n fill=\"#6D4C41\"\n />\n <path\n opacity={0.8}\n d=\"M45.7729 27.3926L48.1561 25.0095M47.4335 29.0531L51.1855 25.3011\"\n stroke=\"#4E342E\"\n strokeWidth={1.15443}\n strokeMiterlimit={10}\n strokeLinecap=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_414_5631\">\n <rect\n width={47.5624}\n height={47.5624}\n fill=\"white\"\n transform=\"translate(0.286133 33.918) rotate(-45)\"\n />\n </clipPath>\n </defs>\n </svg>\n ) : (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={56}\n height={56}\n viewBox=\"0 0 56 56\"\n fill=\"none\"\n {...props}\n >\n <g clipPath=\"url(#a)\">\n <path\n fill=\"#A65F3E\"\n d=\"m8.142 34.509 14.143 14.143a.62.62 0 0 0 .875 0l25.127-25.127a.62.62 0 0 0 0-.875L34.144 8.507a.62.62 0 0 0-.876 0L8.142 33.634a.62.62 0 0 0 0 .875Zm31.597-4.377c-.434 1.98-2.997 1.983-3.428 0a.921.921 0 0 1 0-.407c.433-1.98 2.996-1.983 3.428 0a.995.995 0 0 1 0 .407Zm-3.647-3.647c-.434 1.98-2.997 1.983-3.428 0a.92.92 0 0 1 0-.407c.433-1.98 2.996-1.983 3.428 0a1.03 1.03 0 0 1 0 .407Zm-3.864-3.863c-.433 1.98-2.997 1.982-3.428 0a.924.924 0 0 1 0-.408c.434-1.98 2.997-1.982 3.428 0 .026.135.028.276 0 .408Zm-3.647-3.647c-.433 1.98-2.996 1.983-3.427 0a.921.921 0 0 1 0-.407c.433-1.98 2.996-1.983 3.427 0 .027.134.029.275 0 .407Z\"\n />\n <path\n fill=\"#FFD54F\"\n d=\"M7.492 33.859 21.635 48a.62.62 0 0 0 .876 0l25.126-25.126a.62.62 0 0 0 0-.875L33.494 7.857a.62.62 0 0 0-.875 0L7.492 32.983a.62.62 0 0 0 0 .876Zm31.597-4.377c-.433 1.98-2.997 1.982-3.428 0a.924.924 0 0 1 0-.408c.433-1.98 2.997-1.982 3.428 0a.995.995 0 0 1 0 .408Zm-3.647-3.647c-.433 1.98-2.996 1.982-3.428 0a.92.92 0 0 1 0-.408c.434-1.98 2.997-1.982 3.428 0a1.03 1.03 0 0 1 0 .408ZM31.58 21.97c-.434 1.98-2.997 1.983-3.428 0a.924.924 0 0 1 0-.407c.433-1.98 2.997-1.983 3.428 0a1.03 1.03 0 0 1 0 .407Zm-3.647-3.646c-.433 1.98-2.997 1.982-3.428 0a.924.924 0 0 1 0-.408c.433-1.98 2.997-1.982 3.428 0 .026.135.028.275 0 .408Z\"\n />\n <path\n stroke=\"#4E342E\"\n strokeLinecap=\"round\"\n strokeMiterlimit={10}\n strokeWidth={3}\n d=\"m14.525 35.735 7.056-7.055M17.88 39.09l4.998-5m3.459-3.458 1.049-1.048\"\n opacity={0.8}\n />\n <path\n fill=\"#6D4C41\"\n d=\"m20.577 42.438.65-.65 2.015 2.015-.65.65-2.015-2.016Zm5.45-5.45.65-.65 2.015 2.015-.65.65-2.015-2.015Zm1.178-1.179.65-.65 2.016 2.015-.65.65-2.015-2.015Zm-5.347 5.348 1.3-1.3 2.015 2.015-1.3 1.3-2.015-2.015Zm6.541-6.542 1.517-1.517 2.015 2.016-1.517 1.516-2.015-2.015Zm-4.663 4.663 1.734-1.733 2.015 2.015-1.733 1.733-2.016-2.015Z\"\n opacity={0.5}\n />\n <path\n fill=\"#E2A610\"\n d=\"M32.814 7.662 7.295 33.18a.34.34 0 0 0 0 .481l2.158 2.159 16.132-16.133c-.518-.205-.955-.678-1.096-1.425a.84.84 0 0 1 0-.312c.323-1.593 2.009-1.935 2.916-1.027.167.167.293.362.373.567l7.673-7.672-2.158-2.159a.337.337 0 0 0-.48.003Z\"\n />\n <path\n fill=\"#6D4C41\"\n d=\"m31.947 17.296 3.95-3.95 3.617 3.616-3.95 3.95-3.617-3.616Z\"\n opacity={0.5}\n />\n <path\n stroke=\"#4E342E\"\n strokeLinecap=\"round\"\n strokeMiterlimit={10}\n strokeWidth={1.125}\n d=\"m37.717 22.559 1.965-1.966m-.596 3.335 3.095-3.094\"\n opacity={0.8}\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M.205 27.941 27.941.206 55.676 27.94 27.941 55.677z\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nTicket.propTypes = {\n isFriendLookUp: bool,\n isMyActivity: bool,\n};\n\nTicket.defaultProps = {\n isFriendLookUp: false,\n isMyActivity: false,\n};\n\nexport default Ticket;\n","import { string } from 'prop-types';\nimport React from 'react';\n\nimport theme from '@web/styles/theme';\n\nconst Copy = props => {\n const { fill } = props;\n\n return (\n <div>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} fill=\"none\" {...props}>\n <path\n fill={fill}\n d=\"M2.667 2h10.666a.667.667 0 0 1 .667.667V6h3.333a.667.667 0 0 1 .667.667v10.666a.666.666 0 0 1-.667.667H6.667A.666.666 0 0 1 6 17.333V14H2.667A.666.666 0 0 1 2 13.333V2.667A.667.667 0 0 1 2.667 2Zm4.666 14.667h9.334V7.333H7.333v9.334Zm-4-4H6v-6A.667.667 0 0 1 6.667 6h6V3.333H3.333v9.334Z\"\n />\n </svg>\n </div>\n );\n};\n\nCopy.propTypes = {\n fill: string,\n};\n\nCopy.defaultProps = {\n fill: theme.colors.trueBlack,\n};\n\nexport default Copy;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Share({ fill, ...props }) {\n return (\n <svg viewBox=\"0 0 13 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n opacity=\"0.851\"\n d=\"M10.2334 12.0555C9.76669 12.0555 9.45558 11.6666 9.45558 11.2777C9.45558 10.8888 9.84447 10.4999 10.2334 10.4999C10.6222 10.4999 11.0111 10.8888 11.0111 11.2777C11.0111 11.6666 10.7 12.0555 10.2334 12.0555ZM3.38891 8.39991C2.61114 8.39991 1.98891 7.77769 1.98891 6.99991C1.98891 6.22214 2.61114 5.59991 3.38891 5.59991C4.16669 5.59991 4.78891 6.22214 4.78891 6.99991C4.78891 7.77769 4.16669 8.39991 3.38891 8.39991ZM10.2334 1.94436C10.7 1.94436 11.0111 2.33325 11.0111 2.72214C11.0111 3.1888 10.6222 3.49991 10.2334 3.49991C9.84447 3.49991 9.45558 3.11102 9.45558 2.72214C9.45558 2.33325 9.76669 1.94436 10.2334 1.94436ZM10.2334 9.41102C9.76669 9.41102 9.3778 9.56658 9.06669 9.79991L5.80002 7.46658C5.8778 7.15547 5.8778 6.84436 5.80002 6.53325L9.06669 4.19991C9.3778 4.43325 9.76669 4.5888 10.2334 4.5888C11.2445 4.5888 12.1 3.73325 12.1 2.72214C12.1 1.71102 11.2445 0.855469 10.2334 0.855469C9.22225 0.855469 8.36669 1.71102 8.36669 2.72214C8.36669 2.87769 8.36669 3.11102 8.44447 3.26658L5.33336 5.52214C4.94447 4.89991 4.16669 4.51102 3.38891 4.51102C1.98891 4.51102 0.900024 5.59991 0.900024 6.99991C0.900024 8.39991 1.98891 9.4888 3.38891 9.4888C4.24447 9.4888 4.94447 9.09991 5.41114 8.47769L8.52225 10.7332C8.44447 10.8888 8.44447 11.0444 8.44447 11.2777C8.44447 12.2888 9.30002 13.1444 10.3111 13.1444C11.3222 13.1444 12.1778 12.2888 12.1778 11.2777C12.1 10.1888 11.3222 9.41102 10.2334 9.41102Z\"\n fill={fill || 'white'}\n />\n </svg>\n );\n}\n\nShare.propTypes = {\n fill: PropTypes.string,\n height: PropTypes.number,\n};\n\nShare.defaultProps = {\n height: 14,\n};\n\nexport default Share;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Entries = ({ fullColor, fill, ...props }) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"32\"\n height=\"32\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n {...props}\n >\n <g opacity={fullColor ? 1 : 0.2} clipPath=\"url(#clip0_513_1826)\">\n <g filter=\"url(#filter0_d_513_1826)\">\n <path\n d=\"M20.7733 22.4007L16 19.334L11.2266 22.4007L12.6666 16.9073L8.27996 13.334L13.9466 12.9873L16 7.73398L18.0533 12.9873L23.72 13.334L19.3333 16.9073M26.6666 16.0007C26.6666 15.2934 26.9476 14.6151 27.4477 14.115C27.9478 13.6149 28.6261 13.334 29.3333 13.334V8.00065C29.3333 7.29341 29.0523 6.61513 28.5522 6.11503C28.0521 5.61494 27.3739 5.33398 26.6666 5.33398H5.33329C4.62605 5.33398 3.94777 5.61494 3.44767 6.11503C2.94758 6.61513 2.66663 7.29341 2.66663 8.00065V13.334C3.37387 13.334 4.05215 13.6149 4.55224 14.115C5.05234 14.6151 5.33329 15.2934 5.33329 16.0007C5.33329 16.7079 5.05234 17.3862 4.55224 17.8863C4.05215 18.3864 3.37387 18.6673 2.66663 18.6673V24.0007C2.66663 24.7079 2.94758 25.3862 3.44767 25.8863C3.94777 26.3864 4.62605 26.6673 5.33329 26.6673H26.6666C27.3739 26.6673 28.0521 26.3864 28.5522 25.8863C29.0523 25.3862 29.3333 24.7079 29.3333 24.0007V18.6673C28.6261 18.6673 27.9478 18.3864 27.4477 17.8863C26.9476 17.3862 26.6666 16.7079 26.6666 16.0007Z\"\n fill={fill || '#393E5B'}\n />\n </g>\n </g>\n <defs>\n <filter\n id=\"filter0_d_513_1826\"\n x=\"-8.33337\"\n y=\"-3.66602\"\n width=\"50.6666\"\n height=\"45.334\"\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dx=\"1\" dy=\"3\" />\n <feGaussianBlur stdDeviation=\"6\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_513_1826\" />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect1_dropShadow_513_1826\"\n result=\"shape\"\n />\n </filter>\n <clipPath id=\"clip0_513_1826\">\n <rect width=\"32\" height=\"32\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nEntries.propTypes = {\n fill: PropTypes.string,\n fullColor: PropTypes.bool,\n};\n\nEntries.defaultProps = {};\n\nexport default Entries;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Recruits = ({ fullColor, fill, ...props }) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"33\"\n height=\"32\"\n viewBox=\"0 0 33 32\"\n fill=\"none\"\n {...props}\n >\n <g opacity={fullColor ? 1 : 0.2} clipPath=\"url(#clip0_513_1838)\">\n <g filter=\"url(#filter0_d_513_1838)\">\n <path\n d=\"M27.8753 21.7928C26.447 20.2453 24.7137 19.0102 22.7846 18.1655C20.8555 17.3208 18.7723 16.8848 16.6664 16.8848C14.5605 16.8848 12.4773 17.3208 10.5482 18.1655C8.61912 19.0102 6.88582 20.2453 5.45751 21.7928C5.23699 22.0367 5.11363 22.3529 5.11084 22.6817V28.015C5.11551 28.3656 5.25805 28.7002 5.50759 28.9464C5.75714 29.1926 6.09361 29.3306 6.44417 29.3306H26.8886C27.2422 29.3306 27.5814 29.1901 27.8314 28.9401C28.0815 28.69 28.222 28.3509 28.222 27.9973V22.6639C28.2149 22.3413 28.0918 22.0321 27.8753 21.7928Z\"\n fill={fill || '#393E5B'}\n />\n </g>\n <g filter=\"url(#filter1_d_513_1838)\">\n <path\n d=\"M16.6663 15.1105C20.1028 15.1105 22.8885 12.3247 22.8885 8.88824C22.8885 5.4518 20.1028 2.66602 16.6663 2.66602C13.2299 2.66602 10.4441 5.4518 10.4441 8.88824C10.4441 12.3247 13.2299 15.1105 16.6663 15.1105Z\"\n fill={fill || '#393E5B'}\n />\n </g>\n </g>\n <defs>\n <filter\n id=\"filter0_d_513_1838\"\n x=\"-5.88916\"\n y=\"7.88477\"\n width=\"47.1111\"\n height=\"36.4453\"\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dx=\"1\" dy=\"3\" />\n <feGaussianBlur stdDeviation=\"6\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_513_1838\" />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect1_dropShadow_513_1838\"\n result=\"shape\"\n />\n </filter>\n <filter\n id=\"filter1_d_513_1838\"\n x=\"-0.555908\"\n y=\"-6.33398\"\n width=\"36.4443\"\n height=\"36.4453\"\n filterUnits=\"userSpaceOnUse\"\n colorInterpolationFilters=\"sRGB\"\n >\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix\n in=\"SourceAlpha\"\n type=\"matrix\"\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n result=\"hardAlpha\"\n />\n <feOffset dx=\"1\" dy=\"3\" />\n <feGaussianBlur stdDeviation=\"6\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_513_1838\" />\n <feBlend\n mode=\"normal\"\n in=\"SourceGraphic\"\n in2=\"effect1_dropShadow_513_1838\"\n result=\"shape\"\n />\n </filter>\n <clipPath id=\"clip0_513_1838\">\n <rect width=\"32\" height=\"32\" fill=\"white\" transform=\"translate(0.666748)\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nRecruits.propTypes = {\n fill: PropTypes.string,\n fullColor: PropTypes.bool,\n};\n\nRecruits.defaultProps = {};\n\nexport default Recruits;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { Spin } from 'antd';\n\nimport Entries from '../icons/Entries';\nimport Recruits from '../icons/Recruits';\n\nconst Container = styled.div`\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n gap: 12px;\n align-self: stretch;\n`;\n\nconst Box = styled.div`\n display: flex;\n height: 64px;\n padding: 8px 16px;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n gap: 8px;\n flex: 1;\n border-radius: 8px;\n border: 1px solid rgba(0, 0, 0, 0.1);\n`;\n\nconst Counter = styled.div`\n opacity: ${({ $fullColor }) => ($fullColor ? 1 : 0.2)};\n color: #393e5b;\n width: 24px;\n align-items: flex-start;\n /* shadow-m */\n text-shadow: 1px 3px 12px rgba(0, 0, 0, 0.08);\n font-size: 1.125rem;\n font-weight: 600;\n line-height: 1.875rem;\n`;\n\nconst Text = styled.div`\n color: ${({ theme }) => theme.colors.blackL42};\n flex: 1;\n /* shadow-m */\n text-shadow: 1px 3px 12px rgba(0, 0, 0, 0.08);\n font-size: 1rem;\n font-weight: 400;\n line-height: 1rem;\n`;\n\nconst EntriesInfo = ({\n referralLink,\n isCheckedVoterRegistration,\n entriesCounter,\n pendingCounter,\n recruitsCounter,\n statsLoading,\n}) => {\n const { t } = useTranslation();\n\n const fullEntriesColor = useMemo(\n () => isCheckedVoterRegistration && !!entriesCounter,\n [entriesCounter, isCheckedVoterRegistration],\n );\n const fullRecruitsColor = useMemo(\n () => isCheckedVoterRegistration && !!recruitsCounter,\n [recruitsCounter, isCheckedVoterRegistration],\n );\n\n if (!referralLink) return null;\n\n return (\n <Container>\n <Box>\n <Entries fullColor={fullEntriesColor} />\n <Counter $fullColor={statsLoading || fullEntriesColor}>\n {statsLoading ? <Spin /> : entriesCounter || 0}\n </Counter>\n <Text>{t('fan_out.main.earned', { count: entriesCounter || 0 })}</Text>\n </Box>\n <Box>\n <Recruits fullColor={fullRecruitsColor} />\n <Counter $fullColor={statsLoading || fullRecruitsColor}>\n {statsLoading ? <Spin /> : recruitsCounter || 0}\n </Counter>\n <Text>{t('fan_out.main.recruit', { count: recruitsCounter || 0 })}</Text>\n </Box>\n </Container>\n );\n};\n\nEntriesInfo.propTypes = {\n entriesCounter: PropTypes.number,\n isCheckedVoterRegistration: PropTypes.bool.isRequired,\n pendingCounter: PropTypes.number,\n recruitsCounter: PropTypes.number,\n referralLink: PropTypes.string,\n statsLoading: PropTypes.bool.isRequired,\n};\n\nEntriesInfo.defaultProps = {};\n\nexport default EntriesInfo;\n","import React from 'react';\n\nconst Diamond = props => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} fill=\"none\" {...props}>\n <path fill=\"#2A2E47\" d=\"m8 3 5 5-5 5-5-5 5-5Z\" />\n </svg>\n );\n};\n\nDiamond.propTypes = {};\n\nDiamond.defaultProps = {};\n\nexport default Diamond;\n","import React from 'react';\n\nconst Checked = props => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.11101 2.17971C5.26216 1.41054 6.61553 1 8 1C9.85652 1 11.637 1.7375 12.9497 3.05025C14.2625 4.36301 15 6.14348 15 8C15 9.38447 14.5895 10.7378 13.8203 11.889C13.0511 13.0401 11.9579 13.9373 10.6788 14.4672C9.3997 14.997 7.99224 15.1356 6.63437 14.8655C5.2765 14.5954 4.02922 13.9287 3.05026 12.9497C2.07129 11.9708 1.4046 10.7235 1.13451 9.36563C0.86441 8.00776 1.00303 6.6003 1.53285 5.32122C2.06266 4.04213 2.95987 2.94888 4.11101 2.17971ZM8.49188 9.30346L7 10.7955L4.5 8.2955L4.50025 8.29525L4.5 8.295L5.295 7.5L5.29525 7.50025L5.2955 7.5L7 9.2045L10.705 5.5L11.5025 6.2925L11.503 6.293L8.49188 9.30346Z\"\n fill=\"#2A2E47\"\n />\n </svg>\n );\n};\n\nChecked.propTypes = {};\n\nChecked.defaultProps = {};\n\nexport default Checked;\n","import I18n from '@web/components/i18n';\n\nexport const isBattleGroundState = state => {\n const battlegroundStates = ['NV', 'AZ', 'GA', 'WI', 'PA', 'MI', 'NC', 'OH', 'MT'];\n\n return battlegroundStates.includes(state);\n};\n\nexport const getEntriesArray = ({ isCheckedVoterRegistration, isOwnVotingPlanCompleted }) => {\n return [\n {\n checked: false,\n description: I18n.t('fan_out.main.entries.1_description'),\n title: I18n.t('fan_out.main.entries.entry', {\n count: 10,\n }),\n },\n {\n checked: false,\n description: I18n.t('fan_out.main.entries.2_description'),\n title: I18n.t('fan_out.main.entries.entry', {\n count: 1,\n }),\n },\n {\n checked: false,\n description: I18n.t('fan_out.main.entries.3_description'),\n title: I18n.t('fan_out.main.entries.additional', {\n count: 2,\n }),\n },\n {\n checked: isCheckedVoterRegistration,\n description: I18n.t('fan_out.main.entries.4_description'),\n title: I18n.t('fan_out.main.entries.entry', {\n count: 1,\n }),\n },\n {\n checked: isOwnVotingPlanCompleted,\n description: I18n.t('fan_out.main.entries.5_description'),\n title: I18n.t('fan_out.main.entries.entry', {\n count: 1,\n }),\n },\n ];\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\n\nimport Diamond from '@web/components/FanOut/components/icons/Diamond';\nimport Checked from '@web/components/FanOut/components/icons/Checked';\nimport { getEntriesArray } from '@web/components/FanOut/helpers';\n\nconst Container = styled.div`\n display: flex;\n border-radius: 12px;\n flex-direction: column;\n width: 100%;\n padding: 16px;\n background: ${({ theme }) => theme.colors.white};\n`;\n\nconst EntriesContent = styled.div`\n display: flex;\n align-self: stretch;\n gap: 5px;\n justify-content: flex-start;\n`;\n\nconst BaseText = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-family: ${({ theme }) => theme.colors.regular};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem;\n`;\n\nconst DescriptionText = styled(BaseText)`\n margin-bottom: 18px;\n line-height: 1.25rem;\n`;\n\nconst IconWrapper = styled.div`\n width: 16px;\n height: 16px;\n display: flex;\n align-items: flex-start;\n padding-top: 3px;\n`;\n\nconst DescriptionEntriesText = styled(BaseText)`\n margin-top: 18px;\n font-size: 0.8125rem;\n line-height: 1.125rem;\n opacity: 0.7;\n`;\n\nconst EntriesTitle = styled(BaseText)`\n font-weight: 700;\n line-height: 1.25rem;\n text-align: left;\n opacity: ${({ checked }) => (checked ? 0.4 : 1)};\n`;\n\nconst EntriesDescription = styled.span`\n color: ${({ theme }) => theme.colors.blue};\n font-family: ${({ theme }) => theme.colors.regular};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.25rem;\n\n bold {\n font-weight: 700;\n }\n`;\n\nconst EntriesContainer = ({\n description,\n referralLink,\n isCheckedVoterRegistration,\n isOwnVotingPlanCompleted,\n entriesCounter,\n recruitsCounter,\n}) => {\n const { t } = useTranslation();\n\n const ENTRIES_ARRAY = getEntriesArray({ isCheckedVoterRegistration, isOwnVotingPlanCompleted });\n\n return (\n <Container>\n <DescriptionText>{description}</DescriptionText>\n {ENTRIES_ARRAY.map(({ title, description, checked }) => (\n <EntriesContent key={`${title}-${description}`}>\n <IconWrapper>{checked ? <Checked /> : <Diamond />}</IconWrapper>\n <EntriesTitle checked={checked}>\n {title}\n \n <EntriesDescription dangerouslySetInnerHTML={{ __html: description }} />\n </EntriesTitle>\n \n </EntriesContent>\n ))}\n <DescriptionEntriesText>{t('fan_out.main.entry_description')}</DescriptionEntriesText>\n </Container>\n );\n};\n\nEntriesContainer.propTypes = {\n description: PropTypes.string,\n entriesCounter: PropTypes.number,\n isCheckedVoterRegistration: PropTypes.bool.isRequired,\n isOwnVotingPlanCompleted: PropTypes.bool.isRequired,\n pendingCounter: PropTypes.number,\n recruitsCounter: PropTypes.number,\n referralLink: PropTypes.string,\n};\n\nEntriesContainer.defaultProps = {};\n\nexport default EntriesContainer;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation, Link } from 'react-router-dom';\n\n// remove this icon for now\n// import Info from '@web/components/FanOut/components/icons/Info';\nimport Ticket from '@web/components/FanOut/components/icons/Ticket';\nimport Copy from '@web/components/FanOut/components/icons/Copy';\nimport ShareIcon from '@web/components/VoterRegistration/newComponents/icons/Share';\nimport Button from '@web/components/VoterRegistration/newComponents/Button';\nimport { colors } from '@web/styles/theme';\nimport EntriesInfo from '@web/components/FanOut/components/EntriesInfo';\nimport EntriesContainer from '@web/components/FanOut/components/EntriesContainer';\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport useIsMobile from '@web/components/VoterRegistration/hooks/useIsMobile';\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 12px;\n max-width: 740px;\n width: 100%;\n\n ${smallBreakpoint} {\n gap: 20px;\n }\n`;\n\nconst Container = styled.div`\n display: flex;\n border-radius: 12px;\n flex-direction: column;\n width: 100%;\n padding: 16px;\n background: ${({ theme }) => theme.colors.white};\n gap: 12px;\n`;\n\nconst HeaderContainer = styled.div`\n display: flex;\n align-items: flex-start;\n gap: 12px;\n align-self: stretch;\n`;\n\nconst IconContainer = styled.div`\n display: flex;\n width: 68px;\n height: 68px;\n align-items: center;\n justify-content: center;\n padding: 6px;\n border-radius: 4px;\n border: 1px solid ${colors.black};\n box-shadow: 4px 4px 0px 0px ${colors.black};\n`;\n\nconst BaseText = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-family: ${({ theme }) => theme.colors.regular};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem;\n`;\n\nconst HeaderText = styled(BaseText)`\n width: 100%;\n font-size: 1.75rem;\n font-weight: 700;\n line-height: 2rem;\n\n ${smallBreakpoint} {\n font-size: 1.25rem;\n font-weight: 700;\n line-height: 1.5rem;\n }\n`;\n\n// const InfoBox = styled.div`\n// width: 24px;\n// height: 24px;\n// `;\n\nconst StyledButton = styled(Button)`\n gap: 8px;\n &&& {\n height: auto !important;\n min-height: 64px;\n padding: 12px;\n background: ${({ $color, theme }) => $color || theme.colors.newBlue} !important;\n\n span {\n font-weight: 700;\n font-size: 1rem;\n white-space: normal;\n text-transform: none;\n }\n\n description {\n font-weight: 400;\n text-transform: none;\n }\n }\n`;\n\nconst UnderlineButton = styled(Button)`\n text-decoration-line: underline;\n &&& {\n description {\n font-weight: 400;\n text-transform: none;\n }\n }\n`;\n\nconst StyledLink = styled(Link)`\n outline: 0;\n\n :hover,\n .active {\n text-decoration: none;\n text-decoration-color: unset;\n }\n`;\n\nconst NotSureText = styled(BaseText)`\n font-size: 1.25rem;\n font-weight: 700;\n line-height: 1.5rem; /* 120% */\n margin-bottom: 16px;\n`;\n\nconst SweepstakesEntries = ({\n activity,\n openReferralModal,\n openVoterModal,\n myStats: { entries, recruits, isOwnVotingPlanCompleted },\n statsLoading,\n}) => {\n const { t } = useTranslation();\n const isMobile = useIsMobile();\n const { search } = useLocation();\n const { contactFormResult, isCheckedVoterRegistration } = useSelector(\n state => state.voterRegistration,\n );\n\n const color = useMemo(() => activity?.settings?.button_color, [activity?.settings?.button_color]);\n const showMobileShare = useMemo(() => navigator?.share, []);\n const isActive = useMemo(() => activity.aasm_state !== 'closed', [activity.aasm_state]);\n const referralLink = useMemo(\n () => contactFormResult.referral_link,\n [contactFormResult.referral_link],\n );\n const description = useMemo(() => activity?.description, [activity?.description]);\n\n return (\n <Wrapper>\n <Container>\n <HeaderContainer>\n <IconContainer>\n <Ticket />\n </IconContainer>\n <HeaderText dangerouslySetInnerHTML={{ __html: t('fan_out.main.title') }} />\n {/* <InfoBox>\n <Info />\n </InfoBox> */}\n </HeaderContainer>\n <BaseText>{t('fan_out.main.description')}</BaseText>\n <EntriesInfo\n statsLoading={statsLoading}\n referralLink={referralLink}\n entriesCounter={entries}\n pendingCounter={0}\n recruitsCounter={recruits}\n isCheckedVoterRegistration={isCheckedVoterRegistration}\n />\n {isActive && !isCheckedVoterRegistration && !referralLink && (\n <StyledButton onClick={openVoterModal} variant=\"fan_out\" $color={color}>\n <span>\n {t('fan_out.main.start_checking')}\n <br />\n <description>{t('fan_out.main.1_entry')}</description>\n </span>\n </StyledButton>\n )}\n <StyledButton\n onClick={openReferralModal}\n variant=\"fan_out\"\n $color={referralLink ? color : colors.gray}\n >\n {referralLink ? (\n showMobileShare ? (\n <>\n <ShareIcon fill={colors.blue} />\n {t('check_registration.referral.shareSweepstake')}\n </>\n ) : (\n <>\n <Copy fill={colors.blue} />\n {t('check_registration.referral.copyLink')}\n </>\n )\n ) : (\n <span>\n {t('fan_out.main.start_helping')}\n <br />\n <description>{t('fan_out.main.unlimited_entries')}</description>\n </span>\n )}\n </StyledButton>\n {isActive && !isCheckedVoterRegistration && referralLink && (\n <UnderlineButton onClick={openVoterModal} variant=\"link\">\n <span>\n {t('fan_out.main.check_my_registration')}\n <br />\n <description>{t('fan_out.main.1_entry')}</description>\n </span>\n </UnderlineButton>\n )}\n </Container>\n <EntriesContainer\n entriesCounter={entries}\n description={description}\n pendingCounter={0}\n recruitsCounter={recruits}\n isCheckedVoterRegistration={isCheckedVoterRegistration}\n isOwnVotingPlanCompleted={isOwnVotingPlanCompleted}\n referralLink={referralLink}\n />\n {isMobile && (\n <Container>\n <NotSureText>{t('fan_out.main.not_sure')}</NotSureText>\n <StyledLink to={{ search, state: 'sweepstakes' }}>\n <StyledButton variant=\"fan_out\" $color={color}>\n {t('fan_out.main.explore_all_sweepstakes')}\n </StyledButton>\n </StyledLink>\n </Container>\n )}\n </Wrapper>\n );\n};\n\nSweepstakesEntries.propTypes = {\n activity: PropTypes.object.isRequired,\n modalReferralOpen: PropTypes.bool.isRequired,\n modalVoterOpen: PropTypes.bool.isRequired,\n myStats: PropTypes.shape({\n entries: PropTypes.number,\n isOwnVotingPlanCompleted: PropTypes.bool,\n recruits: PropTypes.number,\n }).isRequired,\n openReferralModal: PropTypes.func.isRequired,\n openVoterModal: PropTypes.func.isRequired,\n statsLoading: PropTypes.bool.isRequired,\n};\n\nSweepstakesEntries.defaultProps = {};\n\nexport default SweepstakesEntries;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport HeroImages from '@web/components/FanOut/components/HeroImages';\nimport SweepstakesEntries from '@web/components/FanOut/components/SweepstakesEntries';\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: row;\n flex: 1;\n`;\n\nconst LeftSide = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n justify-content: center;\n width: 50%;\n padding: 40px 35px 40px 75px;\n`;\n\nconst RightSide = styled(LeftSide)`\n padding: 40px 75px 40px 35px;\n`;\n\nconst Layout = ({\n activity,\n modalVoterOpen,\n modalReferralOpen,\n openVoterModal,\n openReferralModal,\n myStats,\n statsLoading,\n}) => {\n return (\n <Wrapper>\n <LeftSide>\n <HeroImages activity={activity} />\n </LeftSide>\n <RightSide>\n <SweepstakesEntries\n activity={activity}\n modalVoterOpen={modalVoterOpen}\n modalReferralOpen={modalReferralOpen}\n openVoterModal={openVoterModal}\n openReferralModal={openReferralModal}\n myStats={myStats}\n statsLoading={statsLoading}\n />\n </RightSide>\n </Wrapper>\n );\n};\n\nLayout.propTypes = {\n activity: PropTypes.object.isRequired,\n modalReferralOpen: PropTypes.bool.isRequired,\n modalVoterOpen: PropTypes.bool.isRequired,\n myStats: PropTypes.shape({\n entries: PropTypes.number,\n recruits: PropTypes.number,\n }).isRequired,\n openReferralModal: PropTypes.func.isRequired,\n openVoterModal: PropTypes.func.isRequired,\n statsLoading: PropTypes.bool.isRequired,\n team: PropTypes.object,\n};\n\nLayout.defaultProps = {};\n\nexport default Layout;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport SweepstakesEntries from '@web/components/FanOut/components/SweepstakesEntries';\n\nconst Wrapper = styled.div`\n display: flex;\n padding: 20px;\n flex-direction: column;\n align-items: center;\n gap: 20px;\n flex: 1;\n`;\n\nconst HeroImage = styled.img`\n object-fit: scale-down;\n max-width: 740px;\n max-height: 740px;\n width: 100%;\n\n border-radius: 12px;\n border: 2px solid ${({ theme }) => theme.colors.blue};\n background: ${({ theme }) => theme.colors.white};\n box-shadow: 4px 4px 0px 0px ${({ theme }) => theme.colors.blue};\n overflow: hidden;\n`;\n\nconst Title = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-size: 2rem;\n font-weight: 600;\n line-height: 2.5rem; /* 125% */\n`;\n\nconst Layout = ({\n activity,\n modalVoterOpen,\n modalReferralOpen,\n openVoterModal,\n openReferralModal,\n myStats,\n statsLoading,\n}) => {\n return (\n <Wrapper>\n {activity.mobile_hero_img_url ? (\n <HeroImage alt={activity.title} src={activity.mobile_hero_img_url} />\n ) : (\n <Title>{activity.title}</Title>\n )}\n <SweepstakesEntries\n activity={activity}\n modalVoterOpen={modalVoterOpen}\n modalReferralOpen={modalReferralOpen}\n openVoterModal={openVoterModal}\n openReferralModal={openReferralModal}\n myStats={myStats}\n statsLoading={statsLoading}\n />\n </Wrapper>\n );\n};\n\nLayout.propTypes = {\n activity: PropTypes.object.isRequired,\n modalReferralOpen: PropTypes.bool.isRequired,\n modalVoterOpen: PropTypes.bool.isRequired,\n myStats: PropTypes.shape({\n entries: PropTypes.number,\n recruits: PropTypes.number,\n }).isRequired,\n openReferralModal: PropTypes.func.isRequired,\n openVoterModal: PropTypes.func.isRequired,\n statsLoading: PropTypes.bool.isRequired,\n team: PropTypes.object,\n};\n\nLayout.defaultProps = {};\n\nexport default Layout;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FanOutDesktopLayout from '@web/components/FanOut/components/DesktopLayout';\nimport FanOutMobileLayout from '@web/components/FanOut/components/MobileLayout';\nimport useIsMobile from '@web/components/VoterRegistration/hooks/useIsMobile';\n\nconst FanOutActivity = ({\n activity,\n modalVoterOpen,\n modalReferralOpen,\n openVoterModal,\n openReferralModal,\n myStats,\n statsLoading,\n}) => {\n const isMobile = useIsMobile();\n\n const FanOutLayout = useMemo(\n () => (isMobile ? FanOutMobileLayout : FanOutDesktopLayout),\n [isMobile],\n );\n\n return (\n <FanOutLayout\n activity={activity}\n modalVoterOpen={modalVoterOpen}\n modalReferralOpen={modalReferralOpen}\n openVoterModal={openVoterModal}\n openReferralModal={openReferralModal}\n myStats={myStats}\n statsLoading={statsLoading}\n />\n );\n};\n\nFanOutActivity.propTypes = {\n activity: PropTypes.object.isRequired,\n modalReferralOpen: PropTypes.bool.isRequired,\n modalVoterOpen: PropTypes.bool.isRequired,\n myStats: PropTypes.shape({\n entries: PropTypes.number,\n recruits: PropTypes.number,\n }).isRequired,\n openReferralModal: PropTypes.func.isRequired,\n openVoterModal: PropTypes.func.isRequired,\n statsLoading: PropTypes.bool.isRequired,\n team: PropTypes.object,\n};\n\nFanOutActivity.defaultProps = {\n team: null,\n};\n\nexport default FanOutActivity;\n","import styled from 'styled-components';\nimport { largeBreakpoint } from '../breakpoints';\n\nexport const Title = styled.h1`\n font-weight: 700;\n font-size: 24px;\n margin-bottom: 0.5rem;\n\n color: ${({ $fontColor }) => $fontColor};\n\n ${largeBreakpoint} {\n font-size: 30px;\n }\n\n span {\n text-decoration: underline;\n }\n`;\n\nexport const Description = styled.p`\n color: ${({ $fontColor }) => $fontColor};\n font-size: 14px;\n line-height: 24px;\n margin-bottom: 0;\n ${largeBreakpoint} {\n font-size: 16px;\n }\n`;\n","import React, { Fragment } from 'react';\nimport styled, { createGlobalStyle } from 'styled-components';\nimport { Collapse } from 'antd';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\n\nimport { media } from '@web/styles/theme';\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport { Title } from '@web/components/VoterRegistration/newComponents/TextStyles';\nimport { useTrackFanOut } from '@web/components/FanOut/hooks/useFanOutAmplitude';\n\nconst Wrapper = styled.div`\n background: ${({ theme }) => theme.colors.whiteSmoke};\n display: flex;\n flex: 1;\n`;\n\nconst StyledTerms = styled.div`\n display: flex;\n padding: 40px 22% 80px 22%;\n flex-direction: column;\n align-items: flex-start;\n gap: 40px;\n\n ${media.nxl} {\n padding: 40px 11% 80px 11%;\n }\n ${media.nlg} {\n padding: 40px 40px 80px 40px;\n }\n ${smallBreakpoint} {\n padding: 20px 20px 40px 20px;\n gap: 20px;\n }\n`;\n\nconst StyledTitle = styled(Title)`\n color: ${({ theme }) => theme.colors.blue};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 3rem;\n font-style: normal;\n font-weight: 700;\n line-height: 3.5rem;\n\n ${smallBreakpoint} {\n font-size: 2rem;\n line-height: 2.25rem; /* 112.5% */\n }\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 40px;\n align-self: stretch;\n\n ${smallBreakpoint} {\n gap: 20px;\n }\n`;\n\nconst Section = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n align-self: stretch;\n`;\n\nconst TitleText = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 2rem;\n font-style: normal;\n font-weight: 700;\n line-height: 3.5rem; /* 175% */\n`;\n\nconst DescriptionText = styled.div`\n color: ${({ theme }) => theme.colors.trueBlack};\n font-family: ${({ theme }) => theme.fonts.regular};\n text-align: justify;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem; /* 150% */\n white-space: pre-line;\n\n margin-top: ${({ $collapsed }) => $collapsed && '8px'};\n\n middle {\n text-align: center;\n }\n`;\n\nconst { Panel } = Collapse;\n\nconst CollapseAntdStyles = createGlobalStyle`\n &&& {\n .ant-collapse-content {\n background: ${({ theme }) => theme.colors.transparent}!important;\n border-top: 0px !important;\n padding: 0px !important;\n }\n .ant-collapse-header {\n padding: 0px !important;\n }\n .ant-collapse-content-box {\n padding: 0px !important;\n }\n }\n`;\n\nconst StyledCollapse = styled(Collapse)`\n &&& {\n margin: 0;\n overflow: hidden;\n width: 100%;\n }\n`;\n\nconst StyledPanel = styled(Panel)`\n padding: 0;\n border: none;\n`;\n\nconst Separator = styled.div`\n margin-top: 32px;\n height: 1px;\n width: 100%;\n background-color: ${({ theme }) => theme.colors.blackL42};\n\n ${smallBreakpoint} {\n margin-top: 18px;\n }\n\n margin-top: ${({ $collapsed }) => $collapsed && '0px'};\n`;\n\nconst Terms = ({ activity, team }) => {\n const { t } = useTranslation();\n useTrackFanOut({ activity, name: 'FAN_OUT_ABOUT_PAGE', team });\n\n return (\n <Wrapper>\n <StyledTerms>\n <StyledTitle>{t('fan_out.terms.title')}</StyledTitle>\n <Container>\n <CollapseAntdStyles />\n {[...new Array(5)].map((_, index) =>\n // add collapse for Contest Rules & Privacy Policy sections\n index === 3 || index === 4 ? (\n <Fragment key={index}>\n <StyledCollapse expandIconPosition={'right'} ghost>\n <StyledPanel\n header={<TitleText>{t(`fan_out.terms.${index + 1}.title`)}</TitleText>}\n key={index}\n >\n <DescriptionText\n $collapsed\n dangerouslySetInnerHTML={{\n __html: t(`fan_out.terms.${index + 1}.description`),\n }}\n />\n </StyledPanel>\n </StyledCollapse>\n {/* hide separator for last section */}\n {index !== 4 && <Separator $collapsed />}\n </Fragment>\n ) : (\n <Section key={index}>\n <TitleText>{t(`fan_out.terms.${index + 1}.title`)}</TitleText>\n <DescriptionText\n dangerouslySetInnerHTML={{\n __html: t(`fan_out.terms.${index + 1}.description`),\n }}\n />\n <Separator />\n </Section>\n ),\n )}\n </Container>\n </StyledTerms>\n </Wrapper>\n );\n};\n\nTerms.propTypes = {\n activity: PropTypes.object.isRequired,\n team: PropTypes.object,\n};\n\nTerms.defaultProps = {};\n\nexport default Terms;\n","import React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport Clipboard from 'react-clipboard.js';\nimport { message } from 'antd';\n\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport theme, { colors, media } from 'web/styles/theme';\nimport { truncate } from '@web/utils/string';\nimport Entries from '../icons/Entries';\nimport Button from '@web/components/VoterRegistration/newComponents/Button';\nimport Copy from '@web/components/FanOut/components/icons/Copy';\nimport ShareIcon from '@web/components/VoterRegistration/newComponents/icons/Share';\nimport { amplitudeTrack } from '@web/components/FanOut/hooks/useFanOutAmplitude';\n\nconst Card = styled.div`\n background: ${({ theme }) => theme.colors.white};\n display: flex;\n padding: 20px;\n flex-direction: column;\n justify-content: space-between;\n align-items: flex-start;\n border-radius: 12px;\n\n /* flex: 1 ${({ $isMobile }) => ($isMobile ? '100%' : 'calc(50% - 10px)')}; */\n flex: 0 100%;\n // Show 2 items per row on xlarge screens\n ${media.xl} {\n // calc gap 20px\n flex: 0 calc(50% - 10px);\n }\n`;\n\nconst TopSection = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 16px;\n\n ${smallBreakpoint} {\n gap: 12px;\n }\n`;\n\nconst LabelsWrapper = styled.div`\n display: flex;\n align-items: flex-start;\n gap: 6px;\n`;\n\nconst LabelContainer = styled.div`\n display: flex;\n height: 38px;\n padding: 8px 12px;\n align-items: center;\n gap: 4px;\n border-radius: 40px;\n\n background: ${({ $entries }) =>\n $entries ? 'rgba(255, 153, 0, 0.20)' : 'rgba(197, 197, 197, 0.27)'};\n opacity: ${({ $active }) => !$active && 0.2};\n`;\n\nconst Counter = styled.div`\n color: ${({ theme }) => theme.colors.trueBlack};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1rem;\n font-weight: 700;\n line-height: 1.875rem; /* 187.5% */\n /* shadow-m */\n text-shadow: 1px 3px 12px rgba(0, 0, 0, 0.08);\n`;\n\nconst Text = styled.div`\n color: ${({ theme }) => theme.colors.trueBlack};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.875rem; /* 187.5% */\n /* shadow-m */\n text-shadow: 1px 3px 12px rgba(0, 0, 0, 0.08);\n`;\n\nconst Title = styled.a`\n color: ${({ theme }) => theme.colors.blue};\n font-size: 2rem;\n font-weight: 600;\n line-height: 2.5rem;\n text-decoration: none;\n &:focus {\n text-decoration: none;\n }\n &:hover {\n text-decoration: none;\n color: ${({ theme }) => theme.colors.blue};\n }\n\n ${smallBreakpoint} {\n font-size: 1.25rem;\n line-height: 1.75rem;\n }\n`;\n\nconst Description = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem; /* 150% */\n`;\n\nconst LinkContainer = styled.div`\n margin-top: 20px;\n width: 100%;\n gap: 8px;\n display: flex;\n align-items: flex-start;\n gap: 8px;\n flex-wrap: wrap;\n`;\n\nconst LinkClipboard = styled(Clipboard)`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 20px 16px;\n flex: 3;\n flex-direction: row;\n align-items: center;\n gap: 7px;\n border-radius: 8px;\n border: 1px solid rgba(57, 62, 91, 0.2);\n height: 64px;\n\n &:hover {\n cursor: pointer;\n border-color: rgba(57, 62, 91, 0.5);\n }\n\n /* Shadow/Default */\n box-shadow: 8px 8px 32px 0px rgba(0, 41, 64, 0.06);\n`;\n\nconst LinkText = styled.div`\n color: ${({ theme }) => theme.colors.trueBlack};\n font-size: 1rem;\n font-weight: 700;\n line-height: 1.5rem; /* 150% */\n`;\n\nconst StyledButton = styled(Button)`\n text-align: center;\n letter-spacing: 0.5px;\n font-size: 1rem;\n font-weight: 700;\n letter-spacing: 0.0625rem;\n flex: 1;\n gap: 6px;\n\n &&& {\n height: 64px;\n min-width: 200px;\n box-shadow: 8px 8px 32px 0px rgba(0, 41, 64, 0.06);\n }\n`;\n\nconst SweepstakeCard = ({ sweepstake, team, setShareLink, activity }) => {\n const {\n campaign: { slug: campaignSlug },\n description,\n referral_link: link,\n slug: activitySlug,\n title,\n total_fan_out_points: points,\n } = sweepstake;\n const { t } = useTranslation();\n const history = useHistory();\n\n const showMobileShare = useMemo(() => navigator?.share, []);\n\n const titleText = useMemo(() => truncate(title, 50), [title]);\n const descriptionText = useMemo(() => truncate(description, 200), [description]);\n\n const enter = useCallback(() => {\n history.replace(`/campaigns/${campaignSlug}/activities/${activitySlug}`);\n document.title = titleText;\n }, [campaignSlug, activitySlug, history, titleText]);\n\n const copyLink = useCallback(() => {\n amplitudeTrack({ activity, name: 'FAN_OUT_COPY_SHARE_LINK', team });\n message.success(t('activity.share.copied_to_clipboard'));\n }, [t, activity, team]);\n\n const openShareModal = useCallback(() => {\n setShareLink(link);\n }, [setShareLink, link]);\n\n return (\n <Card>\n <TopSection>\n <LabelsWrapper>\n <LabelContainer $entries $active={!!link}>\n <Entries fullColor fill={colors.trueBlack} />\n <Counter>{points || 0}</Counter>\n <Text>{t('fan_out.sweepstakes.entry', { count: points || 0 })}</Text>\n </LabelContainer>\n </LabelsWrapper>\n <Title onClick={enter}>{titleText}</Title>\n <Description>{descriptionText}</Description>\n </TopSection>\n <LinkContainer>\n {link ? (\n <>\n <LinkClipboard component=\"span\" data-clipboard-text={link} onSuccess={copyLink}>\n <Copy />\n <LinkText>{link}</LinkText>\n </LinkClipboard>\n <StyledButton onClick={openShareModal} variant=\"fan_out\">\n {showMobileShare ? (\n <>\n <ShareIcon fill={theme.colors.blue} />\n {t('button.share')}\n </>\n ) : (\n <>\n <Copy fill={theme.colors.blue} />\n {t('fan_out.sweepstakes.copy')}\n </>\n )}\n </StyledButton>\n </>\n ) : (\n <StyledButton onClick={enter} variant=\"fan_out\">\n {t('fan_out.sweepstakes.enter_sweepstakes')}\n </StyledButton>\n )}\n </LinkContainer>\n </Card>\n );\n};\n\nSweepstakeCard.propTypes = {\n activity: PropTypes.object,\n setShareLink: PropTypes.func.isRequired,\n sweepstake: PropTypes.shape({\n campaign: PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n slug: PropTypes.string,\n }).isRequired,\n description: PropTypes.string,\n id: PropTypes.number,\n referral_link: PropTypes.string,\n slug: PropTypes.string,\n title: PropTypes.string,\n total_fan_out_points: PropTypes.number,\n }).isRequired,\n team: PropTypes.object,\n};\n\nSweepstakeCard.defaultProps = {\n team: null,\n};\n\nexport default SweepstakeCard;\n","import styled from 'styled-components';\n\nconst Layout = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n`;\n\nexport default Layout;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst BUTTON_SIZE = 24;\n\n// MTS - For some reason all of the styles break if this imported from any other file.\nconst largeBreakpoint = '@media screen and (min-width: 958px)';\n\n// MTS - For some reason on Safari mobile (not desktop) the svg is not rendered if this\n// is a button 🤷â€â™‚ï¸\nconst StyledCloseButton = styled.div`\n align-items: center;\n background-color: ${({ $secondary, $isFanOut, theme }) =>\n $secondary ? ($isFanOut ? 'rgba(45, 41, 42, 0.60)' : 'transparent') : '#fff'};\n border-radius: ${BUTTON_SIZE / 2}px;\n border: none;\n display: flex;\n height: ${BUTTON_SIZE}px;\n justify-content: center;\n\n width: ${BUTTON_SIZE}px;\n\n position: fixed;\n top: 19px;\n right: 15px;\n z-index: 2;\n ${largeBreakpoint} {\n position: absolute;\n top: 0;\n right: ${-8 - BUTTON_SIZE}px;\n }\n`;\n\nfunction CloseButton({ secondary, isFanOut, ...rest }) {\n const pathProps = {\n stroke: secondary ? '#fff' : '#000',\n strokeOpacity: secondary ? 1 : 0.2,\n };\n return (\n <StyledCloseButton\n $secondary={secondary}\n $isFanOut={isFanOut}\n {...rest}\n aria-label=\"close\"\n role=\"button\"\n >\n <svg height=\"10\" viewBox=\"0 0 10 10\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M5 5.00091L9.24264 0.758266M5 5.00091L0.757359 9.24355M5 5.00091L9.24264 9.24355M5 5.00091L0.757359 0.758266\"\n strokeWidth=\"2\"\n {...pathProps}\n />\n </svg>\n </StyledCloseButton>\n );\n}\n\nCloseButton.propTypes = {\n isFanOut: PropTypes.bool,\n secondary: PropTypes.bool,\n};\n\nCloseButton.defaultProps = {\n isFanOut: false,\n secondary: false,\n};\n\nexport default CloseButton;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { createGlobalStyle } from 'styled-components';\n\nimport CloseButton from './CloseButton';\nimport { Modal as AntModal } from 'antd';\n\nconst largeBreakpoint = '@media screen and (min-width: 958px)';\nconst smallBreakpoint = `@media screen and (max-width: 957px)`;\n\nconst Content = styled.div`\n display: flex;\n flex: 1;\n flex-direction: column;\n margin: ${({ $isFanOut }) => ($isFanOut ? '28px 16px 40px' : '28px 24px 40px')};\n width: 100%;\n\n ${largeBreakpoint} {\n margin: 32px 32px 42px 48px;\n }\n`;\n\nconst ModalStyle = createGlobalStyle`\n &&& {\n .vr-modal .ant-modal {\n width: 100vw;\n ${smallBreakpoint} {\n margin: 0;\n min-height: 100vh;\n min-width: 100vw;\n padding-bottom: 0;\n top: 0;\n }\n ${largeBreakpoint} {\n min-width: 880px;\n width: 100%;\n }\n }\n .vr-modal .ant-modal-body{\n box-sizing: border-box;\n display: flex;\n flex: 1;\n width: 100%;\n height: 100%;\n }\n .vr-modal .ant-modal-content {\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n padding: 0;\n width: 100%;\n background: ${({ $color }) => $color};\n ${largeBreakpoint} {\n border-radius: 30px;\n min-height: 100%;\n }\n }\n\n .iFrameModal .ant-modal{\n margin: 0;\n min-height: 100vh;\n min-width: 100vw;\n padding-bottom: 0;\n top: 0;\n background: ${({ $color }) => $color ?? 'white'};\n }\n\n .iFrameModal .ant-modal-content{\n height: -webkit-fill-available;\n box-shadow: none;\n }\n }\n`;\n\nconst Modal = ({\n children,\n closeModal,\n modalOpen,\n secondaryCloseButton,\n isFanOut,\n isCommonVRChooseFlow,\n activity,\n isIframe,\n ...rest\n}) => {\n const color = useMemo(\n () => (isCommonVRChooseFlow || !isFanOut || isIframe) && activity?.settings?.background_color,\n [isCommonVRChooseFlow, isFanOut, isIframe, activity?.settings?.background_color],\n );\n\n return (\n <>\n <ModalStyle $color={color} />\n <AntModal\n bodyStyle={{ padding: 0 }}\n closable={false}\n footer={null}\n visible={modalOpen}\n wrapClassName={`vr-modal ${isIframe ? 'iFrameModal' : ''}`}\n maskClosable={false}\n {...rest}\n >\n {!isIframe && (\n <CloseButton\n aria-label=\"close\"\n onClick={closeModal}\n secondary={secondaryCloseButton}\n isFanOut={isFanOut}\n />\n )}\n <Content $isFanOut={isFanOut}>{children}</Content>\n </AntModal>\n </>\n );\n};\n\nModal.propTypes = {\n activity: PropTypes.object,\n children: PropTypes.any,\n closeModal: PropTypes.func.isRequired,\n isCommonVRChooseFlow: PropTypes.bool,\n isFanOut: PropTypes.bool,\n isIframe: PropTypes.bool,\n modalOpen: PropTypes.bool.isRequired,\n secondaryCloseButton: PropTypes.bool,\n};\n\nModal.defaultProps = {\n secondaryCloseButton: false,\n};\n\nexport default Modal;\n","import styled from 'styled-components';\n\nconst ShareButton = styled.button`\n align-items: center;\n background-color: #fff;\n border: none;\n border-radius: 0.25rem;\n box-shadow: 8px 8px 32px rgba(0, 41, 64, 0.06);\n display: flex;\n font-size: 16px;\n font-weight: 600;\n height: 48px;\n justify-content: center;\n padding-left: 1rem;\n padding-right: 1rem;\n width: 100%;\n svg {\n margin-right: 1rem;\n }\n`;\n\nexport default ShareButton;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Facebook(props) {\n return (\n <svg viewBox=\"0 0 10 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M2.85882 18V9.55388H0.625488V6.51287H2.85882V3.91545C2.85882 1.87438 4.17806 0 7.21786 0C8.44863 0 9.35873 0.11799 9.35873 0.11799L9.28701 2.95778C9.28701 2.95778 8.35886 2.94874 7.34602 2.94874C6.24982 2.94874 6.07419 3.45391 6.07419 4.29237V6.51287H9.37415L9.23057 9.55388H6.07419V18H2.85882Z\"\n fill={props.color ?? '#6CCBDA'}\n />\n </svg>\n );\n}\n\nFacebook.propTypes = {\n color: PropTypes.string,\n height: PropTypes.number,\n};\n\nFacebook.defaultProps = {\n height: 18,\n};\n\nexport default Facebook;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction LinkedIn(props) {\n return (\n <svg viewBox=\"0 0 15 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.49252 5.33958H8.07169V6.6243C8.44322 5.88542 9.396 5.22153 10.8272 5.22153C13.571 5.22153 14.2224 6.69236 14.2224 9.39097V14.3889H11.4446V10.0056C11.4446 8.46875 11.0731 7.60208 10.1272 7.60208C8.81544 7.60208 8.2703 8.53611 8.2703 10.0049V14.3889H5.49252V5.33958ZM0.729329 14.2708H3.50711V5.22153H0.729329V14.2708ZM3.90502 2.27083C3.90513 2.50366 3.85895 2.73419 3.76918 2.94902C3.67941 3.16385 3.54784 3.35869 3.38211 3.52222C3.04627 3.85599 2.5917 4.04281 2.11822 4.04167C1.64557 4.04135 1.19205 3.855 0.855718 3.52292C0.690587 3.35883 0.559458 3.16377 0.469846 2.94891C0.380233 2.73405 0.333898 2.50363 0.333496 2.27083C0.333496 1.80069 0.520996 1.35069 0.856413 1.01875C1.19244 0.686221 1.64616 0.499792 2.11891 0.5C2.59252 0.5 3.04669 0.686806 3.38211 1.01875C3.71683 1.35069 3.90502 1.80069 3.90502 2.27083Z\"\n fill={props.color ?? '#6CCBDA'}\n />\n </svg>\n );\n}\n\nLinkedIn.propTypes = {\n color: PropTypes.string,\n height: PropTypes.number,\n};\n\nLinkedIn.defaultProps = {\n height: 15,\n};\n\nexport default LinkedIn;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Link(props) {\n return (\n <svg\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M12.0443 8.45645C11.2252 7.63768 10.1144 7.17773 8.9563 7.17773C7.79815 7.17773 6.68741 7.63768 5.8683 8.45645L2.7793 11.5444C1.96018 12.3636 1.5 13.4745 1.5 14.6329C1.5 15.7914 1.96018 16.9023 2.7793 17.7215C3.59842 18.5406 4.70939 19.0007 5.8678 19.0007C7.02621 19.0007 8.13718 18.5406 8.9563 17.7215L10.5003 16.1775\"\n stroke=\"#6CCBDA\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M8.95605 11.5443C9.77516 12.3631 10.8859 12.823 12.0441 12.823C13.2022 12.823 14.3129 12.3631 15.1321 11.5443L18.2211 8.4563C19.0402 7.63718 19.5004 6.52621 19.5004 5.3678C19.5004 4.20939 19.0402 3.09842 18.2211 2.2793C17.4019 1.46018 16.291 1 15.1326 1C13.9741 1 12.8632 1.46018 12.0441 2.2793L10.5001 3.8233\"\n stroke=\"#6CCBDA\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nLink.propTypes = {\n height: PropTypes.number,\n};\n\nLink.defaultProps = {\n height: 20,\n};\n\nexport default Link;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Twitter(props) {\n return (\n <svg viewBox=\"0 0 17 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M16.0859 2.09472C15.5061 2.35166 14.8832 2.52527 14.2283 2.60375C14.904 2.19943 15.4095 1.5631 15.6505 0.813468C15.0157 1.19054 14.3209 1.45596 13.5963 1.59819C13.1091 1.07796 12.4637 0.733139 11.7605 0.617269C11.0572 0.501399 10.3353 0.620962 9.70693 0.957393C9.07855 1.29382 8.57883 1.8283 8.28534 2.47785C7.99185 3.12739 7.92102 3.85566 8.08384 4.54958C6.79752 4.48499 5.53914 4.15065 4.39039 3.56826C3.24164 2.98587 2.22818 2.16844 1.41579 1.16902C1.13801 1.64819 0.978288 2.20375 0.978288 2.79541C0.977978 3.32805 1.10914 3.85252 1.36015 4.32231C1.61115 4.79209 1.97423 5.19266 2.41718 5.48847C1.90348 5.47212 1.40112 5.33332 0.951899 5.08361V5.12527C0.951847 5.87232 1.21026 6.59637 1.68328 7.17458C2.1563 7.75278 2.8148 8.14953 3.54704 8.2975C3.0705 8.42647 2.57088 8.44546 2.08593 8.35305C2.29252 8.99584 2.69495 9.55793 3.23688 9.96064C3.7788 10.3633 4.43309 10.5865 5.10815 10.5989C3.9622 11.4985 2.54696 11.9864 1.09009 11.9843C0.832025 11.9844 0.574174 11.9693 0.317871 11.9392C1.79667 12.89 3.51811 13.3946 5.27621 13.3926C11.2276 13.3926 14.4811 8.46347 14.4811 4.18847C14.4811 4.04958 14.4776 3.9093 14.4713 3.77041C15.1042 3.31276 15.6504 2.74603 16.0845 2.0968L16.0859 2.09472Z\"\n fill={props.color ?? '#6CCBDA'}\n />\n </svg>\n );\n}\n\nTwitter.propTypes = {\n color: PropTypes.string,\n height: PropTypes.number,\n};\n\nTwitter.defaultProps = {\n height: 14,\n};\n\nexport default Twitter;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Clipboard from 'react-clipboard.js';\nimport { FacebookShareButton, TwitterShareButton, LinkedinShareButton } from 'react-share';\nimport { message } from 'antd';\nimport ShareButton from './ShareButton';\n\n// icons\nimport Facebook from '@web/components/VoterRegistration/newComponents/icons/Facebook';\nimport LinkedIn from '@web/components/VoterRegistration/newComponents/icons/LinkedIn';\nimport LinkIcon from '@web/components/VoterRegistration/newComponents/icons/Link';\nimport Twitter from '@web/components/VoterRegistration/newComponents/icons/Twitter';\n\nimport { largeBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport { track } from '@web/services/analytics';\nimport { useTranslation } from 'react-i18next';\n\nconst ButtonArea = styled.div`\n display: grid;\n width: 100%;\n grid-gap: 14px;\n grid-template-columns: 1fr;\n ${largeBreakpoint} {\n grid-template-columns: 1fr 1fr 1fr 1fr;\n }\n`;\n\nfunction DesktopLinks({ activity, referralLink, team }) {\n const { t } = useTranslation();\n return (\n <ButtonArea>\n <FacebookShareButton url={referralLink}>\n <ShareButton>\n <Facebook />\n Facebook\n </ShareButton>\n </FacebookShareButton>\n <TwitterShareButton url={referralLink}>\n <ShareButton>\n <Twitter />\n Twitter\n </ShareButton>\n </TwitterShareButton>\n <LinkedinShareButton url={referralLink}>\n <ShareButton>\n <LinkedIn />\n LinkedIn\n </ShareButton>\n </LinkedinShareButton>\n <Clipboard\n component=\"div\"\n data-clipboard-text={referralLink}\n onSuccess={() => {\n message.info(t('common.copied_to_clipboard'));\n track('VR_COPY_SHARE_LINK', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n }}\n >\n <ShareButton>\n <LinkIcon />\n {t('check_registration.referral.copyButton')}\n </ShareButton>\n </Clipboard>\n </ButtonArea>\n );\n}\n\nDesktopLinks.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n id: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n }),\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n }),\n referralLink: PropTypes.string.isRequired,\n team: PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n }),\n};\n\nDesktopLinks.defaultProps = {};\n\nexport default DesktopLinks;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Button from '@web/components/VoterRegistration/newComponents/Button';\nimport ShareIcon from '@web/components/VoterRegistration/newComponents/icons/Share';\n\nimport sendError from '@web/utils/sendError';\nimport { useTranslation } from 'react-i18next';\n\nconst StyledButton = styled(Button)`\n &&& {\n border-color: ${({ theme }) => theme.colors.coral};\n background-color: ${({ theme }) => theme.colors.coral};\n color: #fff;\n height: 48px;\n font-size: 16px;\n margin-left: auto;\n margin-right: auto;\n max-width: 280px;\n }\n svg {\n margin-right: 0.5rem;\n }\n`;\n\nfunction MobileShare({ activity, referralLink, team }) {\n const { t } = useTranslation();\n const isPartner = false;\n\n function handleShare() {\n const shareData = {\n text: isPartner ? team.action_page_description : activity.description,\n title: isPartner ? team.action_page_title : activity.title,\n url: referralLink,\n };\n if (navigator?.canShare && navigator.canShare(shareData) && navigator.share) {\n navigator.share(shareData).catch(err => {\n if (err.toString().includes('AbortError')) {\n // MTS - The share api throws this error when a user decides not to share.\n // It isn't a real error.\n return null;\n }\n sendError('Voter Registration: User encountered error while sharing', { err });\n });\n }\n }\n\n return (\n <StyledButton onClick={handleShare}>\n <ShareIcon /> {t('button.share')}\n </StyledButton>\n );\n}\n\nMobileShare.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n id: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n }),\n description: PropTypes.string,\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n }),\n referralLink: PropTypes.string.isRequired,\n team: PropTypes.shape({\n action_page_description: PropTypes.string,\n action_page_title: PropTypes.string,\n id: PropTypes.number,\n name: PropTypes.string,\n }),\n};\n\nMobileShare.defaultProps = {};\n\nexport default MobileShare;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ShareImage(props) {\n return (\n <svg fill=\"none\" viewBox=\"0 0 147 117\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M32.369 47.684C31.359 24.84 63.461-3.867 91.137.924c29.232 5.054 54.866 68.502 27.16 89.89-27.706 21.389-84.867-19.963-85.928-43.13Z\"\n fill=\"#6CCBDA\"\n fillOpacity=\".2\"\n />\n <path\n d=\"M71.07 108.907s-9.925-12.46-6.771-28.26c0 0 24.46 12.244 25.482 27.136l16.941.41s19.357-16.612 39.007-17.491c0 0-3.033 18.205-20.631 20.423l-54.027-2.218Z\"\n fill=\"url(#a)\"\n />\n <path\n d=\"M111.787 105.326s1.112-29.766 33.943-35.58c0 0 3.406 28.505-29.96 35.765l-3.983-.185Z\"\n fill=\"url(#b)\"\n />\n <path\n d=\"m145.718 69.746-33.943 35.58 4.984-.978s28.312-6.039 28.959-34.602Z\"\n fill=\"#96D1DC\"\n style={{ mixBlendMode: 'soft-light' }}\n />\n <path\n d=\"M108.25 1.345c-2.447 2.568 13.393 25.27 19.205 26.018 5.812.748 5.327-13.302 1.455-19.76-3.871-6.46-17.507-9.583-20.66-6.258Z\"\n fill=\"#6CCBDA\"\n fillOpacity=\".2\"\n />\n <path\n d=\"M21.105 79.092S1.052 69.857 0 36.389c0 0 27.019 3.136 35.661 42.752l-14.556-.05Z\"\n fill=\"url(#c)\"\n />\n <path\n d=\"m1.638 38.412 27.292 40.7-6.884-.733S.738 65.11 1.638 38.412Z\"\n fill=\"#96D1DC\"\n style={{ mixBlendMode: 'soft-light' }}\n />\n <path\n d=\"M31.314 77.02s-14-16.407-30.173-7.378c0 0 10.442 18.254 30.173 7.378Z\"\n fill=\"url(#d)\"\n />\n <path\n d=\"M31.314 77.02s-14-16.407-30.173-7.378c0 0 10.442 18.254 30.173 7.378Z\"\n fill=\"url(#e)\"\n />\n <path\n d=\"m1.142 69.643 28.909 6.459s-14.303 11.345-28.91-6.46Z\"\n fill=\"#96D1DC\"\n style={{ mixBlendMode: 'soft-light' }}\n />\n <path\n d=\"M125.198 107.98s0 7.752-7.359 7.752H29.768c-2.901-.293-4.943-3.871-4.943-6.297 0-.94.495-11.563 1.112-24.26 1.01-20.033 2.214-45.172 2.214-45.172s.455-3.457 5.974-3.84l42.827.444 40.887.424a6.578 6.578 0 0 1 5.519 4.266l1.84 66.683Z\"\n fill=\"url(#f)\"\n />\n <path\n d=\"M125.198 107.98s0 7.752-7.359 7.752H29.768c-2.901-.293-4.943-3.871-4.943-6.297 0-.94.495-11.563 1.112-24.26 1.01-20.033 2.214-45.172 2.214-45.172s.455-3.457 5.974-3.84l42.827.444 40.887.424a6.578 6.578 0 0 1 5.519 4.266l1.84 66.683Z\"\n fill=\"url(#g)\"\n />\n <path\n d=\"M28.666 106.817s62.145 3.488 91.69.395c0 0 2.75-33.72-1.011-65.106 0 0-46.375-3.235-86.807-1.011a524.038 524.038 0 0 0-3.872 65.722Z\"\n fill=\"url(#h)\"\n />\n <path\n d=\"M28.666 106.817s62.145 3.488 91.69.395c0 0 2.75-33.72-1.011-65.106 0 0-46.375-3.235-86.807-1.011a524.038 524.038 0 0 0-3.872 65.722Z\"\n fill=\"url(#i)\"\n />\n <path\n d=\"m28.666 106.816-.849.87s59.294 3.285 93.51 0l-1.011-.445a904.36 904.36 0 0 1-91.65-.425Z\"\n fill=\"url(#j)\"\n />\n <path\n style={{ mixBlendMode: 'soft-light' }}\n d=\"m29.879 75.957 44.192-35.58s-21.156-.375-41.524.687c0 0-1.779 23.794-2.668 34.893Z\"\n fill=\"url(#k)\"\n />\n <path d=\"M27.594 51.353H26.17v3.74l1.223.223.202-3.963Z\" fill=\"url(#l)\" />\n <path d=\"M27.594 51.353H26.17v3.74l1.223.223.202-3.963Z\" fill=\"url(#m)\" />\n <path d=\"m27.283 57.61-1.112.313-.283 2.81 1.223.384.172-3.508Z\" fill=\"url(#n)\" />\n <path\n d=\"M49.36 112.453c-1.525.72-3.432.556-4.825-.551L24.89 96.297c-1.79-1.421-2.077-3.989-.64-5.751 1.449-1.774 4.834-2.499 6.653-1.07l19.985 15.705c1.885 1.481 2.132 4.102.559 5.84-.388.428-1.583 1.195-2.087 1.432Z\"\n fill=\"url(#o)\"\n />\n <path\n d=\"M50.738 111.599c-1.06.654-3.145-.227-4.185-1.388l-14.52-15.063c-1.336-1.492-1.648-4.064-.696-5.76.96-1.709 3.346-2.29 4.704-.788l14.919 16.49c1.407 1.555 2.22 3.446 1.17 5.113-.26.41-1.043 1.18-1.392 1.396Z\"\n fill=\"#BE4A3F\"\n />\n <path\n d=\"M16.945 89.33a1.9 1.9 0 0 1 .225-.105l5.185-2.942 7.498 13.564-5.075 2.715c-.11.105-.234.195-.367.269-1.788.988-4.909-1.233-6.97-4.962-2.061-3.73-2.284-7.551-.496-8.54Z\"\n fill=\"url(#p)\"\n />\n <path\n d=\"M16.945 89.33a1.9 1.9 0 0 1 .225-.105l5.185-2.942 7.498 13.564-5.075 2.715c-.11.105-.234.195-.367.269-1.788.988-4.909-1.233-6.97-4.962-2.061-3.73-2.284-7.551-.496-8.54Z\"\n fill=\"url(#q)\"\n />\n <path\n d=\"M22.355 86.29c.521 5.609 3.01 10.11 7.499 13.564l45.702-8.976-20.646-38.29L22.356 86.29Z\"\n fill=\"url(#r)\"\n />\n <path\n d=\"M77.715 90.33c5.213-2.883 4.566-14.033-1.445-24.905-6.01-10.872-15.11-17.35-20.322-14.468-5.213 2.882-4.566 14.033 1.444 24.905 6.011 10.872 15.11 17.35 20.323 14.467Z\"\n fill=\"url(#s)\"\n />\n <path\n d=\"M77.343 89.67c1.107-.612 1.938-1.678 2.47-3.168.54-1.518.751-3.392.625-5.577-.267-4.592-1.984-9.962-4.837-15.123-2.853-5.161-6.487-9.47-10.234-12.139-1.783-1.269-3.484-2.089-5.055-2.437-1.545-.342-2.889-.205-3.996.406-1.107.61-1.938 1.677-2.47 3.167-.54 1.516-.75 3.393-.624 5.577.111 1.92.476 3.976 1.072 6.096.829 2.95 4.111 4.695 5.771 7.697 1.764 3.193 1.823 7.391 4.028 9.746 1.359 1.449 2.772 2.706 4.2 3.724 1.783 1.269 3.484 2.089 5.056 2.436 1.544.343 2.888.206 3.994-.405Z\"\n fill=\"url(#t)\"\n />\n <path\n d=\"M137.263 72.34c1.789-6.906-2.552-13.906-9.695-15.636-7.143-1.73-14.384 2.467-16.173 9.372-1.789 6.906 2.552 13.906 9.695 15.636 7.143 1.729 14.384-2.467 16.173-9.373Z\"\n fill=\"url(#u)\"\n />\n <path\n d=\"M136.655 71.571c1.632-6.582-2.564-13.196-9.372-14.774-6.809-1.578-13.651 2.479-15.283 9.06-1.632 6.583 2.564 13.197 9.373 14.775 6.808 1.578 13.65-2.479 15.282-9.06Z\"\n fill=\"#23293E\"\n />\n <path\n d=\"M122.76 75.577h2.886v-7.2h2.009l.221-2.417h-2.23v-1.381c0-.566.118-.794.691-.794h1.567v-2.513h-2.002c-2.148 0-3.114.945-3.114 2.761v1.933h-1.54v2.41h1.498l.014 7.201Z\"\n fill=\"#fff\"\n />\n <path\n d=\"M102.277 51.368c1.813-6.998-2.586-14.093-9.826-15.846-7.24-1.752-14.578 2.5-16.39 9.5-1.814 6.998 2.585 14.092 9.824 15.845 7.24 1.753 14.578-2.5 16.392-9.499Z\"\n fill=\"url(#v)\"\n />\n <path\n d=\"M101.659 50.595c1.654-6.67-2.598-13.375-9.499-14.974-6.9-1.599-13.834 2.513-15.488 9.183-1.654 6.671 2.599 13.375 9.499 14.974 6.9 1.6 13.834-2.512 15.488-9.183Z\"\n fill=\"#6CCBDA\"\n />\n <path\n d=\"M83.704 52.27a7.3 7.3 0 0 0 11.22-6.478c.496-.36.925-.804 1.268-1.312-.47.207-.967.343-1.476.407a2.58 2.58 0 0 0 1.142-1.4 5.02 5.02 0 0 1-1.647.62 2.57 2.57 0 0 0-4.392 2.344 7.296 7.296 0 0 1-5.286-2.684 2.574 2.574 0 0 0 .796 3.425 2.525 2.525 0 0 1-1.164-.318 2.57 2.57 0 0 0 2.059 2.547 2.564 2.564 0 0 1-1.159.044 2.568 2.568 0 0 0 2.394 1.778 5.154 5.154 0 0 1-3.755 1.027Z\"\n fill=\"#fff\"\n />\n <path\n d=\"M142.631 26.63c2.057-7.94-2.933-15.988-11.147-17.977-8.213-1.988-16.539 2.837-18.596 10.777-2.056 7.94 2.934 15.989 11.148 17.977 8.213 1.989 16.538-2.836 18.595-10.776Z\"\n fill=\"url(#w)\"\n />\n <path\n d=\"M141.933 25.753c1.877-7.568-2.948-15.174-10.776-16.988-7.829-1.814-15.696 2.85-17.573 10.419-1.876 7.568 2.949 15.173 10.777 16.988 7.828 1.814 15.696-2.85 17.572-10.419Z\"\n fill=\"#F3786C\"\n />\n <path\n d=\"M124.369 19.81h-2.559v8.271h2.559v-8.27ZM123.074 18.734a1.524 1.524 0 0 0 1.421-.933 1.528 1.528 0 1 0-1.421.933ZM128.463 23.747c0-1.162.535-1.855 1.56-1.855.938 0 1.393.664 1.393 1.855v4.332h2.545v-5.227c0-2.217-1.252-3.285-3.007-3.285a2.892 2.892 0 0 0-2.491 1.364V19.82h-2.458v8.267h2.458v-4.339Z\"\n fill=\"#fff\"\n />\n <defs>\n <linearGradient\n id=\"a\"\n x1=\"84.716\"\n y1=\"82.551\"\n x2=\"126.947\"\n y2=\"116.89\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#23293E\" />\n <stop offset=\"1\" stopColor=\"#96D1DC\" />\n </linearGradient>\n <linearGradient\n id=\"b\"\n x1=\"120.515\"\n y1=\"71.981\"\n x2=\"147.398\"\n y2=\"79.709\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#23293E\" />\n <stop offset=\"1\" stopColor=\"#96D1DC\" />\n </linearGradient>\n <linearGradient\n id=\"c\"\n x1=\"34.792\"\n y1=\"72.579\"\n x2=\"-4.079\"\n y2=\"75.635\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#23293E\" />\n <stop offset=\"1\" stopColor=\"#96D1DC\" />\n </linearGradient>\n <linearGradient\n id=\"e\"\n x1=\"26.705\"\n y1=\"75.999\"\n x2=\"-3.31\"\n y2=\"73.238\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#23293E\" />\n <stop offset=\"1\" stopColor=\"#96D1DC\" />\n </linearGradient>\n <linearGradient\n id=\"f\"\n x1=\"75.011\"\n y1=\"115.732\"\n x2=\"75.011\"\n y2=\"36.192\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#1C257B\" />\n <stop offset=\"1\" stopColor=\"#482C83\" />\n </linearGradient>\n <linearGradient\n id=\"g\"\n x1=\"133.525\"\n y1=\"137.741\"\n x2=\"82.064\"\n y2=\"26.988\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#101A3F\" />\n <stop offset=\"1\" stopColor=\"#273460\" />\n </linearGradient>\n <linearGradient\n id=\"h\"\n x1=\"74.991\"\n y1=\"108.495\"\n x2=\"74.991\"\n y2=\"40.307\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FDFDFF\" />\n <stop offset=\"1\" stopColor=\"#DBCAFF\" />\n </linearGradient>\n <linearGradient\n id=\"i\"\n x1=\"29.92\"\n y1=\"82.312\"\n x2=\"116.101\"\n y2=\"54.364\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#B9F5FF\" />\n <stop offset=\"1\" stopColor=\"#E6FCFF\" />\n </linearGradient>\n <linearGradient\n id=\"j\"\n x1=\"74.567\"\n y1=\"109.131\"\n x2=\"74.567\"\n y2=\"106.816\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#447184\" />\n <stop offset=\"1\" stopColor=\"#365267\" />\n </linearGradient>\n <linearGradient\n id=\"k\"\n x1=\"51.975\"\n y1=\"75.957\"\n x2=\"51.975\"\n y2=\"40.306\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#B9ACF4\" />\n <stop offset=\"1\" stopColor=\"#E1D1F5\" />\n </linearGradient>\n <linearGradient\n id=\"l\"\n x1=\"25.775\"\n y1=\"55.089\"\n x2=\"24.698\"\n y2=\"52.202\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#23293F\" />\n <stop offset=\"1\" stopColor=\"#6DCCDB\" />\n </linearGradient>\n <linearGradient\n id=\"m\"\n x1=\"25.54\"\n y1=\"54.215\"\n x2=\"28.561\"\n y2=\"48.749\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#23293F\" />\n <stop offset=\"1\" stopColor=\"#6DCCDB\" />\n </linearGradient>\n <linearGradient\n id=\"n\"\n x1=\"25.272\"\n y1=\"60.142\"\n x2=\"27.799\"\n y2=\"55.088\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#23293F\" />\n <stop offset=\"1\" stopColor=\"#6DCCDB\" />\n </linearGradient>\n <linearGradient\n id=\"o\"\n x1=\"39.821\"\n y1=\"114.031\"\n x2=\"36\"\n y2=\"87.57\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#6D1007\" />\n <stop offset=\"1\" stopColor=\"#F3786C\" />\n </linearGradient>\n <linearGradient\n id=\"p\"\n x1=\"23.77\"\n y1=\"103.044\"\n x2=\"22.71\"\n y2=\"82.511\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#6D1007\" />\n <stop offset=\"1\" stopColor=\"#F3786C\" />\n </linearGradient>\n <linearGradient\n id=\"q\"\n x1=\"20.83\"\n y1=\"104.532\"\n x2=\"26.651\"\n y2=\"88.058\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#6D1007\" />\n <stop offset=\"0\" stopColor=\"#973026\" />\n <stop offset=\"1\" stopColor=\"#E86154\" />\n </linearGradient>\n <linearGradient\n id=\"r\"\n x1=\"38.103\"\n y1=\"101.399\"\n x2=\"46.747\"\n y2=\"54.065\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#6D1007\" />\n <stop offset=\"0\" stopColor=\"#973026\" />\n <stop offset=\"1\" stopColor=\"#E86154\" />\n </linearGradient>\n <linearGradient\n id=\"s\"\n x1=\"49.503\"\n y1=\"64.073\"\n x2=\"84.146\"\n y2=\"77.21\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#F79C8F\" />\n <stop offset=\"1\" stopColor=\"#CF574F\" />\n </linearGradient>\n <linearGradient\n id=\"t\"\n x1=\"60.913\"\n y1=\"76.645\"\n x2=\"77.934\"\n y2=\"65.393\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#6D1007\" />\n <stop offset=\"1\" stopColor=\"#F3786C\" />\n </linearGradient>\n <linearGradient\n id=\"u\"\n x1=\"120.478\"\n y1=\"82.837\"\n x2=\"127.409\"\n y2=\"56.652\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset=\".001\" stopColor=\"#181B27\" />\n <stop offset=\"1\" stopColor=\"#23293E\" />\n </linearGradient>\n <linearGradient\n id=\"v\"\n x1=\"82.725\"\n y1=\"60.058\"\n x2=\"94.803\"\n y2=\"36.611\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#65B5C1\" />\n <stop offset=\"1\" stopColor=\"#6CCBDA\" />\n </linearGradient>\n <linearGradient\n id=\"w\"\n x1=\"123.332\"\n y1=\"38.701\"\n x2=\"133.958\"\n y2=\"8.594\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#C26960\" />\n <stop offset=\"1\" stopColor=\"#F3786C\" />\n </linearGradient>\n <radialGradient\n id=\"d\"\n cx=\"0\"\n cy=\"0\"\n r=\"1\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"matrix(11.7758 0 0 11.3842 12.048 68.587)\"\n >\n <stop stopColor=\"#3996F7\" />\n <stop offset=\"1\" stopColor=\"#6840D5\" />\n </radialGradient>\n </defs>\n </svg>\n );\n}\n\nShareImage.propTypes = {\n height: PropTypes.number,\n};\n\nShareImage.defaultProps = {\n height: 117,\n};\n\nexport default ShareImage;\n","import * as React from 'react';\n\nfunction useDescriptionPosition() {\n const [bottom, setBottom] = React.useState(197);\n const [ready, setReady] = React.useState(false);\n\n React.useEffect(() => {\n setTimeout(() => {\n getPosition();\n setReady(true);\n }, 500);\n getPosition();\n window.addEventListener('resize', getPosition);\n return () => window.removeEventListener('resize', getPosition);\n }, []);\n\n function getPosition() {\n const selector = '.description-text';\n const element = document.querySelector(selector);\n const position = element?.getBoundingClientRect();\n if (position?.bottom) {\n setBottom(position.bottom);\n }\n }\n return { bottom, ready };\n}\n\nexport default useDescriptionPosition;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport { Description, Title } from '@web/components/VoterRegistration/newComponents/TextStyles';\nimport DesktopLinks from './DesktopLinks';\nimport MobileShare from './MobileShare';\nimport ShareImage from './ShareImage';\n\nimport {\n largeBreakpoint,\n smallBreakpoint,\n} from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport useDescriptionPosition from './useDescriptionPosition';\nimport { useTranslation } from 'react-i18next';\n\nconst ButtonArea = styled.div`\n display: flex;\n margin-top: 29px;\n width: 100%;\n`;\n\nconst StyledBox = styled.div`\n align-items: center;\n background: linear-gradient(\n 110.61deg,\n rgba(108, 203, 218, 0.2) 6.98%,\n rgba(108, 203, 218, 0.006) 100.54%\n ),\n #ffffff;\n border: 1px solid #6ccbda;\n border-radius: 12px;\n box-shadow: 8px 8px 32px rgba(0, 41, 64, 0.06);\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-bottom: 30px;\n margin-top: 20px;\n padding: 2rem;\n transition: opacity 250ms ease-out, transform 250ms ease-out;\n ${smallBreakpoint} {\n opacity: ${({ $ready }) => ($ready ? 1 : 0)};\n margin-top: 0;\n\n position: absolute;\n z-index: 2;\n left: 24px;\n right: 24px;\n top: 197px;\n transform: translateY(${({ $translateY }) => $translateY}px);\n }\n ${largeBreakpoint} {\n border-radius: 0.25rem;\n }\n`;\n\nconst centerMobile = css`\n text-align: center;\n ${largeBreakpoint} {\n border-radius: 0.25rem;\n }\n`;\n\nconst StyledTitle = styled(Title)`\n ${centerMobile}\n margin-top: 25px;\n font-size: 18px;\n ${largeBreakpoint} {\n }\n`;\nconst StyledDescription = styled(Description)`\n ${centerMobile}\n max-width: 236px;\n margin-bottom: 11px;\n ${largeBreakpoint} {\n max-width: initial;\n }\n`;\n\nfunction Box(props) {\n const { t } = useTranslation();\n const showMobileShare = navigator?.share;\n\n // The next three lines are for mobile only\n const { bottom, ready } = useDescriptionPosition();\n const defaultPosition = 197;\n const translateY = ready ? bottom + 32 - defaultPosition : -10;\n\n return (\n <StyledBox $ready={ready} $translateY={translateY}>\n <ShareImage />\n <StyledTitle forwardedAs=\"h2\">{t('check_registration.referral.ctaTitle')}</StyledTitle>\n <StyledDescription>{t('check_registration.referral.ctaDescription')}</StyledDescription>\n <ButtonArea>\n {showMobileShare ? <MobileShare {...props} /> : <DesktopLinks {...props} />}\n </ButtonArea>\n </StyledBox>\n );\n}\n\nBox.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n id: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n }),\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n }),\n referralLink: PropTypes.string.isRequired,\n team: PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n }),\n};\n\nBox.defaultProps = {};\n\nexport default Box;\n","import React from 'react';\n\nconst Graph = props => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"156\"\n height=\"64\"\n viewBox=\"0 0 156 64\"\n fill=\"none\"\n {...props}\n >\n <g clipPath=\"url(#clip0_468_7433)\">\n <path\n d=\"M-3.18544 56.0967L-4 56.2504V57.0794V83V84H-3H157.5H158.5V83V12V10.8839L157.391 11.006L137.571 13.1878C116.74 15.4808 96.5978 22.0032 78.3773 32.3552C63.8074 40.6332 47.9683 46.4436 31.5016 49.551L-3.18544 56.0967Z\"\n stroke=\"url(#paint0_linear_468_7433)\"\n strokeWidth=\"2\"\n />\n <path\n d=\"M31.7451 50.0336L-3 56.507V91H157.5V12L137.58 14.165C116.947 16.4074 96.9798 22.7974 78.8786 32.9511C64.206 41.1816 48.2839 46.9522 31.7451 50.0336Z\"\n fill=\"url(#paint1_linear_468_7433)\"\n />\n </g>\n <defs>\n <linearGradient\n id=\"paint0_linear_468_7433\"\n x1=\"77.25\"\n y1=\"12\"\n x2=\"77.25\"\n y2=\"76.2381\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FFD54F\" />\n <stop offset=\"1\" stopColor=\"#FFD54F\" stopOpacity=\"0\" />\n </linearGradient>\n <linearGradient\n id=\"paint1_linear_468_7433\"\n x1=\"86.459\"\n y1=\"13.1127\"\n x2=\"89.9867\"\n y2=\"72.6189\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#D4AB42\" />\n <stop offset=\"0.920156\" stopColor=\"#F8E8BF\" stopOpacity=\"0.34\" />\n <stop offset=\"1\" stopColor=\"#F8E8BF\" stopOpacity=\"0\" />\n </linearGradient>\n <clipPath id=\"clip0_468_7433\">\n <rect width=\"156\" height=\"64\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nGraph.propTypes = {};\n\nGraph.defaultProps = {};\n\nexport default Graph;\n","import React from 'react';\n\nconst ArrowUp = props => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={16} height={16} fill=\"none\" {...props}>\n <path\n fill=\"#000\"\n d=\"M8.354 2.646a.5.5 0 0 0-.708 0L4.464 5.828a.5.5 0 1 0 .708.708L8 3.707l2.828 2.829a.5.5 0 1 0 .708-.708L8.354 2.646ZM8.5 12V3h-1v9h1Z\"\n />\n </svg>\n );\n};\n\nArrowUp.propTypes = {};\n\nArrowUp.defaultProps = {};\n\nexport default ArrowUp;\n","import React, { useCallback, useMemo } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport QRCode from 'react-qr-code';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport Clipboard from 'react-clipboard.js';\nimport { message } from 'antd';\n\nimport Button from '@web/components/VoterRegistration/newComponents/Button';\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport { track } from '@web/services/analytics';\nimport sendError from '@web/utils/sendError';\nimport { colors } from '@web/styles/theme';\nimport ArrowUp from '@web/components/FanOut/components/icons/ArrowUp';\nimport Copy from '@web/components/FanOut/components/icons/Copy';\nimport ShareIcon from '@web/components/VoterRegistration/newComponents/icons/Share';\nimport { amplitudeTrack } from '@web/components/FanOut/hooks/useFanOutAmplitude';\n\nconst StyledContent = styled.div`\n display: flex;\n width: 100%;\n padding: 24px;\n align-items: flex-start;\n flex-direction: row;\n gap: 32px;\n flex-shrink: 0;\n border-radius: 12px;\n border: 2px solid ${({ theme }) => theme.colors.blue};\n background: ${({ theme }) => theme.colors.white};\n box-shadow: 4px 4px 0px 0px ${({ theme }) => theme.colors.blue};\n\n ${smallBreakpoint} {\n flex-direction: column;\n align-items: center;\n padding: 16px;\n align-items: center;\n gap: 18px;\n }\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n`;\n\nconst DescriptionContainer = styled(Container)`\n display: flex;\n gap: 18px;\n\n ${smallBreakpoint} {\n align-items: center;\n justify-content: center;\n }\n`;\n\nconst Text = styled.div`\n color: ${({ theme }) => theme.colors.trueBlack};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem;\n`;\n\nconst QRCodeContainer = styled(Container)`\n align-items: center;\n gap: 16px;\n`;\n\nconst RecruitmentContainer = styled(Container)`\n align-items: center;\n`;\n\nconst RecruitmentText = styled(Text)`\n line-height: 1rem;\n`;\n\nconst ShareTitle = styled(Text)`\n font-size: 1.5rem;\n font-weight: 600;\n line-height: 2rem;\n\n ${smallBreakpoint} {\n font-size: 1.125rem;\n line-height: 1.5rem;\n text-align: center;\n }\n`;\n\nconst ShareDescription = styled(Text)`\n ${smallBreakpoint} {\n text-align: center;\n color: ${({ theme }) => theme.colors.blackL32};\n font-size: 0.875rem;\n line-height: 1.125rem; /* 128.571% */\n }\n`;\n\nconst ShareNote = styled(Text)`\n font-size: 0.8rem;\n line-height: 1rem;\n\n ${smallBreakpoint} {\n text-align: center;\n color: ${({ theme }) => theme.colors.blackL32};\n font-size: 0.75rem;\n }\n`;\n\nconst LinkContainer = styled(Container)`\n display: flex;\n width: 100%;\n gap: 8px;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n ${smallBreakpoint} {\n flex-direction: column;\n gap: 18px;\n }\n`;\n\nconst LinkClipboard = styled(Clipboard)`\n display: flex;\n padding: 20px 16px;\n width: 250%;\n flex-direction: row;\n align-items: center;\n gap: 7px;\n border-radius: 8px;\n border: 1px solid rgba(57, 62, 91, 0.2);\n height: 64px;\n\n ${smallBreakpoint} {\n width: 100%;\n }\n\n &:hover {\n cursor: pointer;\n border-color: rgba(57, 62, 91, 0.5);\n }\n\n /* Shadow/Default */\n box-shadow: 8px 8px 32px 0px rgba(0, 41, 64, 0.06);\n`;\n\nconst LinkText = styled(Text)`\n font-weight: 700;\n`;\n\nconst StyledClipboard = styled(Clipboard)`\n display: flex;\n width: 100%;\n`;\n\nconst StyledButton = styled(Button)`\n color: ${({ theme }) => theme.colors.trueWhite};\n text-align: center;\n letter-spacing: 0.5px;\n gap: 6px;\n\n ${smallBreakpoint} {\n width: 100%;\n }\n\n &&& {\n height: 64px;\n box-shadow: 8px 8px 32px 0px rgba(0, 41, 64, 0.06);\n }\n`;\n\nconst StyledShareIcon = styled(ShareIcon)`\n margin-right: 6px;\n`;\n\nconst QRCodeShare = ({ activity, team, shareLink, isFanOut }) => {\n const { t } = useTranslation();\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n\n const showMobileShare = useMemo(() => navigator?.share, []);\n\n // use shareLink if it is passed in, otherwise use the referral link from the contact form result\n const referralLink = useMemo(\n () => shareLink || contactFormResult.referral_link || '',\n [shareLink, contactFormResult.referral_link],\n );\n\n const copyLink = useCallback(() => {\n message.success(t('activity.share.copied_to_clipboard'));\n\n if (isFanOut) {\n amplitudeTrack({ activity, name: 'FAN_OUT_COPY_SHARE_LINK', team });\n } else {\n track('VR_COPY_SHARE_LINK', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n }\n }, [activity, team, isFanOut, t]);\n\n const mobileShare = useCallback(() => {\n const shareData = {\n text: t('check_registration.referral.fanOutMobileShareText'),\n title: activity.title,\n url: referralLink,\n };\n if (navigator?.canShare && navigator.canShare(shareData) && navigator.share) {\n navigator.share(shareData).catch(err => {\n if (err.toString().includes('AbortError')) {\n // The share api throws this error when a user decides not to share.\n // It isn't a real error.\n return null;\n }\n sendError('FanOut Voter Registration: User encountered error while sharing', { err });\n });\n }\n }, [activity.title, referralLink, t]);\n\n return (\n <StyledContent>\n <QRCodeContainer>\n <QRCode size={156} value={referralLink} />\n <RecruitmentContainer>\n <ArrowUp />\n <RecruitmentText>{t('check_registration.referral.recruitmentLink')}</RecruitmentText>\n </RecruitmentContainer>\n </QRCodeContainer>\n <DescriptionContainer>\n <ShareTitle>{t('check_registration.referral.shareYourLink')}</ShareTitle>\n <ShareDescription>{t('check_registration.referral.sendLink')}</ShareDescription>\n <ShareNote>{t('check_registration.referral.note')}</ShareNote>\n <LinkContainer>\n <LinkClipboard component=\"span\" data-clipboard-text={referralLink} onSuccess={copyLink}>\n <Copy />\n <LinkText>{referralLink}</LinkText>\n </LinkClipboard>\n {showMobileShare ? (\n <StyledButton onClick={mobileShare} variant=\"fan_out\">\n <StyledShareIcon fill={colors.blue} />\n {t('button.share')}\n </StyledButton>\n ) : (\n <StyledClipboard\n component=\"span\"\n data-clipboard-text={referralLink}\n onSuccess={copyLink}\n >\n <StyledButton onClick={null} variant=\"fan_out\">\n <Copy fill={colors.blue} />\n {t('check_registration.referral.copyButton')}\n </StyledButton>\n </StyledClipboard>\n )}\n </LinkContainer>\n </DescriptionContainer>\n </StyledContent>\n );\n};\n\nQRCodeShare.propTypes = {\n activity: PropTypes.object.isRequired,\n isFanOut: PropTypes.bool,\n shareLink: PropTypes.string,\n team: PropTypes.object,\n};\n\nQRCodeShare.defaultProps = {};\n\nexport default QRCodeShare;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport { message } from 'antd';\n\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport Graph from '../icons/Graph';\nimport QRCodeShare from '../QRCodeShare';\nimport useIsMobile from '@web/components/VoterRegistration/hooks/useIsMobile';\nimport Button from '@web/components/VoterRegistration/newComponents/Button';\nimport { fanOut } from '@web/services/api';\n\nconst StyledShare = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 24px;\n\n ${smallBreakpoint} {\n padding: 0px;\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n`;\n\nconst Text = styled.div`\n color: ${({ theme }) => theme.colors.trueBlack};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem;\n`;\n\nconst EntriesContent = styled(Container)`\n display: flex;\n flex-direction: row;\n width: 100%;\n padding: 16px 24px;\n align-items: center;\n gap: 32px;\n flex-shrink: 0;\n border-radius: 12px;\n border: 1px solid rgba(57, 62, 91, 0.1);\n box-shadow: 7px 6px 20px 0px rgba(0, 0, 0, 0.05);\n\n ${smallBreakpoint} {\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 32px;\n }\n`;\n\nconst StyledGraph = styled(Graph)`\n min-width: 156px;\n`;\n\nconst TrackContainer = styled(Container)`\n flex-direction: row;\n flex: 1;\n align-items: flex-start;\n gap: 24px;\n flex-shrink: 0;\n\n ${smallBreakpoint} {\n flex-direction: column;\n }\n`;\n\nconst TrackText = styled(Text)`\n font-weight: 600;\n`;\n\nconst StatsText = styled(Text)``;\n\nconst StyledButton = styled(Button)`\n margin-top: 10px;\n text-decoration: underline;\n`;\n\nconst FanOutShare = ({ activity, team, handleClose, shareLink }) => {\n const { t } = useTranslation();\n const isMobile = useIsMobile();\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n\n useEffect(() => {\n // if shareLink provide, this component will be used for FanOut share in sweepstakes, so we don't need to send auth email, otherwise we provide the necessary data and the hook will be triggered\n if (shareLink) return;\n\n fanOut\n .sendAuthEmail({\n activity_id: activity?.id,\n activity_slug: activity?.slug,\n campaign_id: activity?.campaign?.id,\n campaign_slug: activity?.campaign?.slug,\n email: contactFormResult.email,\n phone: contactFormResult.phone,\n referral_link: contactFormResult.referral_link,\n })\n .catch(error => {\n message.error(\n error?.response?.data?.message || error?.message || t('common.something_went_wrong'),\n );\n console.error(error);\n });\n }, [\n activity,\n contactFormResult.email,\n contactFormResult.phone,\n contactFormResult.referral_link,\n shareLink,\n t,\n ]);\n\n return (\n <StyledShare>\n <QRCodeShare activity={activity} team={team} shareLink={shareLink} isFanOut />\n <EntriesContent>\n <StyledGraph />\n <TrackContainer>\n <TrackText>{t('check_registration.referral.keepTrack')}</TrackText>\n <StatsText>{t('check_registration.referral.textedLink')}</StatsText>\n </TrackContainer>\n </EntriesContent>\n {isMobile && (\n <StyledButton onClick={handleClose} variant=\"link\">\n {t('check_registration.referral.close')}\n </StyledButton>\n )}\n </StyledShare>\n );\n};\n\nFanOutShare.propTypes = {\n activity: PropTypes.object.isRequired,\n handleClose: PropTypes.func.isRequired,\n shareLink: PropTypes.string,\n team: PropTypes.object,\n};\n\nFanOutShare.defaultProps = {\n team: null,\n};\n\nexport default FanOutShare;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst TitleWrapper = styled.div`\n background-color: ${({ theme }) => theme.colors.blue};\n h1,\n p {\n color: #fff;\n text-align: center;\n }\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n\n clip-path: ${({ isFanOut }) => (isFanOut ? 'none' : 'polygon(0 0, 100% 0, 100% 88%, 0% 100%)')};\n padding: 60px 24px 45px;\n`;\n\nconst FanOutTitleWrapper = styled.div`\n background: radial-gradient(\n 64.5% 64.52% at 97.64% 1.3%,\n rgba(197, 55, 94, 0.2) 0%,\n rgba(197, 55, 94, 0) 100%\n ),\n radial-gradient(\n 66.22% 90.3% at 98.11% 98.85%,\n rgba(140, 205, 217, 0.2) 0%,\n rgba(140, 205, 217, 0) 100%\n ),\n radial-gradient(\n 64.49% 126.95% at 0% 100%,\n rgba(184, 59, 201, 0.2) 0%,\n rgba(184, 59, 201, 0) 100%\n ),\n radial-gradient(\n 86.75% 134.97% at 0% 0%,\n rgba(152, 204, 201, 0.2) 0%,\n rgba(152, 204, 201, 0) 100%\n ),\n radial-gradient(\n 53.76% 53.76% at 50% 46.24%,\n rgba(225, 159, 83, 0.2) 0%,\n rgba(225, 159, 83, 0) 100%\n ),\n #fff;\n\n h1,\n p {\n color: ${({ theme }) => theme.colors.blue};\n }\n // because of original modal paddings\n // faster and easier to do this than to change the modal styles on every screen\n margin: -28px -16px 0;\n width: calc(100% + 32px);\n\n padding: 15px 16px 20px;\n`;\n\nconst Spacer = styled.div`\n margin-top: ${({ $isForm }) => ($isForm ? 180 : 140)}px;\n`;\n\nfunction MobileHero({ children, isForm, isFanOut, ...rest }) {\n return isFanOut ? (\n <>\n <FanOutTitleWrapper {...rest}>{children}</FanOutTitleWrapper>\n </>\n ) : (\n <>\n <TitleWrapper {...rest}>{children}</TitleWrapper>\n <Spacer $isForm={isForm} />\n </>\n );\n}\n\nMobileHero.propTypes = {\n children: PropTypes.any.isRequired,\n isFanOut: PropTypes.bool,\n isForm: PropTypes.bool,\n};\n\nMobileHero.defaultProps = {};\n\nexport default MobileHero;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst SIZE = 16;\n\nconst Circle = styled.div`\n align-items: center;\n background-color: ${({ $bgColor }) => $bgColor};\n display: flex;\n border-radius: ${SIZE / 2}px;\n box-shadow: 0px 1px 9px rgba(0, 0, 0, 0.07);\n height: ${SIZE}px;\n justify-content: center;\n margin-right: 0.5rem;\n min-width: ${SIZE}px;\n width: ${SIZE}px;\n`;\n\nfunction CheckMark({ backgroundColor, pageColor }) {\n return (\n <Circle $bgColor={backgroundColor}>\n <svg height=\"7\" viewBox=\"0 0 10 7\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M1 3.30755L3.79999 6L9 1\" stroke={pageColor} strokeLinecap=\"round\" />\n </svg>\n </Circle>\n );\n}\n\nCheckMark.propTypes = {\n backgroundColor: PropTypes.string,\n pageColor: PropTypes.string,\n};\n\nCheckMark.defaultProps = {\n backgroundColor: '#fff',\n pageColor: '#23293E',\n};\n\nexport default CheckMark;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport CheckMark from './CheckMark';\n\nconst StyledIncentiveItem = styled.li`\n align-items: center;\n display: flex;\n`;\n\nfunction IncentiveItem({ children, iconColor, pageColor, ...rest }) {\n return (\n <StyledIncentiveItem {...rest}>\n <CheckMark backgroundColor={iconColor} pageColor={pageColor} />\n {children}\n </StyledIncentiveItem>\n );\n}\n\nIncentiveItem.propTypes = {\n children: PropTypes.any,\n iconColor: PropTypes.string,\n pageColor: PropTypes.string,\n};\n\nIncentiveItem.defaultProps = {\n children: null,\n};\n\nexport default IncentiveItem;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport IncentiveItem from './IncentiveItem';\n\nconst Ul = styled.ul`\n display: flex;\n flex-direction: column;\n gap: 1rem;\n margin: 0;\n padding: 0;\n margin-left: 0.5rem;\n`;\n\nfunction Incentives({ fontColor, iconColor, pageColor, incentives }) {\n if (!incentives) {\n return null;\n }\n\n return (\n <Ul>\n {incentives.map(el => (\n <IncentiveItem\n iconColor={iconColor}\n pageColor={pageColor}\n key={el.id}\n style={{ order: el.position }}\n >\n <span style={{ color: fontColor }}>{el.name}</span>\n </IncentiveItem>\n ))}\n </Ul>\n );\n}\n\nIncentives.propTypes = {\n fontColor: PropTypes.string,\n iconColor: PropTypes.string,\n incentives: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number.isRequired,\n image_url: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n position: PropTypes.number.isRequired,\n }),\n ),\n pageColor: PropTypes.string,\n};\n\nIncentives.defaultProps = {};\n\nexport default Incentives;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\n\nimport { message } from 'antd';\nimport Clipboard from 'react-clipboard.js';\nimport ShareButton from './Box/ShareButton';\nimport Twitter from '@web/components/VoterRegistration/newComponents/icons/Twitter';\nimport LinkedIn from '@web/components/VoterRegistration/newComponents/icons/LinkedIn';\nimport Facebook from '@web/components/VoterRegistration/newComponents/icons/Facebook';\nimport { FacebookShareButton, LinkedinShareButton, TwitterShareButton } from 'react-share';\nimport Incentives from '@web/components/VoterRegistration/newComponents/ChooseFlow/Incentives';\n\nimport {\n largeBreakpoint,\n smallBreakpoint,\n} from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport { track } from '@web/services/analytics';\nimport { vrDefaultColors } from '@web/styles/theme';\n\nconst StyleShareButton = styled(ShareButton)`\n background: ${({ $bgColor }) => $bgColor ?? 'transparent'};\n border: 1px solid ${({ $outlineColor }) => $outlineColor};\n color: ${({ $fontColor }) => $fontColor};\n\n svg path {\n fill: ${({ $bgColor, $outlineColor }) => (!$bgColor ? $outlineColor : 'unset')};\n }\n`;\n\nconst Right = styled.div`\n border-radius: 24px;\n grid-area: right;\n overflow: hidden;\n\n ${largeBreakpoint} {\n padding: 1rem 1rem 1.5rem;\n box-shadow: 4px 4px 64px 0px #0000000d;\n }\n`;\n\nconst Image = styled.img`\n border-radius: 0.5rem;\n max-height: ${({ $isIncentives }) => ($isIncentives ? '174px' : '100%')};\n object-fit: ${({ $isFanOutReferrer }) => ($isFanOutReferrer ? 'scale-down' : 'cover')};\n width: 100%;\n\n ${largeBreakpoint} {\n max-height: ${({ $isIncentives }) => ($isIncentives ? '224px' : '100%')};\n margin-bottom: ${({ $isIncentives }) => (!$isIncentives ? 0 : '2rem')};\n }\n`;\n\nconst IncentivesContainer = styled.div`\n margin-top: 1rem;\n\n ${smallBreakpoint} {\n padding: 0 1rem 1.5rem;\n }\n\n ${largeBreakpoint} {\n margin-top: 2rem;\n }\n`;\n\nconst ButtonColumn = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({ $isFanOutReferrer }) => ($isFanOutReferrer ? '0' : '1rem')};\n grid-area: buttons;\n margin-top: 2rem;\n ${largeBreakpoint} {\n flex: 1;\n justify-content: flex-end;\n margin-top: 0;\n }\n`;\n\nconst StyledChooseFlow = styled.div`\n display: grid;\n grid-template-columns: 1fr;\n grid-template-areas:\n 'title'\n 'right'\n 'buttons';\n\n ${largeBreakpoint} {\n align-items: space-between;\n grid-gap: 0 3rem;\n grid-template-columns: 1fr 448px;\n grid-template-areas:\n 'title right'\n 'buttons right';\n }\n`;\n\nconst VoterRegistrationShare = props => {\n const { t } = useTranslation();\n const { activity, referralLink, text, team } = props;\n const fontColor = React.useMemo(\n () => activity?.settings?.font_color ?? vrDefaultColors.fontColor,\n [activity?.settings?.font_color],\n );\n\n const buttonColor = React.useMemo(\n () => activity?.settings?.button_color ?? vrDefaultColors.buttonColor,\n [activity?.settings?.button_color],\n );\n\n const bgColor = React.useMemo(\n () => activity?.settings?.background_color ?? vrDefaultColors.backgroundColor,\n [activity?.settings?.background_color],\n );\n\n const isIncentives = React.useMemo(\n () => activity?.activity_incentives_attributes?.length > 0,\n [activity],\n );\n\n const image = React.useMemo(() => team?.profile_img_url || activity.media_url, [activity, team]);\n\n return (\n <StyledChooseFlow>\n <ButtonColumn>\n {text}\n <Clipboard\n style={{ marginTop: 30 }}\n component=\"div\"\n data-clipboard-text={referralLink}\n onSuccess={() => {\n message.info(t('common.copied_to_clipboard'));\n track('VR_COPY_SHARE_LINK', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n }}\n >\n <StyleShareButton $fontColor={bgColor} $outlineColor={buttonColor} $bgColor={buttonColor}>\n {t('check_registration.referral.copyButton')}\n </StyleShareButton>\n </Clipboard>\n <FacebookShareButton url={referralLink}>\n <StyleShareButton $fontColor={buttonColor} $outlineColor={buttonColor}>\n <Facebook />\n Share on Facebook\n </StyleShareButton>\n </FacebookShareButton>\n <TwitterShareButton url={referralLink}>\n <StyleShareButton $fontColor={buttonColor} $outlineColor={buttonColor}>\n <Twitter />\n Share on Twitter\n </StyleShareButton>\n </TwitterShareButton>\n <LinkedinShareButton url={referralLink}>\n <StyleShareButton $fontColor={buttonColor} $outlineColor={buttonColor}>\n <LinkedIn />\n Share on LinkedIn\n </StyleShareButton>\n </LinkedinShareButton>\n </ButtonColumn>\n <Right>\n <Image $isIncentives={isIncentives} src={image} />\n {isIncentives && (\n <IncentivesContainer>\n <Incentives\n fontColor={fontColor}\n iconColor={fontColor}\n pageColor={bgColor}\n incentives={activity.activity_incentives_attributes}\n />\n </IncentivesContainer>\n )}\n </Right>\n </StyledChooseFlow>\n );\n};\n\nVoterRegistrationShare.propTypes = {\n activity: PropTypes.object,\n referralLink: PropTypes.string,\n team: PropTypes.object,\n text: PropTypes.node,\n};\n\nexport default VoterRegistrationShare;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Box from './Box';\nimport { Description, Title } from '@web/components/VoterRegistration/newComponents/TextStyles';\nimport FanOutShare from '@web/components/FanOut/components/Share';\nimport MobileHero from '../Info/MobileHero';\n\nimport { track } from '@web/services/analytics';\nimport useIsMobile from '@web/components/VoterRegistration/hooks/useIsMobile';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation } from 'react-router-dom/cjs/react-router-dom.min';\nimport { amplitudeTrack } from '@web/components/FanOut/hooks/useFanOutAmplitude';\nimport { vrDefaultColors } from '@web/styles/theme';\nimport VoterRegistrationShare from './VoterRegistrationShare';\n\nconst StyledShare = styled.div``;\n\nconst StyledMobileHero = styled(MobileHero)`\n &&& {\n padding-bottom: ${({ $isFanOut }) => ($isFanOut ? '5px' : '90px')};\n }\n`;\n\nconst FanOutShareWrapper = styled.div`\n margin-top: 16px;\n`;\n\nfunction Share(props) {\n const { t } = useTranslation();\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n const isMobile = useIsMobile();\n const { activity, team, isFanOut } = props;\n\n const { search } = useLocation();\n const queryParams = new URLSearchParams(search);\n const activeFormSection = queryParams.get('start');\n const activeLanguage = queryParams.get('language');\n\n let referralLink = contactFormResult?.referral_link || '';\n\n if (activeFormSection === '1') {\n referralLink += '?start=1';\n }\n\n if (activeLanguage) {\n const separator = referralLink.includes('?') ? '&' : '?';\n referralLink += `${separator}language=${activeLanguage}`;\n }\n\n React.useEffect(() => {\n if (isFanOut) {\n amplitudeTrack({ activity, name: 'FAN_OUT_VIEW_REFERRAL_RESULTS', team });\n } else {\n track('VR_VIEW_REFERRAL_RESULTS', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n }\n // eslint-disable-next-line\n }, []);\n\n const fontColor = React.useMemo(\n () => (isFanOut ? undefined : activity?.settings?.font_color ?? vrDefaultColors.fontColor),\n [activity?.settings?.font_color, isFanOut],\n );\n\n const text = (\n <>\n <Title $fontColor={fontColor}>\n {isFanOut\n ? t('check_registration.referral.fanOutShareTitle')\n : t('check_registration.referral.title')}\n </Title>\n {!isFanOut && (\n <Description $fontColor={fontColor} className=\"description-text\">\n {t('check_registration.referral.shareDescription')}\n </Description>\n )}\n </>\n );\n\n if (!isFanOut) {\n return (\n <VoterRegistrationShare\n text={text}\n team={team}\n activity={activity}\n referralLink={referralLink}\n />\n );\n }\n\n return (\n <StyledShare>\n {isMobile ? (\n <StyledMobileHero $isFanOut={isFanOut} isFanOut={isFanOut}>\n {text}\n </StyledMobileHero>\n ) : (\n text\n )}\n {isFanOut ? (\n <FanOutShareWrapper>\n <FanOutShare {...props} />\n </FanOutShareWrapper>\n ) : (\n <Box {...props} referralLink={referralLink} />\n )}\n </StyledShare>\n );\n}\n\nShare.propTypes = {\n activity: PropTypes.object.isRequired,\n isFanOut: PropTypes.bool,\n team: PropTypes.object,\n};\n\nShare.defaultProps = {\n team: null,\n};\n\nexport default Share;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Button from '.';\n\nimport { largeBreakpoint } from '../breakpoints';\n\nconst StyledBackButton = styled(Button)`\n &&& {\n color: #707070;\n font-weight: 700;\n ${largeBreakpoint} {\n justify-content: flex-start;\n }\n }\n`;\n\nfunction BackButton({ children, showIcon, ...rest }) {\n return (\n <StyledBackButton {...rest} variant=\"link\">\n {showIcon && (\n <svg\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ marginRight: 5, transform: 'translateY(1px)' }}\n >\n <path\n d=\"M7.5 2L3.5 6L7.5 10\"\n stroke=\"#707070\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n {children}\n </StyledBackButton>\n );\n}\n\nBackButton.propTypes = {\n children: PropTypes.any,\n showIcon: PropTypes.bool,\n};\n\nBackButton.defaultProps = {\n children: null,\n showIcon: true,\n};\n\nexport default BackButton;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Person(props) {\n return (\n <svg viewBox=\"0 0 14 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M7 8C9.13047 8 10.8571 6.23735 10.8571 4.0625C10.8571 1.88765 9.13047 0.125 7 0.125C4.86953 0.125 3.14286 1.88765 3.14286 4.0625C3.14286 6.23735 4.86953 8 7 8ZM9.7 8.98438H9.19676C8.52779 9.29814 7.78348 9.47656 7 9.47656C6.21652 9.47656 5.47522 9.29814 4.80324 8.98438H4.3C2.06406 8.98438 0.25 10.8362 0.25 13.1187V14.3984C0.25 15.2136 0.897879 15.875 1.69643 15.875H12.3036C13.1021 15.875 13.75 15.2136 13.75 14.3984V13.1187C13.75 10.8362 11.9359 8.98438 9.7 8.98438Z\"\n fill=\"#23293E\"\n />\n </svg>\n );\n}\n\nPerson.propTypes = {\n height: PropTypes.number,\n};\n\nPerson.defaultProps = {\n height: 16,\n};\n\nexport default Person;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Person from '@web/components/VoterRegistration/newComponents/icons/Person';\n\nimport { useTranslation } from 'react-i18next';\nimport theme from '@web/styles/theme';\n\nconst StyledContact = styled.div``;\n\nexport const IconWrapper = styled.div`\n align-items: center;\n display: flex;\n // MTS - We need to manually set the width here to accurately align the age row.\n min-width: 25px;\n width: 25px;\n path {\n fill: ${({ $color }) => $color};\n }\n`;\n\nconst Row = styled.div`\n display: flex;\n`;\n\nconst Age = styled.span`\n color: ${({ theme, $color }) => ($color ? `${$color}BF` : theme.colors.blackL32)};\n font-size: 16px;\n margin-left: 25px;\n`;\n\nconst Name = styled.span`\n font-size: 18px;\n font-weight: 700;\n text-transform: capitalize;\n color: ${({ $color }) => $color ?? theme.colors.black};\n`;\n\nfunction Contact({ age, name, fontColor }) {\n const { t } = useTranslation();\n return (\n <StyledContact>\n <Row>\n <IconWrapper $color={fontColor}>\n <Person />\n </IconWrapper>\n <Name $color={fontColor}>{name}</Name>\n </Row>\n <Row>\n <Age $color={fontColor}>\n {age} {t('check_registration.search_results.years_old')}\n </Age>\n </Row>\n </StyledContact>\n );\n}\n\nContact.propTypes = {\n age: PropTypes.any.isRequired,\n fontColor: PropTypes.string,\n name: PropTypes.any.isRequired,\n};\n\nContact.defaultProps = {};\n\nexport default Contact;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Arrow(props) {\n return (\n <svg viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M11.5781 5.62187L5.675 0.498437C5.62969 0.459375 5.57188 0.4375 5.51094 0.4375H4.12812C4.0125 0.4375 3.95937 0.58125 4.04687 0.65625L9.51875 5.40625H0.375C0.30625 5.40625 0.25 5.4625 0.25 5.53125V6.46875C0.25 6.5375 0.30625 6.59375 0.375 6.59375H9.51719L4.04531 11.3438C3.95781 11.4203 4.01094 11.5625 4.12656 11.5625H5.55625C5.58594 11.5625 5.61562 11.5516 5.6375 11.5312L11.5781 6.37813C11.6322 6.33109 11.6756 6.27299 11.7053 6.20776C11.735 6.14253 11.7504 6.07168 11.7504 6C11.7504 5.92832 11.735 5.85747 11.7053 5.79224C11.6756 5.72701 11.6322 5.66891 11.5781 5.62187Z\"\n fill=\"#23293E\"\n />\n </svg>\n );\n}\n\nArrow.propTypes = {\n height: PropTypes.number,\n};\n\nArrow.defaultProps = {\n height: 12,\n};\n\nexport default Arrow;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Arrow from '../icons/Arrow';\n\nconst DURATION = '150ms';\n\nconst StyledHoverCard = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.white};\n border-radius: 0.5rem;\n box-shadow: 0px 4px 20px 0px #00000012;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n min-height: 124px;\n padding: 20px;\n position: relative;\n transition: border ${DURATION} ease-out;\n :hover {\n border: 1px solid ${({ theme }) => theme.colors.blue};\n }\n`;\n\nconst ArrowArea = styled.div`\n align-items: center;\n display: flex;\n position: absolute;\n top: 20px;\n right: 22px;\n`;\n\nfunction HoverCard({ arrowChildren, isFanOut, children, ...rest }) {\n return (\n <StyledHoverCard role=\"button\" {...rest}>\n <ArrowArea>\n {arrowChildren}\n {!isFanOut && <Arrow />}\n </ArrowArea>\n {children}\n </StyledHoverCard>\n );\n}\n\nHoverCard.propTypes = {\n arrowChildren: PropTypes.any,\n children: PropTypes.any,\n isFanOut: PropTypes.bool,\n};\n\nHoverCard.defaultProps = {\n arrowChildren: null,\n children: null,\n};\n\nexport default HoverCard;\n","import * as React from 'react';\n// import PropTypes from 'prop-types';\n\nfunction Location(props) {\n return (\n <svg height=\"18\" viewBox=\"0 0 13 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M6.04771 16.7735C1.45039 10.1088 0.597046 9.42479 0.597046 6.97539C0.597046 3.62025 3.31691 0.900391 6.67205 0.900391C10.0272 0.900391 12.747 3.62025 12.747 6.97539C12.747 9.42479 11.8937 10.1088 7.29638 16.7735C6.99469 17.2094 6.34938 17.2093 6.04771 16.7735ZM6.67205 9.50664C8.07002 9.50664 9.2033 8.37337 9.2033 6.97539C9.2033 5.57741 8.07002 4.44414 6.67205 4.44414C5.27407 4.44414 4.1408 5.57741 4.1408 6.97539C4.1408 8.37337 5.27407 9.50664 6.67205 9.50664Z\"\n fill=\"#23293E\"\n />\n </svg>\n );\n}\n\nLocation.propTypes = {};\n\nLocation.defaultProps = {};\n\nexport default Location;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Plus(props) {\n return (\n <svg viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n clipRule=\"evenodd\"\n d=\"M6 1C6 0.447715 5.55228 0 5 0C4.44772 0 4 0.447716 4 1L4 4H1C0.447715 4 0 4.44772 0 5C0 5.55228 0.447715 6 1 6H4L4 9C4 9.55229 4.44771 10 5 10C5.55228 10 6 9.55228 6 9V6H9C9.55229 6 10 5.55228 10 5C10 4.44772 9.55228 4 9 4H6V1Z\"\n fill=\"#23293E\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n}\n\nPlus.propTypes = {\n height: PropTypes.number,\n};\n\nPlus.defaultProps = {\n height: 10,\n};\n\nexport default Plus;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport { useTranslation } from 'react-i18next';\n\nimport { IconWrapper } from '@web/components/VoterRegistration/newComponents/Contact';\nimport HoverCard from '@web/components/VoterRegistration/newComponents/HoverCard';\n\nimport Location from '@web/components/VoterRegistration/newComponents/icons/Location';\nimport Plus from '@web/components/VoterRegistration/newComponents/icons/Plus';\n\n// MTS - We need to define these in order for the :hover selector to work.\nconst StyledLocation = styled(Location)``;\nconst StyledPlus = styled(Plus)``;\n\nconst StyledIconWrapper = styled(IconWrapper)`\n align-self: flex-start;\n height: 25px;\n`;\n\nconst Address = styled.p`\n color: #707070;\n font-size: 1rem;\n font-weight: 600;\n margin: 0;\n transition: color 150ms ease-out;\n color: ${({ $color }) => `${$color}BF`};\n`;\n\nconst StyledAddressCard = styled(HoverCard)`\n min-height: 115px;\n justify-content: space-between;\n ${StyledLocation} path, ${StyledPlus} path {\n fill: ${({ $color }) => $color ?? '#23293e'};\n fill-opacity: 0.3;\n transition: fill 150ms ease-out, fill-opacity 150ms ease-out;\n }\n ${({ isFanOut }) => {\n if (!isFanOut) {\n return css`\n border: 1px solid ${({ theme, $bgColor }) => $bgColor ?? theme.colors.white};\n svg path {\n fill: ${({ theme, $color }) => $color ?? theme.colors.blue} !important;\n }\n :hover {\n border: 1px solid ${({ theme, $color }) => $color ?? theme.colors.blue};\n ${Address} {\n color: ${({ $color }) => $color};\n }\n ${StyledLocation} path {\n fill: ${({ $color }) => $color};\n fill-opacity: 1;\n }\n ${StyledPlus} path {\n fill-opacity: 1;\n }\n }\n `;\n } else {\n return css`\n ${Address} {\n color: ${({ theme }) => theme.colors.black};\n }\n ${({ picked }) =>\n picked &&\n css`\n border: 1px solid ${({ theme }) => theme.colors.blue};\n `}\n `;\n }\n }}\n`;\n\nconst Row = styled.div`\n align-items: center;\n display: flex;\n`;\n\nconst Text = styled.p`\n color: ${({ theme, $color }) => `${$color ?? theme.colors.blackL32}BF`};\n font-size: 1rem;\n margin: 0;\n`;\n\nconst PickerIndicator = styled.div`\n width: 15px;\n height: 15px;\n border-radius: 50%;\n background: ${({ theme, $picked }) => ($picked ? theme.colors.trueBlack : theme.colors.white)};\n border: 1px solid ${({ theme }) => theme.colors.trueBlack};\n opacity: ${({ $picked }) => ($picked ? 1 : 0.4)};\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst Indicator = styled.div`\n width: 13px;\n height: 13px;\n border-radius: 50%;\n border: 2px solid ${({ theme }) => theme.colors.white};\n`;\n\nconst AgainText = styled.div`\n color: rgba(35, 41, 62, 0.3);\n font-size: 1rem;\n font-weight: 400;\n line-height: 100%; /* 1rem */\n`;\n\nconst AddressCard = ({ address, icon, text, isFanOut, picked, fontColor, bgColor, ...rest }) => {\n const { t } = useTranslation();\n\n const iconMap = {\n location: <StyledLocation />,\n plus: <StyledPlus />,\n };\n\n return (\n <StyledAddressCard\n $bgColor={bgColor}\n $color={fontColor}\n isFanOut={isFanOut}\n picked={picked}\n {...rest}\n >\n <Row>\n <StyledIconWrapper $color={fontColor}>\n {isFanOut ? (\n <PickerIndicator $picked={picked}>\n <Indicator />\n </PickerIndicator>\n ) : (\n iconMap[icon]\n )}\n </StyledIconWrapper>\n <Text $color={fontColor}>{text}</Text>\n </Row>\n <Row>\n <IconWrapper $color={fontColor} />\n <Address $color={fontColor}>{address}</Address>\n </Row>\n {isFanOut && icon === 'plus' && (\n <Row style={{ marginTop: '10px' }}>\n <IconWrapper />\n <AgainText>{t('check_registration.addressConfirmation.registerAgain')}</AgainText>\n </Row>\n )}\n </StyledAddressCard>\n );\n};\n\nAddressCard.propTypes = {\n address: PropTypes.string.isRequired,\n bgColor: PropTypes.string,\n fontColor: PropTypes.string,\n icon: PropTypes.oneOf(['location', 'plus']),\n isFanOut: PropTypes.bool,\n picked: PropTypes.bool,\n text: PropTypes.string.isRequired,\n};\n\nAddressCard.defaultProps = {\n icon: 'plus',\n};\n\nexport default AddressCard;\n","import PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst colors = {\n blue: 'rgba(108, 203, 218, 0.1)',\n green: 'rgba(82, 196, 26, 0.1)',\n red: 'rgba(245, 34, 45, 0.06)',\n};\n\nconst MessageBox = styled.div`\n background-color: ${({ $bgColor }) => colors[$bgColor]};\n border-radius: 0.5rem;\n padding: 1rem;\n`;\n\nMessageBox.propTypes = {\n $bgColor: PropTypes.oneOf(['blue', 'red', 'green']),\n};\n\nMessageBox.defaultProps = {\n $bgColor: 'blue',\n};\n\nexport default MessageBox;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Question(props) {\n return (\n <svg viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M7 0C3.13438 0 0 3.13438 0 7C0 10.8656 3.13438 14 7 14C10.8656 14 14 10.8656 14 7C14 3.13438 10.8656 0 7 0ZM7 12.8125C3.79063 12.8125 1.1875 10.2094 1.1875 7C1.1875 3.79063 3.79063 1.1875 7 1.1875C10.2094 1.1875 12.8125 3.79063 12.8125 7C12.8125 10.2094 10.2094 12.8125 7 12.8125Z\"\n fill=\"black\"\n />\n <path\n d=\"M8.74375 3.94844C8.275 3.5375 7.65625 3.3125 7 3.3125C6.34375 3.3125 5.725 3.53906 5.25625 3.94844C4.76875 4.375 4.5 4.94844 4.5 5.5625V5.68125C4.5 5.75 4.55625 5.80625 4.625 5.80625H5.375C5.44375 5.80625 5.5 5.75 5.5 5.68125V5.5625C5.5 4.87344 6.17344 4.3125 7 4.3125C7.82656 4.3125 8.5 4.87344 8.5 5.5625C8.5 6.04844 8.15625 6.49375 7.62344 6.69844C7.29219 6.825 7.01094 7.04687 6.80937 7.3375C6.60469 7.63437 6.49844 7.99062 6.49844 8.35156V8.6875C6.49844 8.75625 6.55469 8.8125 6.62344 8.8125H7.37344C7.44219 8.8125 7.49844 8.75625 7.49844 8.6875V8.33281C7.49925 8.18113 7.54574 8.03321 7.63187 7.90834C7.71799 7.78347 7.83975 7.68746 7.98125 7.63281C8.90312 7.27812 9.49844 6.46562 9.49844 5.5625C9.5 4.94844 9.23125 4.375 8.74375 3.94844ZM6.375 10.4375C6.375 10.6033 6.44085 10.7622 6.55806 10.8794C6.67527 10.9967 6.83424 11.0625 7 11.0625C7.16576 11.0625 7.32473 10.9967 7.44194 10.8794C7.55915 10.7622 7.625 10.6033 7.625 10.4375C7.625 10.2717 7.55915 10.1128 7.44194 9.99556C7.32473 9.87835 7.16576 9.8125 7 9.8125C6.83424 9.8125 6.67527 9.87835 6.55806 9.99556C6.44085 10.1128 6.375 10.2717 6.375 10.4375Z\"\n fill=\"black\"\n />\n </svg>\n );\n}\n\nQuestion.propTypes = {\n height: PropTypes.number,\n};\n\nQuestion.defaultProps = {\n height: 14,\n};\n\nexport default Question;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport { CloseCircleOutlined } from '@ant-design/icons';\nimport { useTranslation } from 'react-i18next';\n\nimport AddressCard from './AddressCard';\nimport Contact, { IconWrapper } from '@web/components/VoterRegistration/newComponents/Contact';\nimport DotLoader from '@web/components/DotLoader';\nimport MessageBox from '@web/components/VoterRegistration/newComponents/MessageBox';\nimport Question from '@web/components/VoterRegistration/newComponents/icons/Question';\nimport { largeBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\n\nconst Row = styled.div`\n align-items: flex-start;\n display: flex;\n`;\n\nconst StyledMessageBox = styled(MessageBox)`\n margin-bottom: 1rem;\n margin-top: 2rem;\n\n ${({ $isFanOut }) =>\n $isFanOut\n ? css`\n background: ${({ theme }) => theme.colors.white};\n border: 1px solid ${({ theme }) => theme.colors.white};\n border-radius: 0.5rem;\n box-shadow: 0px 4px 20px 0px #00000012;\n `\n : css`\n background: ${({ $bgColor }) => ($bgColor ? `${$bgColor}40` : 'unset')};\n `}\n`;\n\nconst Cards = styled.div`\n display: grid;\n grid-gap: 1rem;\n grid-template-columns: 1fr;\n margin-bottom: 40px;\n ${largeBreakpoint} {\n grid-template-columns: 1fr 1fr;\n }\n`;\n\nconst Text = styled.p`\n font-size: 1rem;\n line-height: 20px;\n margin-bottom: 0;\n color: ${({ $color }) => $color};\n`;\n\nfunction NoAddressMatch({\n parsedVoter,\n recordAddress,\n userAddress,\n handleRecordCorrect,\n handleUserCorrect,\n loading,\n isFanOut,\n pickedAddress,\n setPickedAddress,\n fontColor,\n bgColor,\n progressColor,\n}) {\n const { t } = useTranslation();\n\n const infoText = React.useMemo(\n () =>\n isFanOut\n ? t('check_registration.addressConfirmation.infoLine1FanOut')\n : t('check_registration.addressConfirmation.infoLine1'),\n [t, isFanOut],\n );\n const recordCorrectText = React.useMemo(\n () =>\n isFanOut\n ? t('check_registration.addressConfirmation.recordCorrectFanOut')\n : t('check_registration.addressConfirmation.recordCorrect'),\n [t, isFanOut],\n );\n const userCorrectText = React.useMemo(\n () =>\n isFanOut\n ? t('check_registration.addressConfirmation.userCorrectFanOut')\n : t('check_registration.addressConfirmation.userCorrect'),\n [t, isFanOut],\n );\n\n const recordClicked = React.useCallback(() => setPickedAddress('record'), [setPickedAddress]);\n\n const userClicked = React.useCallback(() => setPickedAddress('user'), [setPickedAddress]);\n\n return (\n <>\n <StyledMessageBox $bgColor={progressColor} $isFanOut={isFanOut}>\n <Contact fontColor={fontColor} age={parsedVoter.age} name={parsedVoter.name} />\n <Row style={{ marginTop: 20 }}>\n <IconWrapper $color={fontColor} style={{ paddingTop: 3 }}>\n {isFanOut ? <CloseCircleOutlined style={{ color: '#F5222D' }} /> : <Question />}\n </IconWrapper>\n <Text $color={fontColor}>{infoText}</Text>\n </Row>\n {!isFanOut && (\n <Row>\n <IconWrapper />\n <Text $color={fontColor}>{t('check_registration.addressConfirmation.infoLine2')}</Text>\n </Row>\n )}\n </StyledMessageBox>\n {loading && <DotLoader centered color=\"black\" />}\n {!loading && (\n <Cards>\n <AddressCard\n fontColor={fontColor}\n bgColor={bgColor}\n address={recordAddress}\n icon=\"location\"\n isFanOut={isFanOut}\n picked={pickedAddress === 'record'}\n onClick={isFanOut ? recordClicked : handleRecordCorrect}\n text={recordCorrectText}\n />\n <AddressCard\n fontColor={fontColor}\n bgColor={bgColor}\n address={userAddress}\n icon=\"plus\"\n isFanOut={isFanOut}\n picked={pickedAddress === 'user'}\n onClick={isFanOut ? userClicked : handleUserCorrect}\n text={userCorrectText}\n />\n </Cards>\n )}\n </>\n );\n}\n\nNoAddressMatch.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n id: PropTypes.number.isRequired,\n }),\n id: PropTypes.number.isRequired,\n }),\n bgColor: PropTypes.string,\n contactFormResult: PropTypes.shape({\n address: PropTypes.string.isRequired,\n city: PropTypes.string.isRequired,\n encode_id: PropTypes.any.isRequired,\n id: PropTypes.number.isRequired,\n state_abbrev: PropTypes.string.isRequired,\n zip_code: PropTypes.string.isRequired,\n }),\n fontColor: PropTypes.string,\n handleRecordCorrect: PropTypes.func.isRequired,\n handleUserCorrect: PropTypes.func.isRequired,\n isFanOut: PropTypes.bool,\n loading: PropTypes.bool.isRequired,\n nextPage: PropTypes.func.isRequired,\n parsedVoter: PropTypes.shape({\n addressLine1: PropTypes.string.isRequired,\n addressLine2: PropTypes.string.isRequired,\n age: PropTypes.any.isRequired,\n name: PropTypes.string.isRequired,\n voterbaseId: PropTypes.any.isRequired,\n zip: PropTypes.string.isRequired,\n }),\n pickedAddress: PropTypes.string.isRequired,\n progressColor: PropTypes.string,\n recordAddress: PropTypes.string.isRequired,\n setPickedAddress: PropTypes.func.isRequired,\n setSelectedFlow: PropTypes.func.isRequired,\n team: PropTypes.shape({\n id: PropTypes.number,\n }),\n userAddress: PropTypes.string.isRequired,\n};\n\nNoAddressMatch.defaultProps = {\n team: null,\n};\n\nexport default NoAddressMatch;\n","import dayjs from 'dayjs';\n\nfunction parseVoterObject(voter) {\n const firstName = voter?.['vb.tsmart_first_name'];\n const lastName = voter?.['vb.tsmart_last_name'];\n const city = voter?.['vb.tsmart_city'];\n const state = voter?.['vb.tsmart_state'];\n const ageRange = voter?.['vb.voterbase_age'];\n const dob = voter?.['vb.voterbase_dob'];\n const addressLine1 = voter?.['vb.tsmart_full_address'];\n const voterbaseId = voter?.['voterbase_id'];\n const zip = voter?.['vb.tsmart_zip'];\n\n return {\n addressLine1,\n addressLine2: `${city}, ${state}`,\n age: Math.abs(dayjs(dob, 'YYYYMMDD').diff(dayjs(), 'years')) || ageRange,\n city: city,\n // MTS - .toLowerCase() required for css text-transform to work\n name: `${firstName} ${lastName}`.toLowerCase(),\n state: state,\n voterbaseId,\n zip,\n ...voter,\n };\n}\n\nexport default parseVoterObject;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport axios from 'axios';\nimport { useDispatch } from 'react-redux';\n\nimport BackButton from '@web/components/VoterRegistration/newComponents/Button/BackButton';\nimport Button from '@web/components/VoterRegistration/newComponents/Button';\nimport { Description, Title } from '@web/components/VoterRegistration/newComponents/TextStyles';\nimport NoAddressMatch from './NoAddressMatch';\nimport { checkRegistrationReviewInfo } from '@web/components/VoterRegistration/hooks/useFlows';\nimport { setSelectedVoter } from '@web/reducers/voterRegistration';\nimport { largeBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport parseVoterObject from '@web/components/VoterRegistration/helpers/parseVoterObject';\nimport { track } from '@web/services/analytics';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { vrDefaultColors } from '@web/styles/theme';\n\nconst ButtonRow = styled.div`\n display: flex;\n flex-direction: column-reverse;\n margin-top: 1rem;\n\n ${largeBreakpoint} {\n flex-direction: row;\n justify-content: space-between;\n button {\n max-width: 250px;\n }\n }\n`;\n\nconst Push = styled.div`\n display: flex;\n flex: 1;\n flex-direction: column;\n`;\n\nconst StyledAddressConfirmation = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n`;\n\nconst StyledBackButton = styled(BackButton)`\n text-transform: ${({ isFanOut }) => (isFanOut ? 'capitalize' : 'none')};\n`;\n\nconst AddressConfirmation = ({\n activity,\n nextPage,\n previousPage,\n setSelectedFlow,\n team,\n isFanOut,\n ...rest\n}) => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const [loading, setLoading] = React.useState(false);\n const [pickedAddress, setPickedAddress] = React.useState('');\n const { contactFormResult, selectedVoter, isRegistrationRecheck } = useSelector(\n state => state.voterRegistration,\n );\n const differentAddress = selectedVoter?.registration_status === 'Different Address';\n const emptyVoter = !selectedVoter || (selectedVoter && Object.keys(selectedVoter).length === 0);\n const parsedVoter = parseVoterObject(selectedVoter?.voterfile);\n\n React.useEffect(() => {\n if (!isFanOut) {\n track('VR_VIEW_CHECK_REGISTRATION_ADDRESS_CONFIRMATION', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n }\n // eslint-disable-next-line\n }, []);\n\n const recordAddress = React.useMemo(\n () => `${parsedVoter?.addressLine1} ${parsedVoter?.addressLine2}, ${parsedVoter?.zip}`,\n [parsedVoter],\n );\n const userAddress = React.useMemo(\n () =>\n `${contactFormResult?.address} ${contactFormResult?.city}, ${contactFormResult?.state_abbrev} ${contactFormResult?.zip_code}`,\n [contactFormResult],\n );\n\n const handleUserCorrect = React.useCallback(() => {\n if (loading) return;\n if (!isFanOut) {\n setSelectedFlow(checkRegistrationReviewInfo);\n dispatch(setSelectedVoter(null));\n nextPage();\n return;\n } else {\n dispatch(setSelectedVoter(null));\n nextPage();\n }\n }, [dispatch, isFanOut, loading, nextPage, setSelectedFlow]);\n\n const handleRecordCorrect = React.useCallback(() => {\n if (loading) return;\n setLoading(true);\n axios\n .patch(`/api/v2/client/voter_registrations/${contactFormResult?.id}/set_voter`, {\n activity_id: isFanOut && isRegistrationRecheck ? undefined : activity.id,\n campaign_id: activity.campaign.id,\n h: contactFormResult?.encode_id,\n recheck: (isFanOut && isRegistrationRecheck) || undefined,\n team_id: team?.id,\n voter_id: parsedVoter.voterbaseId,\n })\n .then(({ data }) => {\n dispatch(setSelectedVoter(parsedVoter));\n nextPage();\n })\n .finally(() => {\n setLoading(false);\n });\n }, [\n activity,\n contactFormResult,\n dispatch,\n nextPage,\n parsedVoter,\n team,\n loading,\n isRegistrationRecheck,\n isFanOut,\n ]);\n\n const handleSelect = React.useCallback(() => {\n if (pickedAddress === 'record') {\n handleRecordCorrect();\n } else if (pickedAddress === 'user') {\n handleUserCorrect();\n }\n }, [handleRecordCorrect, handleUserCorrect, pickedAddress]);\n\n const handleBack = React.useCallback(() => {\n if (isFanOut) {\n dispatch(setSelectedVoter(null));\n }\n previousPage();\n }, [dispatch, isFanOut, previousPage]);\n\n const titleText = React.useMemo(\n () =>\n isFanOut\n ? t('check_registration.addressConfirmation.titleFanOut')\n : t('check_registration.addressConfirmation.title'),\n [isFanOut, t],\n );\n\n const fontColor = React.useMemo(\n () => (isFanOut ? undefined : activity?.settings?.font_color ?? vrDefaultColors.fontColor),\n [activity?.settings?.font_color, isFanOut],\n );\n\n const bgColor = React.useMemo(\n () =>\n isFanOut\n ? undefined\n : activity?.settings?.background_color ?? vrDefaultColors.backgroundColor,\n [activity?.settings?.background_color, isFanOut],\n );\n\n const progressColor = React.useMemo(\n () =>\n isFanOut\n ? undefined\n : activity?.settings?.progress_bar_color ?? vrDefaultColors.progressBarColor,\n [activity?.settings?.progress_bar_color, isFanOut],\n );\n\n const addressProps = {\n activity,\n contactFormResult,\n handleRecordCorrect,\n handleUserCorrect,\n isFanOut,\n loading,\n nextPage,\n parsedVoter,\n pickedAddress,\n previousPage,\n recordAddress,\n selectedVoter,\n setPickedAddress,\n setSelectedFlow,\n team,\n userAddress,\n ...rest,\n };\n\n if (emptyVoter) {\n return null;\n }\n\n // MTS - 7/27/22 We did have a specific screen for matching addresses but\n // now we go right to the last screen if the addresses match.\n if (!differentAddress) {\n nextPage();\n return null;\n }\n\n return (\n <StyledAddressConfirmation>\n <Title $fontColor={fontColor}>{titleText}</Title>\n <Description $fontColor={fontColor}>\n {t('check_registration.addressConfirmation.description')}\n </Description>\n <NoAddressMatch\n progressColor={progressColor}\n bgColor={bgColor}\n fontColor={fontColor}\n {...addressProps}\n />\n <Push />\n <ButtonRow>\n <StyledBackButton\n customVariant={activity.settings}\n isFanOut={isFanOut}\n onClick={handleBack}\n >\n {t('check_registration.addressConfirmation.backButton')}\n </StyledBackButton>\n {isFanOut && (\n <Button\n onClick={handleSelect}\n disabled={!pickedAddress}\n isFanOut={isFanOut}\n variant={isFanOut ? 'fan_out' : 'blue'}\n >\n {t('check_registration.addressConfirmation.proceed')}\n </Button>\n )}\n </ButtonRow>\n </StyledAddressConfirmation>\n );\n};\n\nAddressConfirmation.propTypes = {\n activity: PropTypes.object.isRequired,\n isFanOut: PropTypes.bool,\n nextPage: PropTypes.func.isRequired,\n previousPage: PropTypes.func.isRequired,\n setSelectedFlow: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nAddressConfirmation.defaultProps = {\n team: null,\n};\n\nexport default AddressConfirmation;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport { useSelector } from 'react-redux';\n\nimport Button from '../Button';\nimport { Description, Title } from '../TextStyles';\nimport Incentives from './Incentives';\nimport { capitalize } from '@web/utils/string';\nimport {\n largeBreakpoint,\n smallBreakpoint,\n} from '@web/components/VoterRegistration/newComponents/breakpoints';\n\n// flows\nimport {\n checkRegistration,\n helpOthers,\n registerToVote,\n fanOutRegistration,\n} from '../../hooks/useFlows';\nimport useIsMobile from '@web/components/VoterRegistration/hooks/useIsMobile';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { vrDefaultColors } from '@web/styles/theme';\n\nconst StyledChooseFlow = styled.div`\n display: grid;\n grid-template-columns: 1fr;\n grid-template-areas:\n 'title'\n 'right'\n 'buttons';\n\n ${largeBreakpoint} {\n align-items: space-between;\n grid-gap: 0 3rem;\n grid-template-columns: 1fr 448px;\n grid-template-areas:\n 'title right'\n 'buttons right';\n }\n`;\n\nconst Right = styled.div`\n border-radius: 24px;\n grid-area: right;\n background: ${({ theme, $bgColor }) => $bgColor ?? theme.colors.white};\n overflow: ${({ $isFanOut }) => ($isFanOut ? 'unset' : 'hidden')};\n\n ${largeBreakpoint} {\n padding: ${({ $isFanOut }) => ($isFanOut ? '0' : '1rem 1rem 1.5rem')};\n box-shadow: ${({ $isFanOut }) => ($isFanOut ? `unset` : `4px 4px 64px 0px #0000000d`)};\n }\n`;\n\nconst IncentivesContainer = styled.div`\n margin-top: 1rem;\n\n ${smallBreakpoint} {\n padding: 0 1rem 1.5rem;\n }\n\n ${largeBreakpoint} {\n margin-top: ${({ $isFanOutReferrer }) => ($isFanOutReferrer ? '1rem' : '2rem')};\n }\n`;\n\nconst ButtonColumn = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({ $isFanOutReferrer }) => ($isFanOutReferrer ? '0' : '1rem')};\n grid-area: buttons;\n margin-top: 2rem;\n ${largeBreakpoint} {\n flex: 1;\n justify-content: flex-end;\n margin-top: 0;\n }\n`;\n\nconst Image = styled.img`\n border-radius: 12px;\n max-height: ${({ $isFanOutReferrer, $isIncentives }) =>\n $isFanOutReferrer ? '100%' : $isIncentives ? '174px' : '100%'};\n object-fit: ${({ $isFanOutReferrer }) => ($isFanOutReferrer ? 'scale-down' : 'cover')};\n width: 100%;\n\n ${({ $isFanOutReferrer }) =>\n $isFanOutReferrer &&\n css`\n border: 2px solid ${({ theme }) => theme.colors.blue};\n box-shadow: 4px 4px 0px 0px ${({ theme }) => theme.colors.blue};\n `}\n\n ${largeBreakpoint} {\n max-height: ${({ $isIncentives }) => ($isIncentives ? '224px' : '100%')};\n margin-bottom: ${({ $isFanOutReferrer, $isIncentives }) =>\n !$isIncentives ? 0 : $isFanOutReferrer ? '1rem' : '2rem'};\n }\n`;\n\nconst TitleSection = styled.div`\n margin-bottom: 1.5rem;\n ${largeBreakpoint} {\n margin-bottom: 3rem;\n min-height: 175px;\n }\n`;\n\nconst UnderlineButton = styled(Button)`\n text-decoration-line: underline;\n`;\n\nconst IncludesText = styled.div`\n color: ${({ theme }) => theme.colors.trueBlack};\n font-size: 0.875rem;\n font-weight: 700;\n line-height: 1rem;\n margin-bottom: 16px;\n`;\n\nconst StyledButton = styled(Button)`\n &&& {\n background: ${({ $color, theme }) => $color || theme.colors.blue};\n border: 1px solid ${({ $color, theme }) => $color || theme.colors.blue};\n }\n`;\n\nconst OutlineButton = styled(Button)`\n &&& {\n background: ${({ $bgColor }) => $bgColor} !important;\n border: 1px solid ${({ $color, theme }) => $color || theme.colors.blue} !important;\n color: ${({ $color, theme }) => $color || theme.colors.blue} !important;\n }\n`;\n\nfunction ChooseFlow({\n activity,\n nextPage,\n setCurrentPage,\n setIsReferralFlow,\n setSelectedFlow,\n team,\n referrer,\n isFanOut,\n isCommonVRFlow,\n}) {\n const { t } = useTranslation();\n const isMobile = useIsMobile();\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n\n const isFanOutReferrer = React.useMemo(() => referrer && isFanOut, [referrer, isFanOut]);\n const isIncentives = React.useMemo(\n () => activity?.activity_incentives_attributes?.length > 0,\n [activity],\n );\n const title = React.useMemo(\n () =>\n isFanOutReferrer\n ? t('check_registration.splash.titleFanOut', {\n name: capitalize(referrer?.fullname || ''),\n })\n : team?.action_page_title || activity.title,\n [activity, team, isFanOutReferrer, referrer, t],\n );\n const description = React.useMemo(\n () => team?.action_page_description || activity.description,\n [activity, team],\n );\n const image = React.useMemo(\n () =>\n isFanOutReferrer\n ? isMobile\n ? activity?.mobile_hero_img_url\n : activity?.hero_img_url\n : team?.profile_img_url || activity.media_url,\n [activity, team, isFanOutReferrer, isMobile],\n );\n\n function chooseFlow(flow, isReferralFlow) {\n setIsReferralFlow(isReferralFlow);\n setSelectedFlow(flow);\n nextPage();\n }\n\n const referralLink = React.useMemo(\n () => contactFormResult.referral_link,\n [contactFormResult.referral_link],\n );\n\n const checkMyRegistration = React.useCallback(() => {\n setSelectedFlow(fanOutRegistration);\n }, [setSelectedFlow]);\n\n const getMyLink = React.useCallback(() => {\n setIsReferralFlow(true);\n referralLink ? setCurrentPage(2) : nextPage();\n }, [nextPage, referralLink, setCurrentPage, setIsReferralFlow]);\n\n const buttonColor = React.useMemo(\n () => (isCommonVRFlow && activity?.settings?.button_color) || vrDefaultColors.buttonColor,\n [isCommonVRFlow, activity?.settings?.button_color],\n );\n\n const pageColor = React.useMemo(\n () =>\n (isCommonVRFlow && activity?.settings?.background_color) || vrDefaultColors.backgroundColor,\n [isCommonVRFlow, activity?.settings?.background_color],\n );\n\n const fontColor = React.useMemo(\n () => (isCommonVRFlow && activity?.settings?.font_color) || vrDefaultColors.fontColor,\n [isCommonVRFlow, activity?.settings?.font_color],\n );\n\n return (\n <StyledChooseFlow>\n <TitleSection>\n <Title $fontColor={fontColor} dangerouslySetInnerHTML={{ __html: title }} />\n <Description $fontColor={fontColor}>{description}</Description>\n </TitleSection>\n <ButtonColumn $isFanOutReferrer={isFanOutReferrer}>\n {isFanOutReferrer ? (\n <>\n <Button onClick={checkMyRegistration} isFanOut variant=\"fan_out\">\n {t('check_registration.splash.check_my_registration')}\n </Button>\n <UnderlineButton onClick={getMyLink} variant=\"link\">\n {referralLink\n ? t('check_registration.referral.copyLink')\n : t('check_registration.splash.get_my_link')}\n </UnderlineButton>\n </>\n ) : (\n <>\n <StyledButton\n onClick={() => chooseFlow(checkRegistration, false)}\n variant=\"blue\"\n $color={buttonColor}\n customVariant={activity.settings}\n style={isCommonVRFlow ? { color: pageColor } : null}\n >\n {t('check_registration.splash.already_registered')}\n </StyledButton>\n <OutlineButton\n onClick={() => chooseFlow(registerToVote, false)}\n variant=\"outline\"\n $color={buttonColor}\n $bgColor={pageColor}\n >\n {t('check_registration.splash.not_registered')}\n </OutlineButton>\n {[784, 3876].includes(activity?.campaign?.id) ? (\n <OutlineButton\n onClick={() => {\n window.location.href = 'https://whenweallvote.org/voting101/pledge/';\n }}\n variant=\"outline\"\n $color={buttonColor}\n $bgColor={pageColor}\n >\n {t('check_registration.splash.volunteer')}\n </OutlineButton>\n ) : (\n <OutlineButton\n onClick={() => chooseFlow(helpOthers, true)}\n variant=\"outline\"\n $color={buttonColor}\n $bgColor={pageColor}\n >\n {t('check_registration.splash.cannot_vote')}\n </OutlineButton>\n )}\n </>\n )}\n </ButtonColumn>\n <Right $bgColor={pageColor} $isFanOut={isFanOut}>\n {image && (\n <Image $isFanOutReferrer={isFanOutReferrer} $isIncentives={isIncentives} src={image} />\n )}\n {isIncentives && !isFanOutReferrer && (\n <IncentivesContainer $isFanOutReferrer={isFanOutReferrer}>\n {isFanOutReferrer && isIncentives && (\n <IncludesText>{t('check_registration.splash.sweepstake_includes')}</IncludesText>\n )}\n <Incentives\n fontColor={fontColor}\n iconColor={fontColor}\n pageColor={pageColor}\n incentives={activity.activity_incentives_attributes}\n />\n </IncentivesContainer>\n )}\n </Right>\n </StyledChooseFlow>\n );\n}\n\nChooseFlow.propTypes = {\n activity: PropTypes.shape({\n activity_incentives_attributes: PropTypes.array,\n campaign: PropTypes.object,\n description: PropTypes.string.isRequired,\n hero_img_url: PropTypes.string,\n media_url: PropTypes.string,\n mobile_hero_img_url: PropTypes.string,\n settings: PropTypes.shape({\n background_color: PropTypes.string,\n button_color: PropTypes.string,\n field_outline_color: PropTypes.string,\n font_color: PropTypes.string,\n }),\n title: PropTypes.string.isRequired,\n }),\n isCommonVRFlow: PropTypes.bool,\n isFanOut: PropTypes.bool,\n nextPage: PropTypes.func.isRequired,\n referrer: PropTypes.shape({\n fullname: PropTypes.string,\n id: PropTypes.number,\n }),\n setCurrentPage: PropTypes.func.isRequired,\n setIsReferralFlow: PropTypes.func.isRequired,\n setSelectedFlow: PropTypes.func.isRequired,\n team: PropTypes.shape({\n action_page_description: PropTypes.string,\n action_page_title: PropTypes.string,\n profile_img_url: PropTypes.string,\n }),\n};\n\nChooseFlow.defaultProps = {};\n\nexport default ChooseFlow;\n","import { vrDefaultColors } from '@web/styles/theme';\nimport styled, { css } from 'styled-components';\n\n// For simpler imports\nexport { default as ErrorText } from './ErrorText';\n\nexport const Label = styled.label`\n font-weight: 600;\n margin-bottom: 0.4rem;\n color: ${({ $labelFontColor }) => $labelFontColor ?? vrDefaultColors.fontColor};\n`;\n\nexport const InputWrapper = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport const inputStyle = css`\n // fix address autocomplete field background color for iPhones\n background: ${({ $bgColor }) => $bgColor ?? vrDefaultColors.backgroundColor};\n\n &&& {\n align-items: center;\n border: 1px solid\n ${({ $hasError, theme, $outlineColor }) =>\n $hasError ? theme.colors.red : $outlineColor ?? vrDefaultColors.fieldOutlineColor};\n border-radius: 4px;\n box-shadow: none;\n color: ${({ $fontColor }) => $fontColor ?? vrDefaultColors.fontColor} !important;\n display: flex;\n height: 42px;\n outline: 0;\n padding: 0 16px 0 48px;\n transition: border 150ms ease-out, box-shadow 150ms ease-out;\n width: 100%;\n\n ::placeholder {\n color: ${({ $fontColor }) => `${$fontColor ?? vrDefaultColors.fontColor}80`} !important;\n }\n\n :hover {\n border: 1px solid ${({ theme, $outlineColor }) => $outlineColor ?? theme.colors.dodgerBlue};\n }\n\n :focus {\n border: 1px solid\n ${({ $hasError, theme, $outlineColor }) =>\n $hasError ? theme.colors.red : $outlineColor ?? theme.colors.dodgerBlue};\n box-shadow: ${({ $hasError, theme }) =>\n $hasError ? 'none' : '0px 0px 0px 2px rgba(24, 144, 255, 0.2)'};\n outline: 0;\n }\n\n -webkit-background-clip: text !important;\n background-clip: text !important;\n -webkit-autofill:first-line {\n color: ${({ $fontColor }) => $fontColor ?? vrDefaultColors.fontColor} !important;\n }\n &:-webkit-autofill {\n color: ${({ $fontColor }) => $fontColor ?? vrDefaultColors.fontColor} !important;\n -webkit-text-fill-color: ${({ $fontColor }) =>\n $fontColor ?? vrDefaultColors.fontColor} !important;\n }\n\n box-shadow: 0 0 0 30px ${({ $bgColor }) => $bgColor ?? vrDefaultColors.backgroundColor} inset !important;\n -webkit-box-shadow: 0 0 0 30px ${({ $bgColor }) => $bgColor ?? vrDefaultColors.backgroundColor}\n inset !important;\n }\n`;\n\nexport const selectorStyle = css`\n &&& {\n color: ${({ theme }) => theme.colors.black};\n height: 42px;\n transition: border 150ms ease-out, box-shadow 150ms ease-out;\n width: 100%;\n\n svg {\n color: #707070;\n }\n\n .ant-select-selection-placeholder {\n color: #707070;\n }\n\n .ant-select-selector {\n transition: border 150ms ease-out, box-shadow 150ms ease-out;\n display: flex;\n height: 42px;\n border-radius: 4px;\n border: 1px solid\n ${({ $hasError, theme }) => ($hasError ? theme.colors.red : theme.colors.gray)};\n padding: 5px 16px 0 48px;\n\n :hover {\n border: 1px solid ${({ theme }) => theme.colors.dodgerBlue};\n }\n }\n\n :focus {\n border: 1px solid\n ${({ $hasError, theme }) => ($hasError ? theme.colors.red : theme.colors.dodgerBlue)};\n box-shadow: ${({ $hasError }) =>\n $hasError ? 'none' : '0px 0px 0px 2px rgba(24, 144, 255, 0.2)'};\n outline: 0;\n }\n }\n`;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport { Field } from 'formik';\nimport { inputStyle } from '../sharedStyles';\nimport InputMask from 'react-input-mask';\n\nexport const StyledInput = styled(Field)`\n ${inputStyle}\n\n &&& {\n ${({ $withoutIcon }) => $withoutIcon && `padding-left: 16px`}\n }\n`;\n\nconst MaskedInput = ({ $withoutIcon, ...props }) => (\n <InputMask {...props}>\n {inputProps => <StyledInput $withoutIcon={$withoutIcon} {...inputProps} />}\n </InputMask>\n);\n\nMaskedInput.propTypes = {\n $withoutIcon: PropTypes.bool,\n};\n\nexport default MaskedInput;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport { Select } from 'formik-antd';\n\nimport { selectorStyle } from '../sharedStyles';\n\nconst { Option } = Select;\n\nexport const StyledSelect = styled(Select)`\n ${selectorStyle}\n\n &&& {\n .ant-select-selector {\n ${({ $withoutIcon }) => $withoutIcon && `padding-left: 16px`}\n }\n }\n`;\n\nconst OptionContent = styled.div`\n display: flex;\n align-items: center;\n\n svg {\n margin-right: 0.5rem;\n }\n`;\n\nconst SelectInput = ({ options, ...props }) => (\n <StyledSelect {...props}>\n {options.map((item, index) => (\n <Option key={index} value={item.value} label={item.label}>\n <OptionContent>\n {item.icon}\n {item.label}\n </OptionContent>\n </Option>\n ))}\n </StyledSelect>\n);\n\nSelectInput.propTypes = {\n options: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.node,\n label: PropTypes.string.isRequired,\n value: PropTypes.any.isRequired,\n }),\n ).isRequired,\n};\n\nexport default SelectInput;\n","import React, { useCallback } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { Radio } from 'antd';\n\nconst StyledRadioGroup = styled(Radio.Group)`\n &&& {\n .ant-radio-checked .ant-radio-inner {\n border-color: ${({ theme }) => theme.colors.black} !important;\n }\n\n .ant-radio-checked .ant-radio-inner:after {\n background-color: ${({ theme }) => theme.colors.black}!important;\n }\n\n .ant-radio:hover .ant-radio-inner {\n border-color: ${({ theme }) => theme.colors.dodgerBlue} !important;\n }\n\n .ant-radio-inner {\n border-color: ${({ theme, $hasError }) => $hasError && theme.colors.red} !important;\n }\n\n :focus :active .ant-radio-inner {\n box-shadow: ${({ $hasError }) =>\n $hasError ? 'none' : '0px 0px 0px 2px rgba(24, 144, 255, 0.2)'} !important;\n }\n }\n`;\n\nconst StyledRadio = styled(Radio)`\n &&& {\n font-family: ${({ theme }) => theme.fonts.regular};\n color: ${({ selected, theme }) => (selected ? theme.colors.black : theme.colors.blackL42)};\n margin-right: 1.5rem;\n\n :hover .ant-radio-inner {\n border-color: ${({ theme }) => theme.colors.dodgerBlue} !important;\n }\n\n :focus :active .ant-radio-inner {\n box-shadow: ${({ $hasError }) =>\n $hasError ? 'none' : '0px 0px 0px 2px rgba(24, 144, 255, 0.2)'} !important;\n }\n }\n`;\n\nconst RadioGroup = ({ radioButtons, name, setFieldValue, value, ...rest }) => {\n const onChange = useCallback(\n ({ target: { value } }) => {\n setFieldValue(name, value);\n },\n [name, setFieldValue],\n );\n\n return (\n <StyledRadioGroup onChange={onChange} {...rest}>\n {radioButtons.map((item, index) => (\n <StyledRadio key={index} value={item.value} selected={value === item.value}>\n {item.label}\n </StyledRadio>\n ))}\n </StyledRadioGroup>\n );\n};\n\nRadioGroup.propTypes = {\n name: PropTypes.string.isRequired,\n radioButtons: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.any.isRequired,\n }),\n ).isRequired,\n setFieldValue: PropTypes.func.isRequired,\n value: PropTypes.string,\n};\n\nexport default RadioGroup;\n","import * as React from 'react';\n// import PropTypes from 'prop-types';\n\nfunction Calendar(props) {\n return (\n <svg height=\"16\" viewBox=\"0 0 15 16\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M0.640747 14.4688C0.640747 14.7799 0.892114 15.0312 1.20325 15.0312H14.1407C14.4519 15.0312 14.7032 14.7799 14.7032 14.4688V7.08594H0.640747V14.4688ZM14.1407 2.23438H11.1876V1.10938C11.1876 1.03203 11.1243 0.96875 11.047 0.96875H10.0626C9.98528 0.96875 9.922 1.03203 9.922 1.10938V2.23438H5.422V1.10938C5.422 1.03203 5.35872 0.96875 5.28137 0.96875H4.297C4.21965 0.96875 4.15637 1.03203 4.15637 1.10938V2.23438H1.20325C0.892114 2.23438 0.640747 2.48574 0.640747 2.79688V5.89062H14.7032V2.79688C14.7032 2.48574 14.4519 2.23438 14.1407 2.23438Z\"\n fill=\"#23293E\"\n />\n </svg>\n );\n}\n\nCalendar.propTypes = {};\n\nCalendar.defaultProps = {};\n\nexport default Calendar;\n","import * as React from 'react';\n// import PropTypes from 'prop-types';\n\nfunction Email(props) {\n return (\n <svg height=\"14\" viewBox=\"0 0 17 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.9845 0.8125H1.3595C1.04836 0.8125 0.796997 1.06387 0.796997 1.375V12.625C0.796997 12.9361 1.04836 13.1875 1.3595 13.1875H15.9845C16.2956 13.1875 16.547 12.9361 16.547 12.625V1.375C16.547 1.06387 16.2956 0.8125 15.9845 0.8125ZM14.5642 2.72676L9.01829 7.04219C8.88118 7.14941 8.68958 7.14941 8.55247 7.04219L3.00481 2.72676C2.9839 2.71062 2.96856 2.68834 2.96094 2.66305C2.95333 2.63775 2.95382 2.61071 2.96235 2.58571C2.97087 2.5607 2.98701 2.539 3.0085 2.52363C3.02998 2.50826 3.05574 2.5 3.08215 2.5H14.4868C14.5133 2.5 14.539 2.50826 14.5605 2.52363C14.582 2.539 14.5981 2.5607 14.6066 2.58571C14.6152 2.61071 14.6157 2.63775 14.6081 2.66305C14.6004 2.68834 14.5851 2.71062 14.5642 2.72676V2.72676Z\"\n fill=\"#23293E\"\n />\n </svg>\n );\n}\n\nEmail.propTypes = {};\n\nEmail.defaultProps = {};\n\nexport default Email;\n","import * as React from 'react';\n// import PropTypes from 'prop-types';\n\nfunction House(props) {\n return (\n <svg height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M16.3097 7.8765L9.06929 0.641343C9.01715 0.589108 8.95523 0.547667 8.88706 0.519392C8.8189 0.491117 8.74582 0.476562 8.67202 0.476562C8.59822 0.476562 8.52515 0.491117 8.45698 0.519392C8.38881 0.547667 8.32689 0.589108 8.27476 0.641343L1.03433 7.8765C0.823389 8.08744 0.703857 8.37396 0.703857 8.67279C0.703857 9.2933 1.20835 9.79779 1.82886 9.79779H2.59175V14.9605C2.59175 15.2716 2.84312 15.523 3.15425 15.523H7.54702V11.5855H9.51577V15.523H14.1898C14.5009 15.523 14.7523 15.2716 14.7523 14.9605V9.79779H15.5152C15.814 9.79779 16.1005 9.68002 16.3115 9.46732C16.7492 9.02787 16.7492 8.31595 16.3097 7.8765Z\"\n fill=\"#23293E\"\n />\n </svg>\n );\n}\n\nHouse.propTypes = {};\n\nHouse.defaultProps = {};\n\nexport default House;\n","import * as React from 'react';\n// import PropTypes from 'prop-types';\n\nfunction Phone(props) {\n return (\n <svg height=\"16\" viewBox=\"0 0 15 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M14.2392 3.04648L12.3671 1.17617C12.2351 1.04353 12.0781 0.938294 11.9052 0.866499C11.7324 0.794704 11.5471 0.757768 11.3599 0.757813C10.9784 0.757813 10.6199 0.907227 10.3509 1.17617L8.33645 3.19062C8.20381 3.32268 8.09857 3.47965 8.02678 3.6525C7.95498 3.82535 7.91805 4.01068 7.91809 4.19785C7.91809 4.5793 8.06751 4.93789 8.33645 5.20684L9.8095 6.67988C9.46469 7.43989 8.9853 8.13129 8.39446 8.7207C7.8051 9.31298 7.11377 9.79412 6.35364 10.141L4.88059 8.66797C4.74853 8.53533 4.59157 8.43009 4.41872 8.3583C4.24587 8.2865 4.06053 8.24956 3.87337 8.24961C3.49192 8.24961 3.13333 8.39902 2.86438 8.66797L0.84817 10.6807C0.715369 10.813 0.610039 10.9702 0.53824 11.1434C0.466442 11.3165 0.429592 11.5022 0.429811 11.6896C0.429811 12.0711 0.579225 12.4297 0.84817 12.6986L2.71672 14.5672C3.14563 14.9979 3.73801 15.2422 4.34622 15.2422C4.47454 15.2422 4.59758 15.2316 4.71887 15.2105C7.0884 14.8203 9.4386 13.56 11.3353 11.665C13.2302 9.77188 14.4888 7.42344 14.8843 5.04688C15.0038 4.3209 14.763 3.57383 14.2392 3.04648Z\"\n fill=\"#23293E\"\n />\n </svg>\n );\n}\n\nPhone.propTypes = {};\n\nPhone.defaultProps = {};\n\nexport default Phone;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { connect, Field, getIn } from 'formik';\nimport { ErrorText, InputWrapper, Label, inputStyle } from './sharedStyles';\nimport MaskedInput from './MaskedInput';\nimport SelectInput from './SelectInput';\nimport RadioGroup from './RadioGroup';\n\n// icons\nimport Calendar from '../icons/Calendar';\nimport Email from '../icons/Email';\nimport House from '../icons/House';\nimport Location from '../icons/Location';\nimport Person from '../icons/Person';\nimport Phone from '../icons/Phone';\nimport { vrDefaultColors } from '@web/styles/theme';\n\nexport const StyledInput = styled(Field)`\n ${inputStyle}\n\n &&& {\n ${({ $withoutIcon }) => $withoutIcon && `padding-left: 16px`}\n }\n`;\n\nexport const Red = styled.span`\n color: ${({ theme }) => theme.colors.red};\n`;\n\nexport const Relative = styled.div`\n position: relative;\n\n svg path {\n fill-opacity: 0.5;\n fill: ${({ $iconColor }) => $iconColor ?? vrDefaultColors.fieldOutlineColor};\n transition: fill-opacity 150ms ease-out;\n }\n\n input:focus + div svg path {\n fill-opacity: 1;\n }\n`;\n\nexport const IconWrapper = styled.div`\n display: inline-flex;\n left: 16px;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n`;\n\nfunction Input({\n icon,\n formik,\n label,\n mask,\n options,\n radioButtons,\n name,\n placeholder,\n required,\n wrapperStyle,\n settings,\n ...rest\n}) {\n const iconMap = {\n calendar: <Calendar />,\n email: <Email />,\n house: <House />,\n location: <Location />,\n person: <Person />,\n phone: <Phone />,\n };\n const error = getIn(formik.errors, name);\n const touched = getIn(formik.touched, name);\n const hasError = touched && error;\n const thisIcon = iconMap[icon] || null;\n\n const inputProps = {\n $hasError: hasError,\n id: name,\n name,\n placeholder: placeholder ? placeholder : label,\n ...rest,\n };\n\n function renderInput() {\n const maskedFieldValue = formik.values[name];\n\n if (radioButtons) {\n return <RadioGroup radioButtons={radioButtons} value={maskedFieldValue} {...inputProps} />;\n }\n if (options) {\n return (\n <SelectInput\n $withoutIcon={!thisIcon}\n options={options}\n value={maskedFieldValue}\n {...inputProps}\n />\n );\n }\n if (mask) {\n return (\n <MaskedInput\n $withoutIcon={!thisIcon}\n $outlineColor={settings?.field_outline_color}\n $fontColor={settings?.font_color}\n $bgColor={settings?.background_color}\n mask={mask}\n value={maskedFieldValue}\n {...inputProps}\n />\n );\n }\n\n return (\n <StyledInput\n $withoutIcon={!thisIcon}\n $outlineColor={settings?.field_outline_color}\n $fontColor={settings?.font_color}\n $bgColor={settings?.background_color}\n {...inputProps}\n // Google Autofill ignoring [autoComplete='off'] property\n // As a solution to avoid autocomplete we can use \"new-password\" value\n // issue: https://gist.github.com/niksumeiko/360164708c3b326bd1c8\n autoComplete={inputProps.autoComplete === 'off' ? 'new-password' : inputProps.autoComplete}\n />\n );\n }\n\n return (\n <InputWrapper style={wrapperStyle}>\n <Label style={{ color: settings?.font_color }} htmlFor={name}>\n {label} {required && <Red>*</Red>}\n </Label>\n <Relative $iconColor={settings?.field_outline_color}>\n {renderInput()}\n {thisIcon && <IconWrapper>{thisIcon}</IconWrapper>}\n </Relative>\n {hasError && <ErrorText children={error} />}\n </InputWrapper>\n );\n}\n\nInput.propTypes = {\n formik: PropTypes.shape({\n errors: PropTypes.any.isRequired,\n touched: PropTypes.any.isRequired,\n values: PropTypes.any.isRequired,\n }).isRequired,\n icon: PropTypes.string,\n label: PropTypes.string.isRequired,\n mask: PropTypes.string,\n name: PropTypes.string.isRequired,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.node,\n label: PropTypes.string.isRequired,\n value: PropTypes.any.isRequired,\n }),\n ),\n placeholder: PropTypes.string,\n radioButtons: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.any.isRequired,\n }),\n ),\n required: PropTypes.bool,\n settings: PropTypes.shape({\n background_color: PropTypes.string,\n button_color: PropTypes.string,\n field_outline_color: PropTypes.string,\n font_color: PropTypes.string,\n }),\n wrapperStyle: PropTypes.object,\n};\n\nInput.defaultProps = {\n icon: '',\n mask: null,\n options: null,\n placeholder: null,\n required: false,\n settings: {},\n wrapperStyle: {},\n};\n\nexport default connect(Input);\n","// MTS - This helper is used to parse the address returned from 'react-google-autocomplete';\n\nfunction parseAddress(place) {\n // Address an issue where the place returned from react-google-autocomplete is undefined.\n if (!place) {\n return {};\n }\n\n function findObject(key) {\n return place.address_components?.find(obj => obj.types.includes(key));\n }\n\n function getStreetNumber() {\n const streetNumberObj = findObject('street_number');\n return streetNumberObj?.short_name || '';\n }\n\n function getStreetName() {\n const streetNameObj = findObject('route');\n return streetNameObj?.short_name || '';\n }\n\n function getCity() {\n let cityObj;\n cityObj = findObject('locality');\n // fallback for when locality does not work, example Brooklyn is a\n // sublocality\n if (!cityObj) {\n cityObj = findObject('sublocality');\n }\n return cityObj?.short_name || '';\n }\n\n function getState() {\n const stateObj = findObject('administrative_area_level_1');\n return stateObj?.short_name || '';\n }\n\n function getCounty() {\n const countyObj = findObject('administrative_area_level_2');\n return countyObj?.short_name || '';\n }\n\n function getZipCode() {\n const zipCodeObj = findObject('postal_code');\n return zipCodeObj?.short_name || '';\n }\n\n const street_number = getStreetNumber();\n const street_name = getStreetName();\n return {\n address: `${street_number} ${street_name}`.trim(),\n city: getCity(),\n county_name: getCounty(),\n state_abbrev: getState(),\n street_name,\n street_number,\n zip_code: getZipCode(),\n };\n}\n\nexport default parseAddress;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Autocomplete from 'react-google-autocomplete';\nimport { ErrorText, InputWrapper, Label, inputStyle } from './sharedStyles';\nimport { IconWrapper, Relative } from '.';\nimport Location from '../icons/Location';\nimport { Red } from '.';\n\nimport { connect, getIn } from 'formik';\nimport parseAddress from '@web/utils/parseAddress';\n\nconst StyledAutocomplete = styled(Autocomplete)`\n ${inputStyle}\n`;\n\nconst AddressInput = ({\n formik,\n label,\n name,\n onChange,\n placeholder,\n required,\n inputRef,\n ...rest\n}) => {\n const error = getIn(formik.errors, 'address');\n const touched = getIn(formik.touched, 'address');\n const hasError = touched && error;\n\n const selectPlace = place => {\n const { street_name, street_number, ...parsedAddress } = parseAddress(place);\n onChange(parsedAddress);\n };\n\n const handleValueChange = event => {\n if (event.target.value === '') {\n onChange({\n address: '',\n city: '',\n county_name: '',\n state_abbrev: '',\n zip_code: '',\n });\n }\n };\n\n const options = {\n componentRestrictions: { country: 'us' },\n types: ['address'],\n };\n\n return (\n <InputWrapper>\n <Label $labelFontColor={rest.labelFontColor} htmlFor={name}>\n {label} {required && <Red>*</Red>}\n </Label>\n <Relative $iconColor={rest.outlineColor}>\n <StyledAutocomplete\n autoComplete={'off'}\n apiKey={process.env.REACT_APP_GOOGLE_MAPS_API}\n defaultValue={''}\n $hasError={hasError}\n $fontColor={rest.fontColor}\n $bgColor={rest.backgroundColor}\n $outlineColor={rest.outlineColor}\n id={name}\n name={name}\n onBlur={formik.handleBlur('address')}\n onChange={handleValueChange}\n onPlaceSelected={selectPlace}\n options={options}\n placeholder={placeholder ? placeholder : label}\n type=\"search\"\n ref={inputRef}\n {...rest}\n />\n <IconWrapper>\n <Location />\n </IconWrapper>\n </Relative>\n {hasError && <ErrorText>{error}</ErrorText>}\n </InputWrapper>\n );\n};\n\nAddressInput.propTypes = {\n formik: PropTypes.shape({\n errors: PropTypes.any.isRequired,\n handleBlur: PropTypes.func.isRequired,\n touched: PropTypes.any.isRequired,\n }).isRequired,\n inputRef: PropTypes.any,\n label: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n placeholder: PropTypes.string,\n required: PropTypes.bool,\n};\n\nAddressInput.defaultProps = {\n placeholder: null,\n required: false,\n};\n\nexport default connect(AddressInput);\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { vrDefaultColors } from '@web/styles/theme';\n\nconst StyledSvg = styled.svg`\n transform: scale(1.2);\n`;\n\nfunction CheckboxIcon({ checked, bgColor, outlineColor }) {\n if (checked)\n return (\n <StyledSvg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect\n x=\"0.5\"\n y=\"0.5\"\n width=\"15\"\n height=\"15\"\n rx=\"2.5\"\n fill={outlineColor ?? vrDefaultColors.buttonColor}\n stroke={outlineColor ?? vrDefaultColors.buttonColor}\n />\n <path\n d=\"M4.36548 7.66667L6.94443 10.5L11.3655 6\"\n stroke={bgColor ?? 'white'}\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </StyledSvg>\n );\n\n return (\n <StyledSvg\n width=\"16\"\n height=\"17\"\n viewBox=\"0 0 16 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect\n x=\"0.5\"\n y=\"1\"\n width=\"15\"\n height=\"15\"\n rx=\"1.5\"\n stroke={outlineColor ?? vrDefaultColors.buttonColor}\n />\n </StyledSvg>\n );\n}\n\nCheckboxIcon.propTypes = {\n bgColor: PropTypes.string,\n checked: PropTypes.bool.isRequired,\n hasError: PropTypes.bool.isRequired,\n outlineColor: PropTypes.string,\n};\n\nCheckboxIcon.defaultProps = {};\n\nexport default CheckboxIcon;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport CheckboxIcon from '../../icons/CheckboxIcon';\nimport { connect, getIn } from 'formik';\nimport { ErrorText } from '../sharedStyles';\nimport { Field } from 'formik';\nimport { vrDefaultColors } from '@web/styles/theme';\n\nconst CheckboxWrapper = styled.label`\n cursor: pointer;\n display: grid;\n grid-template-columns: 16px 1fr;\n grid-gap: 0 1rem;\n padding-top: 2px;\n margin-bottom: 0;\n margin-top: 0.4rem;\n margin-right: 2px;\n`;\n\nconst HiddenInput = styled(Field)`\n display: none;\n`;\n\nconst Content = styled.span`\n transform: translateY(-4px);\n`;\n\nconst Text = styled.span`\n color: ${({ $color }) => $color ?? vrDefaultColors.fontColor};\n font-size: 12px;\n &&& {\n a {\n color: ${({ $color }) => $color ?? vrDefaultColors.fontColor};\n }\n }\n`;\n\nfunction Checkbox({\n children,\n checked,\n formik,\n name,\n onClick,\n buttonColor,\n bgColor,\n fontColor,\n ...rest\n}) {\n const [isTouched, setIsTouched] = React.useState(false);\n const error = getIn(formik.errors, name);\n const hasError = Boolean(isTouched && error);\n\n function handleClick(val) {\n setIsTouched(true);\n onClick(val);\n }\n\n return (\n <>\n <CheckboxWrapper htmlFor={name} onClick={handleClick} {...rest}>\n <HiddenInput name={name} type=\"checkbox\" />\n <CheckboxIcon\n bgColor={bgColor}\n outlineColor={buttonColor}\n checked={checked || Boolean(formik.values[name])}\n hasError={hasError}\n style={{ cursor: 'pointer' }}\n />\n <Content>\n <Text $color={fontColor}>{children}</Text>\n </Content>\n </CheckboxWrapper>\n {hasError && <ErrorText>{error}</ErrorText>}\n </>\n );\n}\n\nCheckbox.propTypes = {\n bgColor: PropTypes.string,\n buttonColor: PropTypes.string,\n checked: PropTypes.bool,\n children: PropTypes.any.isRequired,\n fontColor: PropTypes.string,\n formik: PropTypes.shape({\n errors: PropTypes.any.isRequired,\n touched: PropTypes.any.isRequired,\n values: PropTypes.object.isRequired,\n }).isRequired,\n name: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n};\n\nCheckbox.defaultProps = {};\n\nexport default connect(Checkbox);\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Checkbox from '../../Input/Checkbox';\n\nimport { Trans, useTranslation } from 'react-i18next';\n\nconst StyledOptIns = styled.div`\n background-color: rgba(35, 41, 62, 0.02);\n border-radius: 12px;\n color: ${({ theme }) => theme.colors.trueBlack};\n padding: 0.6rem 1rem 1rem;\n font-size: 12px;\n margin-top: 2rem;\n a {\n color: ${({ theme }) => theme.colors.trueBlack};\n text-decoration: underline;\n }\n`;\n\nconst Text = styled.p`\n color: ${({ theme }) => theme.colors.trueBlack};\n font-size: 12px;\n margin: 0;\n margin-top: 4px;\n`;\n\nfunction OptIns({ activity, setFieldValue, team, values, isFanOut }) {\n const { t } = useTranslation();\n const linkProps = {\n rel: 'noopener noreferrer',\n target: '_blank',\n };\n const privacy = t('idvoters.optIns.privacyName');\n const termsName = t('idvoters.optIns.termsName');\n const additionalTerms = t('idvoters.optIns.additionalTerms');\n let termComponents = [\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n <a href=\"https://www.impactive.io/terms-conditions\" {...linkProps} />,\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n <a href=\"https://www.impactive.io/privacy-policy\" {...linkProps} />,\n ];\n\n let hasAdditionalTerms = false;\n if (team?.terms_link || activity?.terms_link || activity?.campaign?.terms_link) {\n hasAdditionalTerms = true;\n termComponents.push(\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n <a\n href={team?.terms_link || activity?.terms_link || activity?.campaign?.terms_link}\n {...linkProps}\n />,\n );\n }\n\n const { background_color, font_color, button_color } = activity?.settings ?? {};\n\n const termsText = (\n <Trans\n i18nKey={hasAdditionalTerms ? 'idvoters.optIns.termsWithAdditional' : 'idvoters.optIns.terms'}\n components={termComponents}\n values={{ additionalTerms, privacy, terms: termsName }}\n />\n );\n\n function getTerms() {\n if (team?.terms) {\n return team.terms;\n }\n if (activity?.terms) {\n return activity.terms;\n }\n if (activity?.campaign?.terms) {\n return activity.campaign.terms;\n }\n return null;\n }\n\n const terms = getTerms();\n\n const bgColor = React.useMemo(\n () => (isFanOut ? null : background_color),\n [background_color, isFanOut],\n );\n const fontColor = React.useMemo(() => (isFanOut ? null : font_color), [font_color, isFanOut]);\n const buttonColor = React.useMemo(\n () => (isFanOut ? null : isFanOut ? null : button_color),\n [button_color, isFanOut],\n );\n\n return (\n <StyledOptIns>\n <Checkbox\n bgColor={bgColor}\n fontColor={fontColor}\n buttonColor={buttonColor}\n checked={values?.terms}\n name=\"terms\"\n onClick={() => setFieldValue('terms', !values?.terms)}\n required\n >\n {termsText}\n </Checkbox>\n {![784, 3876].includes(activity?.campaign?.id) && !isFanOut && (\n <Checkbox\n bgColor={bgColor}\n fontColor={fontColor}\n buttonColor={buttonColor}\n checked={values?.showOnLeaderboard}\n name=\"showOnLeaderboard\"\n onClick={() => setFieldValue('showOnLeaderboard', !values?.showOnLeaderboard)}\n >\n {t('check_registration.show_on_leaderboard')}\n </Checkbox>\n )}\n <Checkbox\n bgColor={bgColor}\n fontColor={fontColor}\n buttonColor={buttonColor}\n checked={values?.smsOptIn}\n name=\"smsOptIn\"\n onClick={() => setFieldValue('smsOptIn', !values?.smsOptIn)}\n >\n {isFanOut\n ? t('idvoters.optIns.fanOutSMS')\n : t('idvoters.optIns.sms', { campaign: activity.campaign.name })}\n </Checkbox>\n {terms && <Text>{terms}</Text>}\n </StyledOptIns>\n );\n}\n\nOptIns.propTypes = {\n activity: PropTypes.object.isRequired,\n isFanOut: PropTypes.bool,\n setFieldValue: PropTypes.func.isRequired,\n team: PropTypes.object,\n values: PropTypes.object.isRequired,\n};\n\nOptIns.defaultProps = {};\n\nexport default OptIns;\n","import * as React from 'react';\n// import PropTypes from 'prop-types';\n\nfunction Search(props) {\n return (\n <svg height={14} viewBox=\"0 0 13 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n opacity=\"0.851\"\n d=\"M7.40001 7.9129C6.70001 8.6129 5.90001 8.9129 4.90001 8.9129C4.00001 8.9129 3.10001 8.5129 2.40001 7.9129C1.70001 7.2129 1.40001 6.4129 1.40001 5.4129C1.40001 4.5129 1.80001 3.6129 2.40001 2.9129C3.10001 2.2129 3.90001 1.9129 4.90001 1.9129C5.80001 1.9129 6.70001 2.3129 7.40001 2.9129C8.10001 3.6129 8.40001 4.4129 8.40001 5.4129C8.40001 6.4129 8.10001 7.3129 7.40001 7.9129ZM12.7 12.4129L8.60001 8.3129C9.20001 7.5129 9.60001 6.5129 9.60001 5.4129C9.60001 4.1129 9.10001 3.01289 8.20001 2.11289C7.30001 1.21289 6.10001 0.712891 4.90001 0.712891C3.70001 0.712891 2.50001 1.21289 1.60001 2.11289C0.700012 3.01289 0.200012 4.2129 0.200012 5.4129C0.200012 6.7129 0.700012 7.81289 1.60001 8.71289C2.50001 9.61289 3.70001 10.1129 4.90001 10.1129C5.90001 10.1129 6.90001 9.81289 7.80001 9.11289L11.9 13.2129C12 13.3129 12 13.3129 12.1 13.2129L12.8 12.5129C12.8 12.5129 12.8 12.4129 12.7 12.4129Z\"\n />\n </svg>\n );\n}\n\nSearch.propTypes = {};\n\nSearch.defaultProps = {};\n\nexport default Search;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Tooltip } from 'antd';\nimport { RedoOutlined } from '@ant-design/icons';\n\nimport theme from '@web/styles/theme';\nimport { useTranslation } from 'react-i18next';\n\nconst RefreshFormIcon = styled.button`\n position: absolute;\n right: ${({ $position }) => ($position ? $position.right : '10px')};\n top: ${({ $position }) => ($position ? $position.top : '5px')};\n border: none;\n padding: 0;\n background: transparent;\n color: ${({ $color }) => $color ?? theme.colors.black};\n stroke-width: 15px;\n stroke: ${({ $color }) => $color ?? theme.colors.black};\n`;\n\nconst RefreshFormButton = ({ clearData, position, color }) => {\n const { t } = useTranslation();\n\n return (\n <Tooltip title={t('common.clearTheForm')}>\n <RefreshFormIcon\n $color={color}\n type=\"button\"\n $position={position}\n onClick={clearData}\n as=\"button\"\n >\n <RedoOutlined />\n </RefreshFormIcon>\n </Tooltip>\n );\n};\n\nRefreshFormButton.propTypes = {\n clearData: PropTypes.func.isRequired,\n color: PropTypes.string,\n position: PropTypes.shape({\n right: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n top: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n }),\n};\n\nexport default RefreshFormButton;\n","import axios from 'axios';\nimport queryString from 'query-string';\nimport { message } from 'antd';\nimport sendError from '@web/utils/sendError';\n\nimport { useLocation } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nfunction useVoterRegistrationApi(activity, team) {\n const { t } = useTranslation();\n const { search } = useLocation();\n const { referral_hash } = queryString.parse(search);\n\n function buildData(values) {\n return {\n activity_id: values.recheck ? undefined : activity.id,\n address: values.address,\n auto_open_link: values.auto_open_link,\n campaign_id: activity.campaign.id,\n city: values.city,\n county_name: values.countyName,\n date_of_birth: values.date_of_birth,\n email: values.email,\n // MTS - We only have one checkbox and it encompasses email and sms\n email_opt_in: values.smsOptIn,\n first_name: values.firstName,\n last_name: values.lastName,\n phone: values.phone,\n recheck: values.recheck,\n referral_hash,\n registration_status: values.registrationStatus,\n show_on_leaderboard: values.showOnLeaderboard,\n sms_opt_in: values.smsOptIn,\n state_abbrev: values.stateAbbrev,\n team_id: team?.id,\n unit_number: values.unitNumber,\n utm_campaign: values.utm_campaign,\n utm_medium: values.utm_medium,\n utm_source: values.utm_source,\n zip_code: values.zipCode,\n };\n }\n\n function submitContactForm(values) {\n return axios.post(`/api/v2/client/voter_registrations`, {\n ...buildData(values),\n });\n }\n\n function submitContactUpdate(contact, values) {\n // MTS - We can't reuse buildData because the required values are different\n return axios.patch(`/api/v2/client/voter_registrations/${contact.id}`, {\n activity_id: values.recheck ? undefined : activity.id,\n address: values.address,\n city: values.city,\n county_name: values.countyName,\n h: contact.encode_id,\n recheck: values.recheck,\n state_abbrev: values.stateAbbrev,\n unit_number: values.unitNumber,\n zip_code: values.zipCode,\n });\n }\n\n function handleError(error) {\n let errorMessage = t('errors.default');\n if (error.response) {\n const data = error.response.data;\n\n if (data.message) {\n if (typeof data.message === 'object') {\n errorMessage = `${errorMessage} ${Object.values(data.message).join(', ')}`;\n } else {\n errorMessage = `${errorMessage} ${data.message}`;\n }\n } else {\n // Log the error to Sentry only if the error is not a validation error\n sendError(`Voter Registration: error ${errorMessage}`, error);\n }\n }\n message.error(errorMessage);\n return errorMessage;\n }\n\n return {\n handleError,\n submitContactForm,\n submitContactUpdate,\n };\n}\n\nexport default useVoterRegistrationApi;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport dayjs from 'dayjs';\nimport { message } from 'antd';\nimport queryString from 'query-string';\nimport { useLocation } from 'react-router-dom/cjs/react-router-dom';\n\nimport AddressInput from '@web/components/VoterRegistration/newComponents/Input/AddressInput';\nimport Button from '@web/components/VoterRegistration/newComponents/Button';\nimport { Form } from 'formik-antd';\nimport { Formik } from 'formik';\nimport Input from '@web/components/VoterRegistration/newComponents/Input';\nimport OptIns from './OptIns';\nimport SearchIcon from '../icons/Search';\nimport RefreshFormButton from '@web/components/common/RefreshFormIcon';\n\nimport { setContactFormResult, setFormValues } from '@web/reducers/voterRegistration';\nimport { track, trackEventViewWithDynamicIDs } from '@web/services/analytics';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport useVoterRegistrationApi from '@web/components/VoterRegistration/hooks/useVoterRegistrationApi';\nimport Status from '@web/constants/contactRegistrationStatusTypes';\n\nimport { largeBreakpoint } from '../breakpoints';\nimport sendError from '@admin/utils/sendError';\nimport { capitalize } from '@web/utils/string';\nimport PhoneNumberInput from '@web/components/common/shared/PhoneNumberInput';\nimport { PhoneFilled } from '@ant-design/icons';\nimport { fanOut } from '@web/services/api';\nimport { amplitudeTrack } from '@web/components/FanOut/hooks/useFanOutAmplitude';\nimport theme, { vrDefaultColors } from '@web/styles/theme';\n\nconst FormWrapper = styled(Form)`\n &&& {\n margin-top: 2rem;\n }\n`;\n\nconst Grid = styled.div`\n position: relative;\n display: grid;\n grid-gap: 1rem;\n grid-template-columns: 1fr;\n ${largeBreakpoint} {\n grid-template-columns: 1fr 1fr;\n }\n`;\n\nconst NameWrapper = styled.div`\n display: grid;\n grid-gap: 1rem;\n grid-template-columns: 1fr;\n ${largeBreakpoint} {\n grid-template-columns: 1fr 1fr;\n }\n`;\n\nconst ButtonRow = styled.div`\n display: flex;\n flex-direction: column-reverse;\n gap: 1rem;\n justify-content: flex-end;\n margin-top: 60px;\n\n ${largeBreakpoint} {\n justify-content: space-between;\n flex-direction: row;\n margin-top: 58px;\n }\n`;\n\nconst StyledSearchIcon = styled(SearchIcon)`\n margin-right: 10px;\n path {\n fill: ${({ $isDisabled, $isFanOut, theme }) =>\n $isDisabled ? theme.colors.blackL72 : $isFanOut ? theme.colors.blue : theme.colors.white};\n }\n`;\n\nconst ButtonGroup = styled.div`\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column-reverse;\n gap: 1rem;\n :last-of-type {\n justify-content: flex-end;\n }\n ${largeBreakpoint} {\n flex-direction: row;\n justify-content: flex-start;\n button {\n max-width: 250px;\n }\n }\n`;\n\nfunction ContactForm({\n activity,\n backButton,\n initialValues,\n nextPage,\n schema,\n secondaryButton,\n submitButtonChildren,\n team,\n type,\n isFanOut,\n referrer,\n}) {\n const addressRef = React.useRef(null);\n const { search } = useLocation();\n const { start, referral_hash: referralHash } = queryString.parse(search);\n const dispatch = useDispatch();\n const { contactFormResult: contact, isRegistrationRecheck } = useSelector(\n state => state.voterRegistration,\n );\n const { t } = useTranslation();\n const { handleError, submitContactForm, submitContactUpdate } = useVoterRegistrationApi(\n activity,\n team,\n );\n const showOptIns = type !== 'update';\n\n function handlePixelTracking() {\n trackEventViewWithDynamicIDs({\n actionName: isFanOut ? 'fan_out_form_filled' : 'vr_form_filled',\n categoryName: isFanOut ? 'FanOut Form Filled' : 'Voter Registration Form Filled',\n fbPixelId: activity?.settings?.pixel_fb_id,\n gaTrackingId: activity?.settings?.pixel_ga_id,\n gtmPixelId: activity?.settings?.pixel_gtm_id,\n snapchatPixelId: activity?.settings?.pixel_sc_id,\n });\n }\n\n function handleSubmit(...args) {\n // if we are in the fan out flow, we want to check if combination of phone & email is valid\n if (isFanOut) {\n fanOut\n .validatePhoneAndEmail({\n campaign_id: activity.campaign.id,\n email: args[0].email,\n phone: args[0].phone.startsWith('+') ? args[0].phone : `+${args[0].phone}`,\n })\n .then(({ data }) => {\n // if the phone and email are valid, we can submit the form\n if (type === 'create') {\n amplitudeTrack({\n activity,\n name: referralHash\n ? 'FAN_OUT_SUBMIT_VOTER_REGISTRATION_FORM_REFERRED'\n : 'FAN_OUT_SUBMIT_VOTER_REGISTRATION_FORM',\n team,\n });\n\n return createContact(...args);\n } else {\n amplitudeTrack({\n activity,\n name: referralHash\n ? 'FAN_OUT_SUBMIT_VOTER_REGISTRATION_FORM_UPDATE_REFERRED'\n : 'FAN_OUT_SUBMIT_VOTER_REGISTRATION_FORM_UPDATE',\n team,\n });\n handlePixelTracking();\n return submitUpdate(...args);\n }\n })\n .catch(err => {\n handleError(err);\n args[1].setSubmitting(false);\n });\n }\n // if we are not in the fan out flow, we can just submit the form\n else {\n const values = args[0];\n dispatch(setFormValues(values));\n if (type === 'create') {\n track('SUBMIT_VOTER_REGISTRATION_FORM');\n return createContact(...args);\n } else {\n track('SUBMIT_VOTER_REGISTRATION_FORM_UPDATE');\n return submitUpdate(...args);\n }\n }\n }\n\n function createContact(values, { setSubmitting }) {\n setSubmitting(true);\n // TODO: This will be uncommented when we build the other implementations of this\n // component.\n // values.registrationStatus = registrationStatus;\n\n values.auto_open_link = start === '1';\n submitContactForm({ ...values, recheck: (isFanOut && isRegistrationRecheck) || undefined })\n .then(({ data }) => {\n // MTS - We add phone and dob here because the backend doesn't send this back for some reason.\n // RH - looks like we already have this in the response\n dispatch(\n setContactFormResult({\n activity,\n contact: {\n ...data,\n // convert into the right format\n date_of_birth: dayjs(data.date_of_birth).format('MM/DD/YYYY'),\n registration_status: isFanOut ? Status.UNCONFIRMED : data.registration_status,\n },\n }),\n );\n handlePixelTracking();\n nextPage();\n })\n .catch(err => {\n const errorMessage = handleError(err);\n sendError(`VR Flow Contact form: ${errorMessage}`, err);\n })\n .finally(() => {\n setSubmitting(false);\n });\n }\n\n function submitUpdate(values, { setSubmitting }) {\n submitContactUpdate(contact, {\n ...values,\n recheck: (isFanOut && isRegistrationRecheck) || undefined,\n })\n .then(({ data }) => {\n // MTS - We add phone and dob here because the backend doesn't send this back for some reason.\n // RH - looks like we already have this in the response\n dispatch(\n setContactFormResult({\n activity,\n contact: {\n ...data,\n // convert into the right format\n date_of_birth: dayjs(data.date_of_birth).format('MM/DD/YYYY'),\n registration_status: isFanOut ? Status.UNCONFIRMED : data.registration_status,\n },\n }),\n );\n handlePixelTracking();\n nextPage();\n })\n .catch(err => {\n const errorMessage = handleError(err);\n sendError(`VR Flow Contact form: ${errorMessage}`, err);\n })\n .finally(() => {\n setSubmitting(false);\n });\n }\n\n function handleAddressChange(address, setFieldValue) {\n setFieldValue('address', address.address);\n setFieldValue('city', address.city);\n setFieldValue('zipCode', address.zip_code);\n setFieldValue('countyName', address.county_name);\n setFieldValue('stateAbbrev', address.state_abbrev);\n }\n\n const handleDateChange = ({ target: { value } }, setFieldValue) => {\n setFieldValue('date_of_birth', value);\n };\n\n const isDisabled = React.useCallback((errors, touched, values) => {\n const isTouched = !!Object.keys(touched).length;\n const hasErrors = !!Object.keys(errors).length;\n const { address, date_of_birth, email, firstName, lastName, phone } = values;\n const isAllValues =\n !!address && !!date_of_birth && !!email && !!firstName && !!lastName && !!phone;\n\n // RH - if all values are filled from initial values, then isTouched will be false, but we still want to enable the button\n return !!(hasErrors || (isAllValues && !isTouched) ? !isAllValues : !isTouched);\n }, []);\n\n const isFanOutReferrer = React.useMemo(() => referrer && isFanOut, [referrer, isFanOut]);\n\n const onSubmit = React.useCallback(\n errors => {\n if (isFanOut) {\n if (errors?.date_of_birth === t('idvoters.validation.max_date', { age: 18 })) {\n const referral = isFanOutReferrer\n ? t('idvoters.validation.referrer_entries', {\n referrer: capitalize(referrer?.fullname || ''),\n })\n : '';\n\n message.error(t('idvoters.validation.election_date', { referral, year: 2024 }));\n }\n }\n },\n [isFanOut, isFanOutReferrer, referrer, t],\n );\n\n const refreshForm = React.useCallback(setFieldValue => {\n const fieldsToClear = [\n 'firstName',\n 'lastName',\n 'searchAddress',\n 'address2',\n 'date_of_birth',\n 'phone',\n 'email',\n 'address',\n 'city',\n 'zipCode',\n 'countyName',\n 'stateAbbrev',\n ];\n\n fieldsToClear.forEach(f => setFieldValue(f, ''));\n if (addressRef.current) {\n addressRef.current.value = '';\n }\n }, []);\n\n const stylesSettings = React.useMemo(\n () => (isFanOut ? null : activity.settings),\n [activity.settings, isFanOut],\n );\n\n return (\n <Formik\n initialValues={initialValues}\n onSubmit={handleSubmit}\n validationSchema={schema}\n render={({ errors, isSubmitting, setFieldValue, touched, values }) => (\n <FormWrapper>\n <Grid>\n <RefreshFormButton\n color={isFanOut ? null : activity.settings.button_color}\n position={{ right: 0, top: '-30px' }}\n clearData={() => refreshForm(setFieldValue)}\n />\n <Input\n autoComplete=\"given-name\"\n icon=\"person\"\n label={t('idvoters.labels.firstname')}\n name=\"firstName\"\n placeholder={t('idvoters.labels.firstname')}\n settings={stylesSettings}\n required\n />\n <Input\n autoComplete=\"family-name\"\n icon=\"person\"\n label={t('idvoters.labels.lastname')}\n name=\"lastName\"\n placeholder={t('idvoters.labels.lastname')}\n settings={stylesSettings}\n required\n />\n <AddressInput\n labelFontColor={isFanOut ? null : activity.settings.font_color}\n fontColor={isFanOut ? null : activity.settings.font_color}\n backgroundColor={isFanOut ? null : activity.settings.background_color}\n outlineColor={isFanOut ? null : activity.settings.field_outline_color}\n autoComplete=\"off\"\n defaultValue={initialValues?.address || ''}\n icon=\"location\"\n label={t('idvoters.labels.address1')}\n name=\"searchAddress\"\n onChange={val => handleAddressChange(val, setFieldValue)}\n placeholder={t('idvoters.placeholders.address1')}\n inputRef={addressRef}\n required\n />\n <Input\n autoComplete=\"off\"\n icon=\"house\"\n label={t('idvoters.labels.address2')}\n name=\"address2\"\n placeholder={t('idvoters.placeholders.address2')}\n settings={stylesSettings}\n />\n <NameWrapper>\n <Input\n autoComplete=\"bday\"\n icon=\"calendar\"\n label={t('idvoters.labels.date_of_birth')}\n mask=\"99/99/9999\"\n name=\"date_of_birth\"\n onChange={event => handleDateChange(event, setFieldValue)}\n placeholder=\"MM/DD/YYYY\"\n type=\"tel\"\n required\n settings={stylesSettings}\n />\n <PhoneNumberInput\n name=\"phone\"\n isFanOut\n formik={{ errors, touched, values }}\n label={t('idvoters.labels.phone')}\n placeholder=\"(555) 345-6789\"\n onChange={e => setFieldValue('phone', e)}\n value={values.phone}\n prefixIcon={<PhoneFilled />}\n backgroundColor={isFanOut ? theme.colors.white : activity.settings.background_color}\n fontColor={activity.settings.font_color}\n labelFontColor={activity.settings.font_color ?? vrDefaultColors.fontColor}\n outlineColor={activity.settings.field_outline_color}\n focusedColor={activity.settings.field_outline_color}\n shouldFocusIcon\n isRequired\n labelStyles={{\n color: isFanOut ? 'black' : activity.settings.font_color,\n opacity: '0.85',\n textTransform: 'capitalize',\n ...(isFanOut && { marginBottom: '0.4rem' }),\n }}\n />\n </NameWrapper>\n <Input\n autoComplete=\"email\"\n icon=\"email\"\n label={t('idvoters.labels.email')}\n name=\"email\"\n placeholder={t('idvoters.labels.emailPlaceholder')}\n type=\"email\"\n required\n settings={stylesSettings}\n />\n </Grid>\n {showOptIns && (\n <OptIns\n activity={activity}\n setFieldValue={setFieldValue}\n team={team}\n values={values}\n isFanOut={isFanOut}\n />\n )}\n <ButtonRow>\n <ButtonGroup>{backButton || secondaryButton}</ButtonGroup>\n <ButtonGroup>\n {backButton && secondaryButton}\n\n <Button\n htmlType=\"submit\"\n loading={isSubmitting}\n customVariant={stylesSettings}\n isFanOut={isFanOut}\n variant={\n isDisabled(errors, touched, values) ? 'disabled' : isFanOut ? 'fan_out' : 'blue'\n }\n onClick={() => onSubmit(errors)}\n >\n <div key=\"buttonContent\">\n {submitButtonChildren && submitButtonChildren}\n {!submitButtonChildren && (\n <>\n <StyledSearchIcon\n $isDisabled={isDisabled(errors, touched, values)}\n $isFanOut={isFanOut}\n />\n {t('idvoters.search')}\n </>\n )}\n </div>\n </Button>\n </ButtonGroup>\n </ButtonRow>\n </FormWrapper>\n )}\n />\n );\n}\n\nContactForm.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n id: PropTypes.number,\n }),\n settings: PropTypes.shape({\n background_color: PropTypes.string,\n button_color: PropTypes.string,\n field_outline_color: PropTypes.string,\n font_color: PropTypes.string,\n pixel_fb_id: PropTypes.string,\n pixel_ga_id: PropTypes.string,\n pixel_gtm_id: PropTypes.string,\n pixel_sc_id: PropTypes.string,\n }),\n }).isRequired,\n backButton: PropTypes.any,\n initialValues: PropTypes.object.isRequired,\n isFanOut: PropTypes.bool,\n nextPage: PropTypes.func.isRequired,\n referrer: PropTypes.shape({\n fullname: PropTypes.string,\n id: PropTypes.number,\n }),\n schema: PropTypes.object.isRequired,\n secondaryButton: PropTypes.any,\n submitButtonChildren: PropTypes.any,\n team: PropTypes.shape({}),\n type: PropTypes.oneOf(['create', 'update']),\n};\n\nContactForm.defaultProps = {\n backButton: null,\n extraButton: null,\n type: 'create',\n};\n\nexport default ContactForm;\n","import * as yup from 'yup';\nimport i18n from 'web/components/i18n';\nimport dayjs from 'dayjs';\n\nexport const dateFormat = 'MM/DD/YYYY';\n\nexport const phoneRegExp =\n /^[+]?([0-9][\\s]?|[0-9]?)([(][0-9]{3}[)][\\s]?|[0-9]{3}[-\\s.]?)[0-9]{3}[-\\s.]?[0-9]{4,6}$/im;\n\nexport const ReferralFormSchema = yup.object().shape({\n email: yup.string().email(i18n.t('check_registration.invalid_email')).required(),\n firstName: yup.string().required(i18n.t('idvoters.validation.firstname')),\n lastName: yup.string().required(i18n.t('idvoters.validation.lastname')),\n phone: yup.string().matches(phoneRegExp, i18n.t('check_registration.invalid_phone')).required(),\n});\n\nexport const ContactFormSchema = yup.object().shape({\n address: yup.string().required(i18n.t('idvoters.validation.address')),\n dateOfBirth: yup\n .date()\n .typeError(i18n.t('idvoters.validation.valid_dob'))\n .required(i18n.t('idvoters.validation.dob'))\n .min(dayjs().subtract(120, 'year'), i18n.t('idvoters.validation.valid_dob'))\n .max(dayjs().subtract(17, 'year'), i18n.t('idvoters.validation.max_date', { age: 18 })),\n email: yup.string().email(i18n.t('check_registration.invalid_email')).required(),\n firstName: yup.string().required(i18n.t('idvoters.validation.firstname')),\n lastName: yup.string().required(i18n.t('idvoters.validation.lastname')),\n phone: yup.string().matches(phoneRegExp, i18n.t('check_registration.invalid_phone')).required(),\n});\n","import * as React from 'react';\nimport * as yup from 'yup';\nimport dayjs from 'dayjs';\nimport { useTranslation } from 'react-i18next';\nimport i18n from '@web/components/i18n';\nimport {\n dateFormat,\n phoneRegExp,\n} from '@web/components/VoterRegistration/components/common/utils/schema';\nimport { useLocation } from 'react-router-dom';\nimport queryString from 'query-string';\n\nexport const ReferralFormSchema = t =>\n yup.object().shape({\n email: yup\n .string()\n .email(t('check_registration.invalid_email'))\n .required(t('idvoters.validation.emailRequired')),\n firstName: yup.string().required(t('idvoters.validation.firstname')),\n lastName: yup.string().required(t('idvoters.validation.lastname')),\n phone: yup\n .string()\n .matches(phoneRegExp, t('check_registration.invalid_phone'))\n .required(t('idvoters.validation.phoneRequired')),\n showOnLeaderboard: yup.bool(),\n smsOptIn: yup.bool(),\n terms: yup\n .bool()\n .required(t('idvoters.validation.terms'))\n .oneOf([true], t('idvoters.validation.terms')),\n });\n\nexport const FanOutReferralFormSchema = t =>\n yup.object().shape({\n age_group: yup\n .string()\n .required(t('idvoters.validation.age_group'))\n .oneOf(['13-17', '18+'], t('idvoters.validation.age_group')),\n email: yup\n .string()\n .email(t('check_registration.invalid_email'))\n .required(t('idvoters.validation.emailRequired')),\n firstName: yup.string().required(t('idvoters.validation.firstname')),\n lastName: yup.string().required(t('idvoters.validation.lastname')),\n phone: yup\n .string()\n .matches(phoneRegExp, t('check_registration.invalid_phone'))\n .required(t('idvoters.validation.phoneRequired')),\n showOnLeaderboard: yup.bool(),\n smsOptIn: yup.bool(),\n terms: yup\n .bool()\n .required(t('idvoters.validation.terms'))\n .oneOf([true], t('idvoters.validation.terms')),\n });\n\nconst contactFormValues = t =>\n yup.object().shape({\n address: yup.string().required(t('idvoters.validation.address')),\n date_of_birth: yup\n .date()\n .typeError(t('idvoters.validation.valid_dob'))\n .required(t('idvoters.validation.dob'))\n .min(dayjs().subtract(120, 'year'), t('idvoters.validation.valid_dob'))\n .max(dayjs().subtract(17, 'year'), t('idvoters.validation.max_date', { age: 18 })),\n });\n\nconst fanOutContactFormValues = yup.object().shape({\n address: yup.string().required(i18n.t('idvoters.validation.address')),\n date_of_birth: yup\n .date()\n .typeError(i18n.t('idvoters.validation.valid_dob'))\n .required(i18n.t('idvoters.validation.dob'))\n .min(dayjs().subtract(120, 'year'), i18n.t('idvoters.validation.valid_dob'))\n // Election day 2024 is 11/05/2024\n // We want to make sure that the date of birth is at least 18 years before that\n .max(dayjs('11/05/2006'), i18n.t('idvoters.validation.max_date', { age: 18 })),\n});\n\nexport const FriendLookUpFormSchema = t =>\n yup.object().shape({\n ageRange: yup.string().required(t('idvoters.validation.age')),\n firstName: yup.string().required(t('idvoters.validation.firstname')),\n lastName: yup.string().required(t('idvoters.validation.lastname')),\n stateAbbv: yup.string().required(t('idvoters.validation.state')),\n });\n\nexport const ContactFormSchema = t => ReferralFormSchema(t).concat(contactFormValues(t));\nexport const FanOutContactFormSchema = t => ReferralFormSchema(t).concat(fanOutContactFormValues);\n\nfunction useContactForm(initialContact = {}, activity) {\n const [contact, setContact] = React.useState(initialContact);\n const { t } = useTranslation();\n const { search } = useLocation();\n const { utm_campaign, utm_source, utm_medium } = queryString.parse(search);\n\n function buildAddress() {\n if (contact?.address) {\n return contact.address;\n }\n return '';\n }\n\n const fanOutRadioButtons = [\n {\n label: '13-17',\n value: '13-17',\n },\n {\n label: '18+',\n value: '18+',\n },\n ];\n\n const contactFormInitialValues = {\n address: buildAddress(),\n address2: contact.address2,\n city: contact?.city || '',\n countyName: contact?.county_name || '',\n date_of_birth: contact?.date_of_birth || '',\n email: contact?.email || '',\n firstName: contact?.first_name || '',\n lastName: contact?.last_name || '',\n phone: contact?.phone ? contact?.phone.replace(/\\D/g, '') : '',\n showOnLeaderboard: activity?.show_contacts_on_leaderboard_by_default ?? true,\n smsOptIn: true,\n stateAbbrev: contact?.state_abbrev || '',\n terms: true,\n unitNumber: contact?.unit_number || '',\n utm_campaign,\n utm_medium,\n utm_source,\n zipCode: contact?.zip_code || '',\n };\n\n const referralFormInitialValues = {\n age_group: contact?.age_group || '',\n email: contact?.email || '',\n firstName: contact?.first_name || '',\n lastName: contact?.last_name || '',\n phone: contact?.phone || '',\n showOnLeaderboard: activity?.show_contacts_on_leaderboard_by_default ?? true,\n smsOptIn: true,\n terms: true,\n utm_campaign,\n utm_medium,\n utm_source,\n };\n\n const friendLookUpFormInitialValues = {\n ageRange: '18-255',\n firstName: '',\n lastName: '',\n stateAbbv: undefined,\n };\n\n return {\n contact,\n dateFormat,\n fanOutRadioButtons,\n initialValues: {\n contactForm: { ...contactFormInitialValues },\n friendLookUpForm: { ...friendLookUpFormInitialValues },\n referralForm: { ...referralFormInitialValues },\n },\n schemas: {\n contactForm: ContactFormSchema(t),\n fanOutContactForm: FanOutContactFormSchema(t),\n fanOutReferralForm: FanOutReferralFormSchema(t),\n friendLookUpForm: FriendLookUpFormSchema(t),\n referralForm: ReferralFormSchema(t),\n },\n setContact,\n };\n}\n\nexport default useContactForm;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useLocation } from 'react-router-dom';\nimport queryString from 'query-string';\n\nimport Button from '@web/components/VoterRegistration/newComponents/Button';\nimport ContactForm from '@web/components/VoterRegistration/newComponents/ContactForm';\nimport { Description, Title } from '@web/components/VoterRegistration/newComponents/TextStyles';\n\nimport {\n registerToVote,\n fanOutRegisterToVote,\n} from '@web/components/VoterRegistration/hooks/useFlows';\nimport { track } from '@web/services/analytics';\nimport useContactForm from '@web/components/VoterRegistration/hooks/useContactForm';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { amplitudeTrack } from '@web/components/FanOut/hooks/useFanOutAmplitude';\nimport { vrDefaultColors } from '@web/styles/theme';\n\nconst StyledButton = styled(Button)`\n text-decoration: ${({ isFanOut }) => (isFanOut ? 'underline' : 'none')};\n`;\n\nfunction FindRegistration(props) {\n const { t } = useTranslation();\n const { search } = useLocation();\n const { referral_hash: referralHash } = queryString.parse(search);\n const { contactFormResult, formValues } = useSelector(state => state.voterRegistration);\n const { activity, team, isFanOut } = props;\n const { initialValues, schemas } = useContactForm(formValues ?? contactFormResult, activity);\n\n React.useEffect(() => {\n if (isFanOut) {\n amplitudeTrack({\n activity,\n name: referralHash\n ? 'FAN_OUT_VIEW_CHECK_REGISTRATION_FORM_REFERRED'\n : 'FAN_OUT_VIEW_CHECK_REGISTRATION_FORM',\n team,\n });\n } else {\n track('VR_VIEW_CHECK_REGISTRATION_FORM', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n }\n // eslint-disable-next-line\n }, []);\n\n function handleNotRegisteredClick() {\n if (isFanOut) {\n props.setSelectedFlow(fanOutRegisterToVote);\n } else {\n props.setSelectedFlow(registerToVote);\n }\n }\n\n const fontColor = React.useMemo(\n () => (!isFanOut && activity?.settings?.font_color) || vrDefaultColors.fontColor,\n [isFanOut, activity?.settings?.font_color],\n );\n\n const secondaryButton = (\n <StyledButton\n onClick={handleNotRegisteredClick}\n customVariant={activity.settings}\n isFanOut={isFanOut}\n variant=\"link\"\n >\n {isFanOut\n ? t('check_registration.not_registered_yet')\n : t('check_registration.not_registered')}\n </StyledButton>\n );\n return (\n <>\n <Title $fontColor={fontColor}>\n {isFanOut\n ? t('idvoters.findRegistration.fanOutTitle')\n : t('idvoters.findRegistration.title')}\n </Title>\n <Description $fontColor={fontColor}>\n {isFanOut\n ? referralHash\n ? t('idvoters.findRegistration.with_referral_description_fan_out')\n : t('idvoters.findRegistration.description_fan_out')\n : t('idvoters.findRegistration.description')}\n </Description>\n <ContactForm\n initialValues={initialValues.contactForm}\n schema={isFanOut ? schemas.fanOutContactForm : schemas.contactForm}\n secondaryButton={secondaryButton}\n {...props}\n />\n </>\n );\n}\n\nFindRegistration.propTypes = {\n activity: PropTypes.object.isRequired,\n isFanOut: PropTypes.bool,\n nextPage: PropTypes.func.isRequired,\n setSelectedFlow: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nFindRegistration.defaultProps = {};\n\nexport default FindRegistration;\n","import React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport dayjs from 'dayjs';\nimport queryString from 'query-string';\nimport { PhoneFilled } from '@ant-design/icons';\nimport { useLocation } from 'react-router-dom/cjs/react-router-dom';\n\nimport Button from '@web/components/VoterRegistration/newComponents/Button';\nimport { Form } from 'formik-antd';\nimport { Formik } from 'formik';\nimport RefreshFormButton from '@web/components/common/RefreshFormIcon';\nimport Input from '@web/components/VoterRegistration/newComponents/Input';\nimport OptIns from '@web/components/VoterRegistration/newComponents/ContactForm/OptIns';\nimport SearchIcon from '@web/components/VoterRegistration/newComponents/icons/Search';\n\nimport { largeBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport sendError from '@admin/utils/sendError';\nimport { setContactFormResult } from '@web/reducers/voterRegistration';\nimport { track, trackEventViewWithDynamicIDs } from '@web/services/analytics';\nimport { useDispatch } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport useVoterRegistrationApi from '@web/components/VoterRegistration/hooks/useVoterRegistrationApi';\nimport Status from '@web/constants/contactRegistrationStatusTypes';\nimport { fanOut } from '@web/services/api';\nimport PhoneNumberInput from '@web/components/common/shared/PhoneNumberInput';\nimport { amplitudeTrack } from '@web/components/FanOut/hooks/useFanOutAmplitude';\nimport theme, { vrDefaultColors } from '@web/styles/theme';\n\nconst FormWrapper = styled(Form)`\n &&& {\n margin-top: 2rem;\n }\n`;\n\nconst AgeGroupWrapper = styled.div`\n margin-bottom: 1rem;\n`;\n\nconst TeensText = styled.div`\n font-size: 0.75rem;\n margin-top: 0.25rem;\n`;\n\nconst Grid = styled.div`\n display: grid;\n grid-gap: 1rem;\n grid-template-columns: 1fr;\n ${largeBreakpoint} {\n grid-template-columns: 1fr 1fr;\n }\n position: relative;\n`;\n\nconst ButtonRow = styled.div`\n display: flex;\n flex-direction: column-reverse;\n gap: 1rem;\n justify-content: flex-end;\n margin-top: 60px;\n\n ${largeBreakpoint} {\n justify-content: space-between;\n flex-direction: row;\n margin-top: 58px;\n }\n`;\n\nconst StyledSearchIcon = styled(SearchIcon)`\n margin-right: 10px;\n path {\n fill: ${({ $isDisabled }) => ($isDisabled ? '#b7b7b7' : '#fff')};\n }\n`;\n\nconst ButtonGroup = styled.div`\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column-reverse;\n gap: 1rem;\n :last-of-type {\n justify-content: flex-end;\n }\n ${largeBreakpoint} {\n flex-direction: row;\n justify-content: flex-start;\n button {\n max-width: 250px;\n }\n }\n`;\n\nfunction ReferralForm({\n activity,\n backButton,\n initialValues,\n nextPage,\n schema,\n secondaryButton,\n submitButtonChildren,\n team,\n isFanOut,\n fanOutRadioButtons,\n}) {\n const { search } = useLocation();\n const { start } = queryString.parse(search);\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const { handleError, submitContactForm } = useVoterRegistrationApi(activity, team);\n const showOptIns = true;\n\n const handlePixelTracking = useCallback(() => {\n trackEventViewWithDynamicIDs({\n actionName: isFanOut ? 'fan_out_form_filled' : 'vr_form_filled',\n categoryName: isFanOut ? 'FanOut Form Filled' : 'Voter Registration Form Filled',\n fbPixelId: activity?.settings?.pixel_fb_id,\n gaTrackingId: activity?.settings?.pixel_ga_id,\n gtmPixelId: activity?.settings?.pixel_gtm_id,\n snapchatPixelId: activity?.settings?.pixel_sc_id,\n });\n }, [\n activity?.settings?.pixel_fb_id,\n activity?.settings?.pixel_ga_id,\n activity?.settings?.pixel_gtm_id,\n activity?.settings?.pixel_sc_id,\n isFanOut,\n ]);\n\n const submitReferralVrFrom = useCallback(\n (values, setSubmitting) => {\n values.auto_open_link = start === '1';\n submitContactForm({\n ...values,\n registrationStatus: isFanOut ? Status.REFERRAL_LINK : undefined,\n })\n .then(({ data }) => {\n // MTS - We add phone and dob here because the backend doesn't send this back for some reason.\n // RH - Looks like we already have this in the response\n dispatch(\n setContactFormResult({\n activity,\n contact: {\n ...data,\n // convert into the right format\n date_of_birth: dayjs(data.date_of_birth).format('MM/DD/YYYY'),\n },\n }),\n );\n handlePixelTracking();\n nextPage();\n })\n .catch(err => {\n const errorMessage = handleError(err);\n sendError(`VR Flow Contact form: ${errorMessage}`, err);\n })\n .finally(() => {\n setSubmitting(false);\n });\n },\n [\n start,\n submitContactForm,\n isFanOut,\n dispatch,\n activity,\n handlePixelTracking,\n nextPage,\n handleError,\n ],\n );\n\n const handleSubmit = useCallback(\n (values, { setSubmitting }) => {\n if (isFanOut) {\n amplitudeTrack({ activity, name: 'FAN_OUT_REFERRAL_FORM_SUBMISSION', team });\n } else {\n track('VR_REFERRAL_FORM_SUBMISSION');\n }\n setSubmitting(true);\n\n // if we are in the fan out flow, we want to check if combination of phone & email is valid\n if (isFanOut) {\n fanOut\n .validatePhoneAndEmail({\n campaign_id: activity.campaign.id,\n email: values.email,\n phone: values.phone.startsWith('+') ? values.phone : `+${values.phone}`,\n })\n .then(({ data }) => {\n setSubmitting(false);\n handlePixelTracking();\n // if the phone and email are valid, we can submit the form\n submitReferralVrFrom(values, setSubmitting);\n })\n .catch(err => {\n handleError(err);\n setSubmitting(false);\n });\n }\n // if we are not in the fan out flow, we can just submit the form\n else {\n submitReferralVrFrom(values, setSubmitting);\n }\n },\n [activity, handleError, isFanOut, submitReferralVrFrom, team, handlePixelTracking],\n );\n\n const isDisabled = React.useCallback(\n (errors, touched, values) => {\n const isTouched = !!Object.keys(touched).length;\n const hasErrors = !!Object.keys(errors).length;\n const { email, firstName, lastName, phone } = values;\n const isAllValues =\n !!email && !!firstName && !!lastName && !!phone && (isFanOut ? !!values.age_group : true);\n\n // RH - if all values are filled from initial values, then isTouched will be false, but we still want to enable the button\n return !!(hasErrors || (isAllValues && !isTouched) ? !isAllValues : !isTouched);\n },\n [isFanOut],\n );\n\n const refreshForm = React.useCallback(setFieldValue => {\n const fieldsToClear = ['firstName', 'lastName', 'phone', 'email'];\n fieldsToClear.forEach(f => setFieldValue(f, ''));\n }, []);\n\n const stylesSettings = useMemo(\n () => (isFanOut ? null : activity.settings),\n [activity.settings, isFanOut],\n );\n\n return (\n <Formik\n initialValues={initialValues}\n onSubmit={handleSubmit}\n validationSchema={schema}\n render={({ errors, isSubmitting, isValid, setFieldValue, touched, values }) => {\n return (\n <FormWrapper>\n {isFanOut && (\n <AgeGroupWrapper>\n <Input\n label={t('idvoters.labels.age_group')}\n name=\"age_group\"\n required\n radioButtons={fanOutRadioButtons}\n setFieldValue={setFieldValue}\n />\n {values.age_group === '13-17' && (\n <TeensText\n dangerouslySetInnerHTML={{\n __html: t('check_registration.referral.fanOutTeen'),\n }}\n />\n )}\n </AgeGroupWrapper>\n )}\n <Grid>\n <RefreshFormButton\n color={isFanOut ? null : activity.settings.button_color}\n position={{ right: 0, top: '-30px' }}\n clearData={() => refreshForm(setFieldValue)}\n />\n <Input\n autoComplete=\"given-name\"\n icon=\"person\"\n label={t('idvoters.labels.firstname')}\n name=\"firstName\"\n placeholder={t('idvoters.labels.firstname')}\n required\n settings={stylesSettings}\n />\n <Input\n autoComplete=\"family-name\"\n icon=\"person\"\n label={t('idvoters.labels.lastname')}\n name=\"lastName\"\n placeholder={t('idvoters.labels.lastname')}\n required\n settings={stylesSettings}\n />\n <Input\n autoComplete=\"email\"\n icon=\"email\"\n label={t('idvoters.labels.email')}\n name=\"email\"\n placeholder={t('idvoters.labels.emailPlaceholder')}\n type=\"email\"\n required\n settings={stylesSettings}\n />\n <PhoneNumberInput\n name=\"phone\"\n isFanOut\n formik={{ errors, touched, values }}\n label={t('idvoters.labels.phone')}\n placeholder=\"(555) 345-6789\"\n onChange={e => setFieldValue('phone', e)}\n value={values.phone}\n prefixIcon={<PhoneFilled />}\n shouldFocusIcon\n backgroundColor={isFanOut ? theme.colors.white : activity.settings.background_color}\n fontColor={activity.settings.font_color}\n labelFontColor={activity.settings.font_color ?? vrDefaultColors.fontColor}\n outlineColor={activity.settings.field_outline_color}\n focusedColor={activity.settings.field_outline_color}\n isRequired\n labelStyles={{\n color: isFanOut ? 'black' : activity.settings.font_color,\n opacity: '0.85',\n textTransform: 'capitalize',\n ...(isFanOut && { marginBottom: '0.4rem' }),\n }}\n />\n </Grid>\n {showOptIns && (\n <OptIns\n activity={activity}\n setFieldValue={setFieldValue}\n team={team}\n values={values}\n isFanOut={isFanOut}\n />\n )}\n <ButtonRow>\n <ButtonGroup>{backButton}</ButtonGroup>\n <ButtonGroup>\n {secondaryButton}\n\n <Button\n htmlType=\"submit\"\n isFanOut={isFanOut}\n loading={isSubmitting}\n customVariant={stylesSettings}\n variant={\n isDisabled(errors, touched, values) ? 'disabled' : isFanOut ? 'fan_out' : 'blue'\n }\n >\n <div key=\"buttonContent\">\n {submitButtonChildren && submitButtonChildren}\n {!submitButtonChildren && (\n <>\n <StyledSearchIcon $isDisabled={isDisabled(errors, touched, values)} />\n {t('idvoters.search')}\n </>\n )}\n </div>\n </Button>\n </ButtonGroup>\n </ButtonRow>\n </FormWrapper>\n );\n }}\n />\n );\n}\n\nReferralForm.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n id: PropTypes.number,\n }),\n settings: PropTypes.shape({\n background_color: PropTypes.string,\n button_color: PropTypes.string,\n field_outline_color: PropTypes.string,\n font_color: PropTypes.string,\n pixel_fb_id: PropTypes.string,\n pixel_ga_id: PropTypes.string,\n pixel_gtm_id: PropTypes.string,\n pixel_sc_id: PropTypes.string,\n }),\n }).isRequired,\n backButton: PropTypes.any,\n fanOutRadioButtons: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.any.isRequired,\n }),\n ),\n initialValues: PropTypes.object.isRequired,\n isFanOut: PropTypes.bool,\n nextPage: PropTypes.func.isRequired,\n schema: PropTypes.object.isRequired,\n secondaryButton: PropTypes.any,\n submitButtonChildren: PropTypes.any,\n team: PropTypes.shape({}),\n};\n\nReferralForm.defaultProps = {\n backButton: null,\n extraButton: null,\n};\n\nexport default ReferralForm;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Description, Title } from '@web/components/VoterRegistration/newComponents/TextStyles';\nimport MobileHero from './MobileHero';\nimport ReferralForm from './ReferralForm';\n\nimport { track } from '@web/services/analytics';\nimport useContactForm from '@web/components/VoterRegistration/hooks/useContactForm';\nimport useIsMobile from '@web/components/VoterRegistration/hooks/useIsMobile';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { amplitudeTrack } from '@web/components/FanOut/hooks/useFanOutAmplitude';\nimport { vrDefaultColors } from '@web/styles/theme';\n\nfunction Info(props) {\n const { t } = useTranslation();\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n const { activity, team, isFanOut } = props;\n const { initialValues, schemas, fanOutRadioButtons } = useContactForm(\n contactFormResult,\n activity,\n );\n const isMobile = useIsMobile();\n\n React.useEffect(() => {\n if (isFanOut) {\n amplitudeTrack({ activity, name: 'FAN_OUT_VIEW_REFERRAL_FORM', team });\n } else {\n track('VR_VIEW_REFERRAL_FORM', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n }\n // eslint-disable-next-line\n }, []);\n\n const fontColor = React.useMemo(\n () => (isFanOut ? undefined : activity?.settings?.font_color ?? vrDefaultColors.fontColor),\n [activity?.settings?.font_color, isFanOut],\n );\n\n const text = (\n <>\n <Title $fontColor={fontColor}>\n {[784, 3876].includes(activity?.campaign?.id)\n ? t('check_registration.referral.wwavTitle')\n : isFanOut\n ? t('check_registration.referral.fanOutTitle')\n : t('check_registration.referral.title')}\n </Title>\n <Description $fontColor={fontColor}>\n {[784, 3876].includes(activity?.campaign?.id)\n ? t('check_registration.referral.wwavDescription')\n : isFanOut\n ? t('check_registration.referral.fanOutDescription')\n : t('check_registration.referral.formDescription')}\n </Description>\n </>\n );\n\n return (\n <>\n {isMobile ? (\n <MobileHero isFanOut={isFanOut} isForm>\n {text}\n </MobileHero>\n ) : (\n text\n )}\n <ReferralForm\n initialValues={initialValues.referralForm}\n schema={isFanOut ? schemas.fanOutReferralForm : schemas.referralForm}\n fanOutRadioButtons={fanOutRadioButtons}\n submitButtonChildren={\n [784, 3876].includes(activity?.campaign?.id)\n ? t('check_registration.referral.wwavFormButton')\n : isFanOut\n ? t('check_registration.referral.fanOutFormButton')\n : t('check_registration.referral.formButton')\n }\n {...props}\n />\n </>\n );\n}\n\nInfo.propTypes = {\n activity: PropTypes.object.isRequired,\n isFanOut: PropTypes.bool,\n team: PropTypes.object,\n};\n\nInfo.defaultProps = {\n team: null,\n};\n\nexport default Info;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst StyledReason = styled.li`\n display: flex;\n margin-top: 1rem;\n`;\n\nconst IconArea = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: center;\n padding-top: 5px;\n max-width: 36px;\n min-width: 36px;\n\n path {\n fill: ${({ $color }) => $color};\n }\n`;\n\nconst Text = styled.p`\n font-size: 1rem;\n margin-bottom: 0;\n color: ${({ $fontColor }) => $fontColor};\n`;\n\nfunction Reason({ icon, text, fontColor }) {\n return (\n <StyledReason>\n <IconArea $color={fontColor}>{icon}</IconArea>\n <Text $fontColor={fontColor}>{text}</Text>\n </StyledReason>\n );\n}\n\nReason.propTypes = {\n fontColor: PropTypes.string,\n icon: PropTypes.element.isRequired,\n text: PropTypes.any.isRequired,\n};\n\nReason.defaultProps = {};\n\nexport default Reason;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ABCheck(props) {\n return (\n <svg viewBox=\"0 0 20 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M9.44435 9.00022H12.6166C14.1166 9.00022 15.4638 7.88216 15.5509 6.38425C15.5749 5.97718 15.5086 5.56984 15.357 5.1913C15.2054 4.81276 14.9722 4.47234 14.6739 4.19431C14.9289 3.71644 15.0382 3.17431 14.9885 2.63494C14.8575 1.17279 13.5173 0.111328 12.0485 0.111328H9.44435C9.29701 0.111328 9.1557 0.16986 9.05151 0.274047C8.94733 0.378233 8.8888 0.519541 8.8888 0.666884V8.44466C8.8888 8.59201 8.94733 8.73331 9.05151 8.8375C9.1557 8.94169 9.29701 9.00022 9.44435 9.00022ZM10.8332 2.05577H12.2221C12.4431 2.05577 12.6551 2.14357 12.8114 2.29985C12.9677 2.45613 13.0555 2.66809 13.0555 2.88911C13.0555 3.11012 12.9677 3.32208 12.8114 3.47836C12.6551 3.63464 12.4431 3.72244 12.2221 3.72244H10.8332V2.05577ZM10.8332 5.38911H12.7777C12.9987 5.38911 13.2107 5.4769 13.3669 5.63318C13.5232 5.78946 13.611 6.00143 13.611 6.22244C13.611 6.44345 13.5232 6.65542 13.3669 6.8117C13.2107 6.96798 12.9987 7.05577 12.7777 7.05577H10.8332V5.38911ZM5.38602 0.883898C5.31426 0.65958 5.17308 0.463865 4.98285 0.325004C4.79263 0.186142 4.5632 0.111317 4.32769 0.111328L3.44991 0.111328C3.21439 0.111317 2.98496 0.186142 2.79474 0.325004C2.60451 0.463865 2.46333 0.65958 2.39157 0.883898L0.0203935 8.2964C-0.00244527 8.37887 -0.00592182 8.46551 0.0102351 8.54955C0.0263919 8.63359 0.0617454 8.71276 0.113538 8.78089C0.16533 8.84901 0.232161 8.90425 0.308818 8.9423C0.385475 8.98034 0.469884 9.00017 0.555463 9.00022H1.42109C1.54259 9.00022 1.66075 8.96039 1.75745 8.88683C1.85416 8.81326 1.92408 8.71002 1.9565 8.59293L2.37109 7.33355H5.40651L5.82109 8.59293C5.85351 8.71002 5.92344 8.81326 6.02014 8.88683C6.11685 8.96039 6.235 9.00022 6.3565 9.00022H7.22213C7.30774 9.00022 7.39219 8.98044 7.46889 8.94242C7.54559 8.90439 7.61247 8.84916 7.6643 8.78102C7.71613 8.71289 7.75151 8.6337 7.76769 8.54963C7.78386 8.46557 7.78039 8.3789 7.75755 8.2964L5.38602 0.883898ZM3.10303 5.11133L3.8888 2.72591L4.67456 5.11133H3.10303ZM19.8391 9.71133L18.2694 8.13841C18.2181 8.08652 18.157 8.04532 18.0897 8.0172C18.0224 7.98908 17.9501 7.9746 17.8772 7.9746C17.8042 7.9746 17.732 7.98908 17.6647 8.0172C17.5973 8.04532 17.5363 8.08652 17.485 8.13841L12.2246 13.3988L10.3006 11.4717C10.2493 11.4199 10.1882 11.3787 10.1209 11.3505C10.0536 11.3224 9.98137 11.3079 9.90841 11.3079C9.83546 11.3079 9.76322 11.3224 9.6959 11.3505C9.62858 11.3787 9.56751 11.4199 9.51623 11.4717L7.94331 13.0447C7.83952 13.1488 7.78124 13.2898 7.78124 13.4369C7.78124 13.5839 7.83952 13.7249 7.94331 13.829L11.8322 17.7252C11.8835 17.7771 11.9446 17.8183 12.012 17.8465C12.0793 17.8746 12.1516 17.8891 12.2246 17.8891C12.2975 17.8891 12.3698 17.8746 12.4372 17.8465C12.5045 17.8183 12.5656 17.7771 12.6169 17.7252L19.8391 10.4957C19.9428 10.3915 20.001 10.2504 20.0009 10.1034C20.0007 9.95635 19.9423 9.81537 19.8384 9.71133H19.8391Z\"\n fill=\"black\"\n />\n </svg>\n );\n}\n\nABCheck.propTypes = {\n height: PropTypes.number,\n};\n\nABCheck.defaultProps = {\n height: 18,\n};\n\nexport default ABCheck;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Clock(props) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M10 0.3125C4.64844 0.3125 0.3125 4.64844 0.3125 10C0.3125 15.3516 4.64844 19.6875 10 19.6875C15.3516 19.6875 19.6875 15.3516 19.6875 10C19.6875 4.64844 15.3516 0.3125 10 0.3125ZM12.2305 13.9883L8.78516 11.4844C8.66406 11.3945 8.59375 11.2539 8.59375 11.1055V4.53125C8.59375 4.27344 8.80469 4.0625 9.0625 4.0625H10.9375C11.1953 4.0625 11.4062 4.27344 11.4062 4.53125V9.91016L13.8867 11.7148C14.0977 11.8672 14.1406 12.1602 13.9883 12.3711L12.8867 13.8867C12.7344 14.0938 12.4414 14.1406 12.2305 13.9883Z\"\n fill=\"black\"\n />\n </svg>\n );\n}\n\nClock.propTypes = {\n height: PropTypes.number,\n};\n\nClock.defaultProps = {\n height: 20,\n};\n\nexport default Clock;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Contact(props) {\n return (\n <svg viewBox=\"0 0 20 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M18.3333 0.222656H1.66667C0.746528 0.222656 0 0.969184 0 1.88932V14.1115C0 15.0317 0.746528 15.7782 1.66667 15.7782H18.3333C19.2535 15.7782 20 15.0317 20 14.1115V1.88932C20 0.969184 19.2535 0.222656 18.3333 0.222656ZM6.11111 3.55599C7.33681 3.55599 8.33333 4.55252 8.33333 5.77821C8.33333 7.00391 7.33681 8.00043 6.11111 8.00043C4.88542 8.00043 3.88889 7.00391 3.88889 5.77821C3.88889 4.55252 4.88542 3.55599 6.11111 3.55599ZM10 11.7782C10 12.1463 9.65278 12.4449 9.22222 12.4449H3C2.56944 12.4449 2.22222 12.1463 2.22222 11.7782V11.1115C2.22222 10.0074 3.26736 9.11154 4.55556 9.11154H4.72917C5.15625 9.28863 5.62153 9.38932 6.11111 9.38932C6.60069 9.38932 7.06944 9.28863 7.49306 9.11154H7.66667C8.95486 9.11154 10 10.0074 10 11.1115V11.7782ZM17.7778 9.94488C17.7778 10.0977 17.6528 10.2227 17.5 10.2227H12.5C12.3472 10.2227 12.2222 10.0977 12.2222 9.94488V9.38932C12.2222 9.23654 12.3472 9.11154 12.5 9.11154H17.5C17.6528 9.11154 17.7778 9.23654 17.7778 9.38932V9.94488ZM17.7778 7.72266C17.7778 7.87543 17.6528 8.00043 17.5 8.00043H12.5C12.3472 8.00043 12.2222 7.87543 12.2222 7.72266V7.1671C12.2222 7.01432 12.3472 6.88932 12.5 6.88932H17.5C17.6528 6.88932 17.7778 7.01432 17.7778 7.1671V7.72266ZM17.7778 5.50043C17.7778 5.65321 17.6528 5.77821 17.5 5.77821H12.5C12.3472 5.77821 12.2222 5.65321 12.2222 5.50043V4.94488C12.2222 4.7921 12.3472 4.6671 12.5 4.6671H17.5C17.6528 4.6671 17.7778 4.7921 17.7778 4.94488V5.50043Z\"\n fill=\"black\"\n />\n </svg>\n );\n}\n\nContact.propTypes = {\n height: PropTypes.number,\n};\n\nContact.defaultProps = {\n height: 16,\n};\n\nexport default Contact;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Button from '@web/components/VoterRegistration/newComponents/Button';\nimport BackButton from '@web/components/VoterRegistration/newComponents/Button/BackButton';\nimport Reason from './Reason';\nimport { Title } from '@web/components/VoterRegistration/newComponents/TextStyles';\n\n// Icons\nimport ABCheck from '@web/components/VoterRegistration/newComponents/icons/ABCheck';\nimport Clock from '@web/components/VoterRegistration/newComponents/icons/Clock';\nimport Contact from '@web/components/VoterRegistration/newComponents/icons/Contact';\nimport Location from '@web/components/VoterRegistration/newComponents/icons/Location';\nimport MessageBox from '@web/components/VoterRegistration/newComponents/MessageBox';\n\nimport {\n checkRegistration,\n fanOutRegistration,\n} from '@web/components/VoterRegistration/hooks/useFlows';\nimport { largeBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport { track } from '@web/services/analytics';\nimport { capitalize } from '@web/utils/string';\nimport { useTranslation } from 'react-i18next';\nimport { vrDefaultColors } from '@web/styles/theme';\n\nconst StyledNotRegistered = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n`;\n\nconst Push = styled.div`\n margin-top: 80px;\n flex: 1;\n`;\n\nconst StyledMessageBox = styled(MessageBox)`\n margin: 40px 0 20px;\n background: ${({ $background }) => ($background ? `${$background}40` : undefined)};\n`;\n\nconst Row = styled.div`\n display: flex;\n flex-direction: column-reverse;\n margin-top: 1rem;\n\n ${largeBreakpoint} {\n flex-direction: row;\n justify-content: space-between;\n button {\n max-width: 250px;\n }\n }\n`;\n\nconst Ul = styled.ul`\n margin: 0;\n margin-left: -0.5rem;\n padding: 0;\n`;\n\nconst KeepGoingText = styled.div`\n color: ${({ theme }) => theme.colors.trueBlack};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem; /* 150% */\n\n > span {\n text-decoration: underline;\n text-transform: capitalize;\n }\n`;\n\nconst Text = styled.p`\n font-size: 1rem;\n color: ${({ $fontColor }) => $fontColor};\n`;\n\nconst StyledBackButton = styled(BackButton)`\n text-transform: ${({ isFanOut }) => (isFanOut ? 'capitalize' : 'none')};\n`;\n\nfunction NotRegistered({ nextPage, previousPage, setSelectedFlow, isFanOut, referrer, ...rest }) {\n const { t } = useTranslation();\n const { activity, team } = rest;\n\n React.useEffect(() => {\n if (!isFanOut) {\n track('VR_VIEW_CHECK_REGISTRATION_NOT_REGISTERED', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n }\n // eslint-disable-next-line\n }, []);\n\n function handleBack() {\n setSelectedFlow(isFanOut ? fanOutRegistration : checkRegistration);\n previousPage();\n }\n\n const title = React.useMemo(\n () =>\n isFanOut\n ? t('check_registration.notRegistered.descriptionFanOut')\n : t('check_registration.notRegistered.description'),\n [isFanOut, t],\n );\n const reason1 = React.useMemo(() => t('check_registration.notRegistered.reason1'), [t]);\n const reason2 = React.useMemo(\n () =>\n isFanOut\n ? t('check_registration.notRegistered.reason2FanOut')\n : t('check_registration.notRegistered.reason2'),\n [isFanOut, t],\n );\n const reason3 = React.useMemo(\n () =>\n isFanOut\n ? t('check_registration.notRegistered.reason3FanOut')\n : t('check_registration.notRegistered.reason3'),\n [isFanOut, t],\n );\n const reason4 = React.useMemo(\n () =>\n isFanOut\n ? t('check_registration.notRegistered.reason4FanOut')\n : t('check_registration.notRegistered.reason4'),\n [isFanOut, t],\n );\n const isFanOutReferrer = React.useMemo(() => referrer && isFanOut, [referrer, isFanOut]);\n\n const fontColor = React.useMemo(\n () => activity?.settings?.font_color ?? vrDefaultColors.fontColor,\n [activity?.settings?.font_color],\n );\n\n const sectionColor = React.useMemo(\n () =>\n isFanOut ? null : activity?.settings?.progress_bar_color ?? vrDefaultColors.progressBarColor,\n [activity?.settings?.progress_bar_color, isFanOut],\n );\n\n return (\n <StyledNotRegistered>\n <Title $fontColor={fontColor}>{t('check_registration.notRegistered.title')}</Title>\n <StyledMessageBox $background={sectionColor}>\n <Text $fontColor={fontColor}>{title}</Text>\n <Ul $fontColor={fontColor}>\n <Reason fontColor={fontColor} icon={<Contact />} text={reason1} />\n <Reason fontColor={fontColor} icon={<ABCheck />} text={reason2} />\n <Reason fontColor={fontColor} icon={<Clock />} text={reason3} />\n <Reason fontColor={fontColor} icon={<Location />} text={reason4} />\n </Ul>\n </StyledMessageBox>\n {isFanOutReferrer && (\n <KeepGoingText\n dangerouslySetInnerHTML={{\n __html: t('check_registration.notRegistered.keepGoing', {\n name: capitalize(referrer?.fullname || ''),\n }),\n }}\n />\n )}\n <Push />\n <Row>\n <StyledBackButton\n customVariant={isFanOut ? null : activity.settings}\n isFanOut={isFanOut}\n onClick={handleBack}\n variant=\"link\"\n >\n {t('check_registration.search_results.search_again')}\n </StyledBackButton>\n <Button\n isFanOut={isFanOut}\n customVariant={isFanOut ? null : activity.settings}\n onClick={nextPage}\n variant={isFanOut ? 'fan_out' : 'blue'}\n >\n {t('check_registration.notRegistered.registerToVote')}\n </Button>\n </Row>\n </StyledNotRegistered>\n );\n}\n\nNotRegistered.propTypes = {\n activity: PropTypes.object.isRequired,\n isFanOut: PropTypes.bool,\n nextPage: PropTypes.func.isRequired,\n previousPage: PropTypes.func.isRequired,\n referrer: PropTypes.shape({\n fullname: PropTypes.string,\n id: PropTypes.number,\n }),\n setSelectedFlow: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nNotRegistered.defaultProps = {\n team: null,\n};\n\nexport default NotRegistered;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Contact, { IconWrapper } from '@web/components/VoterRegistration/newComponents/Contact';\nimport HoverCard from '@web/components/VoterRegistration/newComponents/HoverCard';\n\n// icons\nimport Location from '../../../newComponents/icons/Location';\n\nimport { useTranslation } from 'react-i18next';\n\nconst DURATION = '150ms';\n\nconst ShowOnHover = styled.span`\n margin-right: 6px;\n transform: translateY(-1px);\n opacity: 0;\n transition: opacity ${DURATION} ease-out;\n color: ${({ $color }) => $color};\n`;\n\nconst StyledVoterItem = styled(HoverCard)`\n ${IconWrapper} svg path {\n fill-opacity: 0.3;\n transition: fill-opacity ${DURATION} ease-out;\n }\n\n svg path {\n fill: ${({ theme, $color }) => $color ?? theme.colors.blue} !important;\n }\n\n border: 1px solid ${({ theme, $bgColor }) => $bgColor ?? theme.colors.white};\n :hover {\n border: 1px solid ${({ theme, $color }) => $color ?? theme.colors.blue};\n ${ShowOnHover} {\n opacity: 1;\n }\n ${IconWrapper} svg path {\n fill-opacity: 1;\n }\n }\n`;\n\nconst Row = styled.div`\n align-items: center;\n display: flex;\n`;\n\nfunction VoterItem({ onSelect, voter, bgColor, fontColor, ...rest }) {\n const { addressLine1, addressLine2, age, name } = voter;\n const { t } = useTranslation();\n return (\n <StyledVoterItem\n $bgColor={bgColor}\n $color={fontColor}\n arrowChildren={\n <ShowOnHover $color={fontColor}>\n {t('check_registration.search_results.this_is_me')}\n </ShowOnHover>\n }\n forwardedAs=\"li\"\n onClick={() => onSelect(voter)}\n >\n <Contact fontColor={fontColor} age={age} name={name} />\n <Row style={{ marginTop: 20 }}>\n <IconWrapper $color={fontColor}>\n <Location height={14} />\n </IconWrapper>\n <span style={{ color: `${fontColor}BF` }}>\n {addressLine1} {addressLine2}\n </span>\n </Row>\n </StyledVoterItem>\n );\n}\n\nVoterItem.propTypes = {\n bgColor: PropTypes.string,\n fontColor: PropTypes.string,\n onSelect: PropTypes.func.isRequired,\n voter: PropTypes.shape({\n addressLine1: PropTypes.string.isRequired,\n addressLine2: PropTypes.string.isRequired,\n age: PropTypes.any.isRequired,\n name: PropTypes.string.isRequired,\n }),\n};\n\nVoterItem.defaultProps = {};\n\nexport default VoterItem;\n","import axios from 'axios';\nimport queryString from 'query-string';\nimport { message } from 'antd';\nimport sendError from '@web/utils/sendError';\n\nimport { useLocation } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nfunction useVoterRegistrationApi(activity, team) {\n const { t } = useTranslation();\n const { search } = useLocation();\n const { referral_hash, utm_campaign, utm_source, utm_medium } = queryString.parse(search);\n\n function buildData(values) {\n return {\n activity_id: activity.id,\n address: values.address,\n campaign_id: activity.campaign.id,\n city: values.city,\n county_name: values.countyName,\n date_of_birth: values.dateOfBirth,\n email: values.email,\n email_opt_in: values.emailOptIn,\n first_name: values.firstName,\n last_name: values.lastName,\n phone: values.phone,\n referral_hash,\n registration_status: values.registrationStatus,\n sms_opt_in: values.smsOptIn,\n state_abbrev: values.stateAbbrev,\n team_id: team?.id,\n unit_number: values.unitNumber,\n utm_campaign,\n utm_medium,\n utm_source,\n zip_code: values.zipCode,\n };\n }\n\n function submitContactForm(values) {\n return axios.post(`/api/v2/client/voter_registrations`, {\n ...buildData(values),\n });\n }\n\n function submitNormalContactForm(values) {\n // MTS - We only have one checkbox and it encompasses email and sms\n const updatedValues = { ...values, emailOptIn: values.smsOptIn };\n return axios.post(`/api/v2/client/voter_registrations`, {\n ...buildData(updatedValues),\n });\n }\n\n function submitContactUpdate(contact, values) {\n return axios.patch(`/api/v2/client/voter_registrations/${contact.id}`, {\n activity_id: activity.id,\n address: values.address,\n city: values.city,\n county_name: values.countyName,\n h: contact.encode_id,\n has_state_identification: values.stateId,\n state_abbrev: values.stateAbbrev,\n unit_number: values.unitNumber,\n zip_code: values.zipCode,\n });\n }\n\n function submitContactStateIdUpdate(contact, hasStateId) {\n return axios.patch(`/api/v2/client/voter_registrations/${contact.id}`, {\n activity_id: activity.id,\n h: contact.encode_id,\n has_state_identification: hasStateId,\n });\n }\n\n function handleError(error) {\n let errorMessage = t('errors.default');\n if (error.response) {\n const data = error.response.data;\n\n if (data.message) {\n if (typeof data.message === 'object') {\n errorMessage = `${errorMessage} ${Object.values(data.message).join(', ')}`;\n } else {\n errorMessage = `${errorMessage} ${data.message}`;\n }\n } else {\n // Log the error to Sentry only if the error is not a validation error\n sendError(`Voter Registration: Headcount error ${errorMessage}`, error);\n }\n }\n message.error(errorMessage);\n return errorMessage;\n }\n\n return {\n handleError,\n submitContactForm,\n submitContactStateIdUpdate,\n submitContactUpdate,\n submitNormalContactForm,\n };\n}\n\nexport default useVoterRegistrationApi;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\nimport styled from 'styled-components';\n\nimport BackButton from '@web/components/VoterRegistration/newComponents/Button/BackButton';\nimport Button from '@web/components/VoterRegistration/newComponents/Button';\nimport ErrorText from '@web/components/VoterRegistration/newComponents/Input/ErrorText';\nimport { Description, Title } from '@web/components/VoterRegistration/newComponents/TextStyles';\nimport DotLoader from '@web/components/DotLoader';\nimport VoterItem from './VoterItem';\n\nimport {\n checkRegistrationNotRegistered,\n fanOutNotRegistered,\n} from '@web/components/VoterRegistration/hooks/useFlows';\nimport { largeBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport parseVoterObject from '@web/components/VoterRegistration/helpers/parseVoterObject';\nimport { setSelectedVoter } from '@web/reducers/voterRegistration';\nimport { track } from '@web/services/analytics';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport useVoterRegistrationApi from '@web/components/Headcount/hooks/useVoterRegistrationApi';\nimport { amplitudeTrack } from '@web/components/FanOut/hooks/useFanOutAmplitude';\nimport { vrDefaultColors } from '@web/styles/theme';\n\nconst Push = styled.div`\n flex: 1;\n ${largeBreakpoint} {\n display: none;\n }\n`;\n\nconst Row = styled.div`\n display: flex;\n flex-direction: column-reverse;\n margin-top: 1rem;\n\n ${largeBreakpoint} {\n flex-direction: row;\n justify-content: space-between;\n button {\n max-width: 250px;\n }\n }\n`;\n\nconst StyledSelectVoter = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n`;\n\nconst VoterList = styled.ul`\n display: grid;\n grid-gap: 1rem;\n grid-template-columns: 1fr;\n margin: 40px 0 55px;\n padding: 0;\n width: 100%;\n\n ${largeBreakpoint} {\n grid-template-columns: 1fr 1fr;\n }\n`;\n\nconst StyledBackButton = styled(BackButton)`\n text-transform: ${({ isFanOut }) => (isFanOut ? 'capitalize' : 'none')};\n`;\n\nfunction SelectVoter({ activity, nextPage, previousPage, setSelectedFlow, team, isFanOut }) {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n // eslint-disable-next-line\n const [error, setError] = React.useState(null);\n const { contactFormResult, isRegistrationRecheck } = useSelector(\n state => state.voterRegistration,\n );\n const { handleError } = useVoterRegistrationApi(activity);\n const [loading, setLoading] = React.useState(true);\n const [voters, setVoters] = React.useState([]);\n\n React.useEffect(() => {\n fetchVoters();\n\n if (isFanOut) {\n amplitudeTrack({ activity, name: 'FAN_OUT_VIEW_CHECK_REGISTRATION_SELECT_VOTER', team });\n } else {\n track('VR_VIEW_CHECK_REGISTRATION_SELECT_VOTER', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n }\n // eslint-disable-next-line\n }, []);\n\n function fetchVoters() {\n axios\n .post(`/api/v2/client/voter_registrations/${contactFormResult?.id}/possible_voters`, {\n activity_id: isFanOut && isRegistrationRecheck ? undefined : activity.id,\n campaign_id: activity.campaign.id,\n h: contactFormResult.encode_id,\n recheck: (isFanOut && isRegistrationRecheck) || undefined,\n })\n .then(({ data }) => {\n setVoters(data);\n // MTS - If we don't get any results then we switch to the\n // \"Not Registered\" flow.\n if (data.length === 0) {\n notRegistered();\n }\n })\n .catch(err => {\n const errorMessage = handleError(err);\n setError(errorMessage);\n })\n .finally(() => {\n setLoading(false);\n });\n }\n\n function handleSelect(voter) {\n setLoading(true);\n axios\n .patch(`/api/v2/client/voter_registrations/${contactFormResult?.id}/set_voter`, {\n activity_id: isFanOut && isRegistrationRecheck ? undefined : activity.id,\n campaign_id: activity.campaign.id,\n h: contactFormResult?.encode_id,\n recheck: (isFanOut && isRegistrationRecheck) || undefined,\n team_id: team?.id,\n voter_id: voter.voterbaseId,\n })\n .then(({ data }) => {\n const newData = { ...voter, ...data };\n dispatch(setSelectedVoter(newData));\n nextPage();\n })\n .catch(err => {\n const errorMessage = handleError(err);\n setError(errorMessage);\n })\n .finally(() => {\n setLoading(false);\n });\n }\n\n function handleSearchAgain() {\n setLoading(true);\n if (isFanOut) {\n dispatch(setSelectedVoter(null));\n }\n previousPage();\n }\n\n // MTS - This is triggered in two ways:\n // 1. We aren't able to find a voter record at the user's address\n // 2. The clicks the \"None of these are me button\" on this page.\n function notRegistered() {\n if (isFanOut) {\n setSelectedFlow(fanOutNotRegistered);\n dispatch(setSelectedVoter(null));\n } else {\n setSelectedFlow(checkRegistrationNotRegistered);\n }\n }\n\n const fontColor = React.useMemo(\n () => (isFanOut ? undefined : activity?.settings?.font_color ?? vrDefaultColors.fontColor),\n [activity?.settings?.font_color, isFanOut],\n );\n\n const bgColor = React.useMemo(\n () =>\n isFanOut\n ? undefined\n : activity?.settings?.background_color ?? vrDefaultColors.backgroundColor,\n [activity?.settings?.background_color, isFanOut],\n );\n\n if (loading) {\n return (\n <div style={{ minHeight: 342 }}>\n <DotLoader centered color=\"black\" />\n </div>\n );\n }\n\n if (error) {\n return <ErrorText>{error}</ErrorText>;\n }\n\n const buttonLabel = t('check_registration.search_results.none_of_these');\n\n return (\n <StyledSelectVoter>\n <Title $fontColor={fontColor}>\n {isFanOut\n ? t('check_registration.search_results.title_fanOut')\n : t('check_registration.search_results.title')}\n </Title>\n <Description $fontColor={fontColor}>\n {isFanOut\n ? t('check_registration.search_results.description_fanOut')\n : t('check_registration.search_results.description', { buttonLabel })}\n </Description>\n <VoterList>\n {voters.map((voter, i) => (\n <VoterItem\n fontColor={fontColor}\n bgColor={bgColor}\n key={i}\n onSelect={handleSelect}\n voter={parseVoterObject(voter)}\n />\n ))}\n </VoterList>\n <Push />\n <Row>\n <StyledBackButton\n customVariant={isFanOut ? null : activity.settings}\n isFanOut={isFanOut}\n onClick={handleSearchAgain}\n >\n {t('check_registration.search_results.search_again')}\n </StyledBackButton>\n <Button\n customVariant={isFanOut ? null : activity.settings}\n isFanOut={isFanOut}\n onClick={notRegistered}\n variant={isFanOut ? 'fan_out' : 'blue'}\n >\n {buttonLabel}\n </Button>\n </Row>\n </StyledSelectVoter>\n );\n}\n\nSelectVoter.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n id: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n }),\n id: PropTypes.number.isRequired,\n settings: PropTypes.shape({\n background_color: PropTypes.string,\n font_color: PropTypes.string,\n }),\n title: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n }),\n isFanOut: PropTypes.bool,\n nextPage: PropTypes.func.isRequired,\n previousPage: PropTypes.func.isRequired,\n setSelectedFlow: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nSelectVoter.defaultProps = {\n team: null,\n};\n\nexport default SelectVoter;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport BackButton from '@web/components/VoterRegistration/newComponents/Button/BackButton';\nimport ContactForm from '@web/components/VoterRegistration/newComponents/ContactForm';\nimport { Description, Title } from '@web/components/VoterRegistration/newComponents/TextStyles';\n\nimport { track } from '@web/services/analytics';\nimport { fanOutRegistration } from '@web/components/VoterRegistration/hooks/useFlows';\nimport useContactForm from '@web/components/VoterRegistration/hooks/useContactForm';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { vrDefaultColors } from '@web/styles/theme';\n\nfunction TellUs(props) {\n const { t } = useTranslation();\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n const { activity, team, isFanOut } = props;\n const { initialValues, schemas } = useContactForm(contactFormResult, activity);\n const onBackButtonClick = () => {\n if (props.isFanOut) {\n props.setSelectedFlow(fanOutRegistration);\n } else {\n props.previousPage();\n }\n };\n const backButton = (\n <BackButton\n customVariant={activity.settings}\n onClick={onBackButtonClick}\n isFanOut={props.isFanOut}\n >\n {t('common.back')}\n </BackButton>\n );\n\n React.useEffect(() => {\n if (!isFanOut) {\n track('VR_VIEW_REGISTER_FORM', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n }\n // eslint-disable-next-line\n }, []);\n\n const fontColor = React.useMemo(\n () => activity?.settings?.font_color ?? vrDefaultColors.fontColor,\n [activity?.settings?.font_color],\n );\n\n return (\n <>\n <Title $fontColor={fontColor}>{t('check_registration.tellUs.title')}</Title>\n <Description $fontColor={fontColor}>{t('check_registration.tellUs.description')}</Description>\n <ContactForm\n backButton={backButton}\n initialValues={initialValues.contactForm}\n submitButtonChildren={t('common.submit')}\n schema={isFanOut ? schemas.fanOutContactForm : schemas.contactForm}\n {...props}\n />\n </>\n );\n}\n\nTellUs.propTypes = {\n activity: PropTypes.object.isRequired,\n isFanOut: PropTypes.bool,\n previousPage: PropTypes.func.isRequired,\n setSelectedFlow: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nTellUs.defaultProps = {\n team: null,\n};\n\nexport default TellUs;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CircleCheck({ fill, ...rest }) {\n return (\n <svg viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...rest}>\n <path\n d=\"M14 0C6.26875 0 0 6.26875 0 14C0 21.7313 6.26875 28 14 28C21.7313 28 28 21.7313 28 14C28 6.26875 21.7313 0 14 0ZM14 25.625C7.58125 25.625 2.375 20.4188 2.375 14C2.375 7.58125 7.58125 2.375 14 2.375C20.4188 2.375 25.625 7.58125 25.625 14C25.625 20.4188 20.4188 25.625 14 25.625Z\"\n fill={fill}\n />\n <path\n d=\"M14 25.625C7.58125 25.625 2.375 20.4188 2.375 14C2.375 7.58125 7.58125 2.375 14 2.375C20.4188 2.375 25.625 7.58125 25.625 14C25.625 20.4188 20.4188 25.625 14 25.625Z\"\n fill={fill}\n />\n <path\n d=\"M19.8427 9.03125H18.3771C18.0583 9.03125 17.7552 9.18437 17.5677 9.44687L12.6552 16.2594L10.4302 13.1719C10.2427 12.9125 9.94268 12.7563 9.62081 12.7563H8.15518C7.95206 12.7563 7.83331 12.9875 7.95206 13.1531L11.8458 18.5531C11.9378 18.6815 12.0591 18.7861 12.1995 18.8583C12.34 18.9305 12.4957 18.9681 12.6536 18.9681C12.8116 18.9681 12.9672 18.9305 13.1077 18.8583C13.2482 18.7861 13.3694 18.6815 13.4614 18.5531L20.0427 9.42813C20.1646 9.2625 20.0458 9.03125 19.8427 9.03125Z\"\n fill=\"white\"\n />\n </svg>\n );\n}\n\nCircleCheck.propTypes = {\n fill: PropTypes.any,\n height: PropTypes.number,\n};\n\nCircleCheck.defaultProps = {\n fill: '#52C41A',\n height: 28,\n};\n\nexport default CircleCheck;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CircleX(props) {\n return (\n <svg viewBox=\"0 0 28 29\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M14 0.03125C6.26875 0.03125 0 6.3 0 14.0313C0 21.7625 6.26875 28.0313 14 28.0313C21.7313 28.0313 28 21.7625 28 14.0313C28 6.3 21.7313 0.03125 14 0.03125ZM14 25.6563C7.58125 25.6563 2.375 20.45 2.375 14.0313C2.375 7.6125 7.58125 2.40625 14 2.40625C20.4188 2.40625 25.625 7.6125 25.625 14.0313C25.625 20.45 20.4188 25.6563 14 25.6563Z\"\n fill=\"#F5222D\"\n />\n <path\n d=\"M14 25.6563C7.58125 25.6563 2.375 20.45 2.375 14.0313C2.375 7.6125 7.58125 2.40625 14 2.40625C20.4188 2.40625 25.625 7.6125 25.625 14.0313C25.625 20.45 20.4188 25.6563 14 25.6563Z\"\n fill=\"#F5222D\"\n />\n <path\n d=\"M19.4186 9.08789C19.4186 8.95039 19.3061 8.83789 19.1686 8.83789L17.1061 8.84727L13.9998 12.5504L10.8967 8.85039L8.83105 8.84102C8.69355 8.84102 8.58105 8.95039 8.58105 9.09102C8.58105 9.15039 8.60293 9.20664 8.64043 9.25352L12.7061 14.0973L8.64043 18.9379C8.60267 18.9837 8.58172 19.041 8.58105 19.1004C8.58105 19.2379 8.69355 19.3504 8.83105 19.3504L10.8967 19.341L13.9998 15.6379L17.1029 19.3379L19.1654 19.3473C19.3029 19.3473 19.4154 19.2379 19.4154 19.0973C19.4154 19.0379 19.3936 18.9816 19.3561 18.9348L15.2967 14.0941L19.3623 9.25039C19.3998 9.20664 19.4186 9.14727 19.4186 9.08789Z\"\n fill=\"white\"\n />\n </svg>\n );\n}\n\nCircleX.propTypes = {\n height: PropTypes.number,\n};\n\nCircleX.defaultProps = {\n height: 29,\n};\n\nexport default CircleX;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Lock(props) {\n return (\n <svg viewBox=\"0 0 12 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M11 6.25H9.9375V2.75C9.9375 1.64531 9.04219 0.75 7.9375 0.75H4.0625C2.95781 0.75 2.0625 1.64531 2.0625 2.75V6.25H1C0.723437 6.25 0.5 6.47344 0.5 6.75V12.75C0.5 13.0266 0.723437 13.25 1 13.25H11C11.2766 13.25 11.5 13.0266 11.5 12.75V6.75C11.5 6.47344 11.2766 6.25 11 6.25ZM6.4375 9.95312V10.7812C6.4375 10.85 6.38125 10.9062 6.3125 10.9062H5.6875C5.61875 10.9062 5.5625 10.85 5.5625 10.7812V9.95312C5.43352 9.86052 5.33725 9.72938 5.28755 9.57859C5.23784 9.42779 5.23727 9.26511 5.28591 9.11396C5.33455 8.96281 5.42989 8.831 5.55821 8.73749C5.68654 8.64398 5.84122 8.5936 6 8.5936C6.15878 8.5936 6.31346 8.64398 6.44179 8.73749C6.57011 8.831 6.66545 8.96281 6.71409 9.11396C6.76273 9.26511 6.76216 9.42779 6.71245 9.57859C6.66275 9.72938 6.56648 9.86052 6.4375 9.95312ZM8.8125 6.25H3.1875V2.75C3.1875 2.26719 3.57969 1.875 4.0625 1.875H7.9375C8.42031 1.875 8.8125 2.26719 8.8125 2.75V6.25Z\"\n fill=\"#B7B7B7\"\n />\n </svg>\n );\n}\n\nLock.propTypes = {\n height: PropTypes.number,\n};\n\nLock.defaultProps = {\n height: 14,\n};\n\nexport default Lock;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction Star({ fill, ...rest }) {\n return (\n <svg viewBox=\"0 0 14 13\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...rest}>\n <path\n d=\"M6.47559 0.358692C6.63124 -0.0890883 7.2645 -0.0890864 7.42015 0.358694L8.80381 4.33931L13.0172 4.42517C13.4911 4.43483 13.6868 5.0371 13.3091 5.3235L9.95084 7.86952L11.1712 11.9032C11.3085 12.3569 10.7961 12.7292 10.407 12.4584L6.94787 10.0513L3.48872 12.4584C3.0996 12.7292 2.58728 12.3569 2.72455 11.9032L3.94489 7.86952L0.586679 5.3235C0.208913 5.0371 0.404605 4.43483 0.878567 4.42517L5.09193 4.33931L6.47559 0.358692Z\"\n fill={fill}\n />\n </svg>\n );\n}\n\nStar.propTypes = {\n fill: PropTypes.string,\n height: PropTypes.number,\n};\n\nStar.defaultProps = {\n fill: '#52C41A',\n height: 13,\n};\n\nexport default Star;\n","import dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\ndayjs.extend(customParseFormat);\n\nexport const DATE_FORMAT = 'MM-DD-YY';\nexport const DISPLAY_DATE_FORMAT = \"MMM D, 'YY\";\n\nexport const iconTypes = {\n dot: 'dot',\n star: 'star',\n};\n\nexport function showTimeline(data) {\n const today = dayjs();\n\n return !!data && !today.isAfter(dayjs(data, DATE_FORMAT));\n}\n\nexport function todayBeforeOrEqual(date) {\n if (!date) return false;\n\n const today = dayjs();\n return today.isBefore(dayjs(date, DATE_FORMAT)) || today.isSame(dayjs(date, DATE_FORMAT));\n}\n\nexport function showPostmarkedReceivedInfo({\n postmarkedDate,\n receivedDate,\n postmarkedText,\n receivedText,\n}) {\n if (showTimeline(postmarkedDate)) {\n return {\n date: postmarkedDate,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: postmarkedText,\n };\n }\n\n if (showTimeline(receivedDate)) {\n return {\n date: receivedDate,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: receivedText,\n };\n }\n\n return null;\n}\n\nexport const sortTimelines = timelines => {\n // Filter out timelines with valid dates\n const timelinesWithDates = timelines.filter(timeline => timeline.date);\n\n // Create an array of objects for timelines without dates\n const timelinesWithoutDates = [];\n for (let i = 0; i < timelines.length; i++) {\n const timeline = timelines[i];\n if (!timeline.date) {\n timelinesWithoutDates.push({ index: i, timeline });\n }\n }\n\n // Sort timelines with dates based on date\n const sortedTimelines = timelinesWithDates.sort(\n (a, b) => dayjs(a.date, DATE_FORMAT).unix() - dayjs(b.date, DATE_FORMAT).unix(),\n );\n\n // Insert timelines without dates at their specified index\n timelinesWithoutDates.forEach(({ index, timeline }) => {\n sortedTimelines.splice(index, 0, timeline);\n });\n\n return sortedTimelines;\n};\n\n// Check if today is before or equal one of the provided dates\nexport const getLatestDate = dates => {\n // Make sure there is no empty dates & sort them\n const sorted = dates\n .filter(d => d)\n .sort((a, b) => dayjs(a, DATE_FORMAT).unix() - dayjs(b, DATE_FORMAT).unix());\n\n let latestDate = null;\n\n for (const date of sorted) {\n // If one of the dates meet the condition we can stop the loop\n if (todayBeforeOrEqual(date)) {\n latestDate = date;\n break;\n }\n }\n\n return latestDate;\n};\n\nexport const getNoOnlineRegistrationAvailableDeadlineDate = votingInfo => {\n const date = getLatestDate([\n votingInfo.mail_reg_deadline_postmarked,\n votingInfo.mail_reg_deadline_received,\n votingInfo.mail_primary_reg_deadline_postmarked,\n votingInfo.mail_primary_reg_deadline_received,\n ]);\n\n if (date) {\n const displayFormat = 'MMM D';\n return dayjs(date, DATE_FORMAT).format(displayFormat);\n }\n};\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport styled from 'styled-components';\n\nimport CircleCheck from '@web/components/VoterRegistration/newComponents/icons/CircleCheck';\nimport Lock from '@web/components/VoterRegistration/newComponents/icons/Lock';\nimport Star from '@web/components/VoterRegistration/newComponents/icons/Star';\nimport { largeBreakpoint } from '../../../breakpoints';\nimport { DATE_FORMAT } from '../utils';\n\ndayjs.extend(customParseFormat);\n\nconst colors = {\n black: '#222',\n gray: '#707070',\n green: '#52C41A',\n lighterGray: '#F5F6F7',\n lightGray: '#B7B7B7',\n red: '#F5222D',\n};\n\nconst Link = styled.a`\n color: ${({ $color }) => $color ?? colors.gray};\n position: relative;\n ${largeBreakpoint} {\n margin-left: 8px;\n }\n :hover {\n text-decoration: none;\n &::before {\n color: ${({ $color }) => $color ?? colors.gray};\n }\n }\n\n &::before {\n content: '|';\n height: 8px;\n width: 1px;\n margin-right: 8px;\n }\n\n > span {\n text-decoration: underline;\n :hover {\n color: ${colors.gray};\n }\n }\n`;\n\nconst Dot = styled.div`\n background-color: ${({ $color }) => $color};\n border-radius: 4px;\n height: 8px;\n width: 8px;\n`;\n\nconst IconWrapper = styled.div`\n display: flex;\n justify-content: center;\n height: 100%;\n min-height: 40px;\n position: relative;\n svg,\n ${Dot} {\n position: relative;\n z-index: 1;\n }\n`;\n\nconst StyledTimelineItem = styled.li`\n display: grid;\n grid-gap: 0 11px;\n grid-template-columns: ${({ $twoColumns }) => ($twoColumns ? '20px 1fr' : '20px 80px 1fr')};\n min-height: 40px;\n`;\n\nconst Line = styled.div`\n background-color: ${({ $color }) => `${$color}1A`};\n left: 50%;\n width: 2px;\n top: 0;\n bottom: 0;\n transform: translateX(-50%);\n position: absolute;\n z-index: 0;\n`;\n\nconst Text = styled.p`\n color: ${({ $color }) => $color};\n font-weight: ${({ $bold }) => ($bold ? 700 : 400)};\n margin-bottom: 0;\n`;\n\nconst TextBlock = styled.div`\n align-items: flex-start;\n display: flex;\n padding-bottom: 10px;\n`;\n\nconst TextWrapper = styled.div`\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n ${largeBreakpoint} {\n align-items: center;\n flex-direction: row;\n }\n`;\n\nconst Date = styled.div`\n > p {\n white-space: nowrap;\n }\n`;\n\nfunction checkAfter(date) {\n return dayjs().isAfter(dayjs(date, DATE_FORMAT));\n // // MTS - Leaving this here for debugging purposes.\n // return dayjs('10-01-22', DATE_FORMAT).isAfter(dayjs(date, DATE_FORMAT));\n}\n\nconst firstStyle = {\n top: 8,\n};\n\nconst lastStyle = {\n bottom: '90%',\n};\n\nfunction TimelineItem({\n date,\n displayDate,\n first,\n icon,\n last,\n link,\n linkText,\n registered,\n text,\n fontColor,\n customIconColor,\n}) {\n const todayIsAfter = checkAfter(date);\n const accentColor = registered ? colors.green : colors.red;\n const iconColor = customIconColor ?? (todayIsAfter ? colors.lightGray : accentColor);\n const textColor = fontColor ?? (todayIsAfter ? colors.gray : colors.black);\n const formattedDate = date ? dayjs(date, DATE_FORMAT).format(\"MMM D, 'YY\") : null;\n\n function getIcon() {\n if (icon === 'star') {\n if (todayIsAfter) {\n return <CircleCheck fill={iconColor} height={13} style={{ marginTop: 5 }} />;\n }\n return <Star height={14} fill={iconColor} style={{ marginTop: 5 }} />;\n }\n // icon is a dot\n return todayIsAfter ? (\n <Lock height={14} style={{ marginTop: 5 }} />\n ) : (\n <Dot $color={iconColor} style={{ marginTop: 8 }} />\n );\n }\n\n function getLineStyle() {\n if (first) {\n return firstStyle;\n }\n if (last) {\n return lastStyle;\n }\n return {};\n }\n\n function getLink() {\n if (link && linkText && !todayIsAfter) {\n return (\n <>\n <Link $color={fontColor} target=\"_blank\" href={link} rel=\"noopener noreferrer\">\n <span>\n {linkText} {'>'}\n </span>\n </Link>\n </>\n );\n }\n }\n\n return (\n <StyledTimelineItem $twoColumns={!date}>\n <IconWrapper>\n {getIcon()}\n <Line $color={iconColor} style={getLineStyle()} />\n </IconWrapper>\n {date && (\n <Date>\n <Text $color={textColor} $bold>\n {displayDate || formattedDate}\n </Text>\n </Date>\n )}\n <TextBlock>\n <TextWrapper>\n <Text $bold={icon === 'star'} $color={textColor}>\n {text}\n </Text>\n {getLink()}\n </TextWrapper>\n </TextBlock>\n </StyledTimelineItem>\n );\n}\n\nTimelineItem.propTypes = {\n customIconColor: PropTypes.string,\n date: PropTypes.string,\n displayDate: PropTypes.string,\n first: PropTypes.bool.isRequired,\n fontColor: PropTypes.string,\n icon: PropTypes.string.isRequired,\n last: PropTypes.bool.isRequired,\n link: PropTypes.string,\n linkText: PropTypes.any,\n registered: PropTypes.bool.isRequired,\n text: PropTypes.any.isRequired,\n};\n\nTimelineItem.defaultProps = {\n displayDate: null,\n link: null,\n linkText: null,\n};\n\nexport default TimelineItem;\n","import dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport {\n DATE_FORMAT,\n DISPLAY_DATE_FORMAT,\n getLatestDate,\n iconTypes,\n showPostmarkedReceivedInfo,\n showTimeline,\n todayBeforeOrEqual,\n} from './utils';\ndayjs.extend(customParseFormat);\n\nfunction beforePrimaryWithRegistration(votingInfo, t, state) {\n return [\n showPostmarkedReceivedInfo({\n postmarkedDate: votingInfo.mail_primary_reg_deadline_postmarked,\n postmarkedText: t('voting_information.timelines.unregistered.primaryRegistrationPostmarked'),\n receivedDate: votingInfo.mail_primary_reg_deadline_received,\n receivedText: t('voting_information.timelines.unregistered.primaryRegistrationReceived'),\n }),\n showTimeline(votingInfo.online_primary_reg_deadline) && {\n date: votingInfo.online_primary_reg_deadline,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.unregistered.primaryOnlineRegistration'),\n },\n showTimeline(votingInfo.primary_vbm_request_deadline) && {\n date: votingInfo.primary_vbm_request_deadline,\n icon: iconTypes.dot,\n link: votingInfo.online_vbm_request_link,\n linkText: t('voting_information.timelines.shared.here'),\n text: t('voting_information.timelines.shared.primaryBallotRequestDeadline'),\n },\n showPostmarkedReceivedInfo({\n postmarkedDate: votingInfo.primary_vbm_return_deadline_postmarked,\n postmarkedText: t('voting_information.timelines.shared.primaryPostmarked'),\n receivedDate: votingInfo.primary_vbm_return_deadline_received,\n receivedText: t('voting_information.timelines.shared.primaryReceived'),\n }),\n votingInfo.automatic_vbm && {\n date: null,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.mailedBallot', {\n state: t(`states.${state}`),\n }),\n },\n showTimeline(votingInfo.primary_early_vote_start) && {\n date: votingInfo.primary_early_vote_start,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.primaryFirstDay'),\n },\n showTimeline(votingInfo.primary_early_vote_end) && {\n date: votingInfo.primary_early_vote_end,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.primaryLastDay'),\n },\n showTimeline(votingInfo.primary_election_date) && {\n date: votingInfo.primary_election_date,\n icon: iconTypes.star,\n link: votingInfo.polling_place_locator,\n linkText: t('voting_information.timelines.shared.findPolling'),\n text: t('voting_information.timelines.shared.primaryElectionDay'),\n },\n ].filter(Boolean);\n}\n\nfunction beforePrimaryWithoutRegistration(votingInfo, t, state, primaryDate) {\n return [\n {\n date: null,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.unregistered.primaryRegistrationPassed', {\n date: `${dayjs(primaryDate, DATE_FORMAT).format(DISPLAY_DATE_FORMAT)}`,\n }),\n },\n showPostmarkedReceivedInfo({\n postmarkedDate: votingInfo.mail_reg_deadline_postmarked,\n postmarkedText: t('voting_information.timelines.unregistered.generalRegistrationPostmarked'),\n receivedDate: votingInfo.mail_reg_deadline_received,\n receivedText: t('voting_information.timelines.unregistered.generalRegistrationReceived'),\n }),\n showTimeline(votingInfo.online_reg_deadline) && {\n date: votingInfo.online_reg_deadline,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.unregistered.generalOnlineRegistration'),\n },\n showTimeline(votingInfo.general_vbm_request_deadline) && {\n date: votingInfo.general_vbm_request_deadline,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.generalBallotRequestDeadline'),\n },\n showPostmarkedReceivedInfo({\n postmarkedDate: votingInfo.vbm_return_deadline_postmarked,\n postmarkedText: t('voting_information.timelines.shared.generalPostmarked'),\n receivedDate: votingInfo.vbm_return_deadline_received,\n receivedText: t('voting_information.timelines.shared.generalReceived'),\n }),\n votingInfo.automatic_vbm && {\n date: null,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.mailedBallot', {\n state: t(`states.${state}`),\n }),\n },\n showTimeline(votingInfo.early_vote_start) && {\n date: votingInfo.early_vote_start,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.generalFirstDay'),\n },\n showTimeline(votingInfo.early_vote_end) && {\n date: votingInfo.early_vote_end,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.generalLastDay'),\n },\n showTimeline(votingInfo.general_election_date) && {\n date: votingInfo.general_election_date,\n icon: iconTypes.star,\n link: votingInfo.polling_place_locator,\n linkText: t('voting_information.timelines.shared.findPolling'),\n text: t('voting_information.timelines.shared.generalElectionDay'),\n },\n ].filter(Boolean);\n}\n\nfunction beforeGeneralWithRegistration(votingInfo, t, state) {\n return [\n showPostmarkedReceivedInfo({\n postmarkedDate: votingInfo.mail_reg_deadline_postmarked,\n postmarkedText: t('voting_information.timelines.unregistered.generalRegistrationPostmarked'),\n receivedDate: votingInfo.mail_reg_deadline_received,\n receivedText: t('voting_information.timelines.unregistered.generalRegistrationReceived'),\n }),\n showTimeline(votingInfo.online_reg_deadline) && {\n date: votingInfo.online_reg_deadline,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.unregistered.generalOnlineRegistration'),\n },\n showTimeline(votingInfo.general_vbm_request_deadline) && {\n date: votingInfo.general_vbm_request_deadline,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.generalBallotRequestDeadline'),\n },\n showPostmarkedReceivedInfo({\n postmarkedDate: votingInfo.vbm_return_deadline_postmarked,\n postmarkedText: t('voting_information.timelines.shared.generalPostmarked'),\n receivedDate: votingInfo.vbm_return_deadline_received,\n receivedText: t('voting_information.timelines.shared.generalReceived'),\n }),\n votingInfo.automatic_vbm && {\n date: null,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.mailedBallot', {\n state: t(`states.${state}`),\n }),\n },\n showTimeline(votingInfo.early_vote_start) && {\n date: votingInfo.early_vote_start,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.generalFirstDay'),\n },\n showTimeline(votingInfo.early_vote_end) && {\n date: votingInfo.early_vote_end,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.generalLastDay'),\n },\n showTimeline(votingInfo.general_election_date) && {\n date: votingInfo.general_election_date,\n icon: iconTypes.star,\n link: votingInfo.polling_place_locator,\n linkText: t('voting_information.timelines.shared.findPolling'),\n text: t('voting_information.timelines.shared.generalElectionDay'),\n },\n ].filter(Boolean);\n}\n\nfunction electionPassed(t, generalDate) {\n return [\n {\n date: null,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.unregistered.electionPassed', {\n date: `${dayjs(generalDate, DATE_FORMAT).format(DISPLAY_DATE_FORMAT)}`,\n }),\n },\n ];\n}\n\nfunction getUnregisteredTimelines(votingInfo, t, state) {\n const today = dayjs();\n\n const primaryDate = votingInfo.primary_election_date;\n const generalDate = votingInfo.general_election_date;\n\n const showPrimary = todayBeforeOrEqual(primaryDate);\n\n const showGeneral =\n today.isAfter(dayjs(primaryDate, DATE_FORMAT)) && todayBeforeOrEqual(generalDate);\n\n if (showPrimary) {\n const primaryRegistrationAvailable = getLatestDate([\n votingInfo.mail_primary_reg_deadline_postmarked,\n votingInfo.mail_primary_reg_deadline_received,\n votingInfo.online_primary_reg_deadline,\n ]);\n\n if (primaryRegistrationAvailable) {\n return beforePrimaryWithRegistration(votingInfo, t, state);\n }\n\n return beforePrimaryWithoutRegistration(votingInfo, t, state, primaryDate);\n }\n\n if (showGeneral) {\n const generalRegistrationAvailable = getLatestDate([\n votingInfo.mail_reg_deadline_postmarked,\n votingInfo.mail_reg_deadline_received,\n votingInfo.online_reg_deadline,\n ]);\n\n if (generalRegistrationAvailable) {\n return beforeGeneralWithRegistration(votingInfo, t, state);\n }\n }\n\n return electionPassed(t, generalDate);\n}\n\nexport default getUnregisteredTimelines;\n","import dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport {\n DATE_FORMAT,\n iconTypes,\n showPostmarkedReceivedInfo,\n showTimeline,\n todayBeforeOrEqual,\n} from './utils';\ndayjs.extend(customParseFormat);\n\nfunction beforePrimary(votingInfo, t, state) {\n return [\n showTimeline(votingInfo.primary_vbm_request_deadline) && {\n date: votingInfo.primary_vbm_request_deadline,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.primaryBallotRequestDeadline'),\n },\n showPostmarkedReceivedInfo({\n postmarkedDate: votingInfo.primary_vbm_return_deadline_postmarked,\n postmarkedText: t('voting_information.timelines.shared.primaryPostmarked'),\n receivedDate: votingInfo.primary_vbm_return_deadline_received,\n receivedText: t('voting_information.timelines.shared.primaryReceived'),\n }),\n votingInfo.automatic_vbm && {\n date: null,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.mailedBallot', {\n state: t(`states.${state}`),\n }),\n },\n showTimeline(votingInfo.primary_early_vote_start) && {\n date: votingInfo.primary_early_vote_start,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.primaryFirstDay'),\n },\n showTimeline(votingInfo.primary_early_vote_end) && {\n date: votingInfo.primary_early_vote_end,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.primaryLastDay'),\n },\n showTimeline(votingInfo.primary_election_date) && {\n date: votingInfo.primary_election_date,\n icon: iconTypes.star,\n link: votingInfo.polling_place_locator,\n linkText: t('voting_information.timelines.shared.findPolling'),\n text: t('voting_information.timelines.shared.primaryElectionDay'),\n },\n ].filter(Boolean);\n}\n\nfunction afterPrimary(votingInfo, t, state) {\n return [\n showTimeline(votingInfo.general_vbm_request_deadline) && {\n date: votingInfo.general_vbm_request_deadline,\n icon: iconTypes.dot,\n link: votingInfo.online_vbm_request_link,\n linkText: t('voting_information.timelines.shared.here'),\n text: t('voting_information.timelines.shared.generalBallotRequestDeadline'),\n },\n showPostmarkedReceivedInfo({\n postmarkedDate: votingInfo.vbm_return_deadline_postmarked,\n postmarkedText: t('voting_information.timelines.shared.generalPostmarked'),\n receivedDate: votingInfo.vbm_return_deadline_received,\n receivedText: t('voting_information.timelines.shared.generalReceived'),\n }),\n votingInfo.automatic_vbm && {\n date: null,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.mailedBallot', {\n state: t(`states.${state}`),\n }),\n },\n showTimeline(votingInfo.early_vote_start) && {\n date: votingInfo.early_vote_start,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.generalFirstDay'),\n },\n showTimeline(votingInfo.early_vote_end) && {\n date: votingInfo.early_vote_end,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.generalLastDay'),\n },\n showTimeline(votingInfo.general_election_date) && {\n date: votingInfo.general_election_date,\n icon: iconTypes.star,\n link: votingInfo.polling_place_locator,\n linkText: t('voting_information.timelines.shared.findPolling'),\n text: t('voting_information.timelines.shared.generalElectionDay'),\n },\n ].filter(Boolean);\n}\n\nfunction afterGeneral(t) {\n return [\n {\n date: null,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.registered.electionPassed'),\n },\n ];\n}\n\nfunction getRegisteredTimelines(votingInfo, t, state) {\n const today = dayjs();\n\n const primaryDate = votingInfo.primary_election_date;\n const generalDate = votingInfo.general_election_date;\n\n const showPrimary = todayBeforeOrEqual(primaryDate);\n\n const showGeneral =\n today.isAfter(dayjs(primaryDate, DATE_FORMAT)) && todayBeforeOrEqual(generalDate);\n\n if (showPrimary) {\n return beforePrimary(votingInfo, t, state);\n }\n\n if (showGeneral) {\n return afterPrimary(votingInfo, t, state);\n }\n\n return afterGeneral(t);\n}\n\nexport default getRegisteredTimelines;\n","import { iconTypes } from './utils';\n\nconst noOnyearDataYet = (t, state) => ({\n date: null,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.no-onyear-data-yet', {\n state: t(`states.${state}`),\n }),\n});\n\nconst hasOneyearData = (t, state) => ({\n date: null,\n icon: iconTypes.dot,\n link: null,\n linkText: null,\n text: t('voting_information.timelines.shared.has-onyear-data', {\n state: t(`states.${state}`),\n }),\n});\n\nexport { noOnyearDataYet, hasOneyearData };\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\nimport TimelineItem from './TimelineItem';\nimport getUnregisteredTimelines from './newNotRegisteredTimelines';\nimport getRegisteredTimelines from './newRegisteredTimelines';\nimport { hasOneyearData, noOnyearDataYet } from './sharedTimelines';\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { sortTimelines } from './utils';\n\ndayjs.extend(customParseFormat);\n\nconst StyledTimeline = styled.ul`\n border-radius: 8px;\n padding: 11px 8px;\n margin: 0;\n`;\n\nfunction Timeline({ registered, votingInfo, contact, fontColor, statusColor }) {\n const { t } = useTranslation();\n const { contactFormResult, selectedVoter } = useSelector(state => state.voterRegistration);\n\n function getState() {\n if (selectedVoter && Object.keys(selectedVoter).length !== 0) {\n return selectedVoter?.state?.toUpperCase();\n }\n return contact?.state_abbrev?.toUpperCase() || contactFormResult?.state_abbrev?.toUpperCase();\n }\n\n const state = getState();\n\n let timeline = [];\n\n // Specific cases for 2025 voting data\n // Details in this ticket: https://github.com/outvote/web-app/issues/12189\n if (votingInfo.offyear_status === 'no-onyear-data-yet') {\n timeline = [noOnyearDataYet(t, state)];\n } else {\n timeline = registered\n ? getRegisteredTimelines(votingInfo, t, state)\n : getUnregisteredTimelines(votingInfo, t, state);\n\n if (votingInfo.offyear_status === 'has-onyear-data') {\n timeline.unshift(hasOneyearData(t, state));\n }\n }\n\n const sortedTimeline = sortTimelines(timeline);\n\n return (\n <StyledTimeline>\n {sortedTimeline.map((el, i) => (\n <TimelineItem\n first={i === 0}\n key={i}\n last={i === timeline.length - 1}\n registered={registered}\n {...el}\n fontColor={fontColor}\n customIconColor={statusColor}\n />\n ))}\n </StyledTimeline>\n );\n}\n\nTimeline.propTypes = {\n contact: PropTypes.object,\n fontColor: PropTypes.string,\n registered: PropTypes.bool.isRequired,\n statusColor: PropTypes.string,\n votingInfo: PropTypes.object.isRequired,\n};\n\nTimeline.defaultProps = {};\n\nexport default Timeline;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { createGlobalStyle } from 'styled-components';\nimport { Collapse } from 'antd';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation } from 'react-router-dom';\nimport queryString from 'query-string';\n\nimport Button from '../Button';\nimport CircleCheck from '../icons/CircleCheck';\nimport CircleX from '../icons/CircleX';\nimport MessageBox from '../MessageBox';\nimport Timeline from './Timeline';\nimport { smallBreakpoint } from '../breakpoints';\nimport { getInfo } from '@web/utils/getVoterInfo';\nimport { getNoOnlineRegistrationAvailableDeadlineDate, showTimeline } from './Timeline/utils';\nimport theme, { vrDefaultColors } from '@web/styles/theme';\nimport { amplitudeTrack } from '@web/components/FanOut/hooks/useFanOutAmplitude';\nimport { activities } from '@web/services/api';\n\nconst DATE_FORMAT = 'MM-DD-YY';\ndayjs.extend(customParseFormat);\n\nconst { Panel } = Collapse;\n\nconst CollapseAntdStyles = createGlobalStyle`\n &&& {\n .ant-collapse-content {\n background: ${({ theme }) => theme.colors.transparent}!important;\n border-top: 0px !important;\n padding: 0px !important;\n }\n .ant-collapse-header {\n padding: 0px !important;\n }\n .ant-collapse-content-box {\n padding: 0px !important;\n }\n }\n`;\n\nconst StyledCollapse = styled(Collapse)`\n &&& {\n margin: 16px 0;\n border-radius: 0.5rem;\n border: 1px solid\n ${({ $isOpen, theme, $bgColor }) => (!$isOpen ? theme.colors.transparent : $bgColor)};\n overflow: hidden;\n }\n`;\n\nconst StyledHeader = styled(MessageBox)`\n border-radius: 0;\n background: ${({ $bgColor }) => `${$bgColor}1A`};\n\n display: flex;\n flex-direction: column;\n`;\n\nconst StatusBox = styled.div`\n display: flex;\n flex: 1;\n flex-direction: row;\n justify-content: space-between;\n gap: 16px;\n`;\n\nconst IconBox = styled(StatusBox)`\n align-items: center;\n justify-content: flex-start;\n gap: 16px;\n`;\n\nconst TitleBox = styled(StatusBox)`\n flex-direction: column;\n gap: 0;\n`;\n\nconst HeaderBox = styled(StatusBox)`\n flex-wrap: wrap;\n align-items: center;\n`;\n\nconst DetailsText = styled.div`\n color: ${({ theme, $fontColor }) => $fontColor ?? theme.colors.black};\n font-size: 1rem;\n font-weight: 600;\n line-height: 1.5rem; /* 150% */\n text-decoration-line: underline;\n`;\n\nconst TextBox = styled.div`\n display: flex;\n padding: 0 16px 16px 60px;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n background: ${({ $bgColor }) => `${$bgColor}1A`};\n white-space: pre-line;\n`;\n\nconst StyledPanel = styled(Panel)`\n padding: 0;\n border: none;\n`;\n\nconst Title = styled.h2`\n font-size: 18px;\n font-weight: 700;\n margin-bottom: 0.25rem;\n margin-top: 3px;\n color: ${({ $fontColor }) => $fontColor};\n`;\n\nconst Text = styled.p`\n margin-bottom: 0;\n color: ${({ $fontColor }) => $fontColor};\n`;\n\nconst ButtonArea = styled.div`\n display: flex;\n justify-content: flex-start;\n\n ${smallBreakpoint} {\n margin-left: 42px;\n }\n`;\n\nconst TimelineBox = styled.div`\n padding: 7px 3px 0 7px;\n`;\n\nfunction Message({\n isNorthDakota,\n registered,\n disableCollapse,\n contact: contactFromProps,\n isFanOut,\n settings,\n activity,\n team,\n}) {\n const [activeKey, setActiveKey] = React.useState(['1']);\n const { t } = useTranslation();\n const { search } = useLocation();\n const { referral_hash: referralHash } = queryString.parse(search);\n const { contactFormResult, selectedVoter } = useSelector(state => state.voterRegistration);\n const contact = contactFromProps || contactFormResult;\n const votingInfo = contact?.voting_info || contactFormResult.voting_info;\n const sameDayReg = votingInfo?.same_day_registration?.toLowerCase() === 'yes';\n // This variable is used to designate a voter who lives in a state where same-day registration\n // is allowed and who is not yet registered to vote.\n const sameDayNonReg = sameDayReg && !registered;\n const today = dayjs();\n // MTS - Leaving this here for debugging purposes\n // const today = dayjs('10-25-22', DATE_FORMAT);\n const afterGenRegDeadline = today.isAfter(dayjs(votingInfo.online_reg_deadline, DATE_FORMAT));\n\n function getDeadline() {\n const displayFormat = 'MMM D';\n if (today.isBefore(dayjs(votingInfo.online_primary_reg_deadline, DATE_FORMAT))) {\n return dayjs(votingInfo.online_primary_reg_deadline, DATE_FORMAT).format(displayFormat);\n }\n return dayjs(votingInfo.online_reg_deadline, DATE_FORMAT).format(displayFormat);\n }\n\n function getTitle() {\n if (isNorthDakota) {\n return t('voting_information.registered_nd');\n }\n return registered ? t('voting_information.registered') : t('voting_information.unregistered');\n }\n\n function getNotRegisteredText(state) {\n const onlinePrimaryRegDate = votingInfo.online_primary_reg_deadline;\n const onlineGeneralRegDate = votingInfo.online_reg_deadline;\n\n if (!onlineGeneralRegDate && !onlinePrimaryRegDate) {\n return t('voting_information.onlineRegistrationIsNotAvailableMessage', {\n date: getNoOnlineRegistrationAvailableDeadlineDate(votingInfo),\n state: t(`states.${info.state?.toUpperCase()}`),\n });\n }\n\n if (sameDayNonReg && afterGenRegDeadline) {\n return t('voting_information.sameDayReg', {\n state: t(`states.${state?.toUpperCase()}`),\n });\n }\n return t('voting_information.notRegisteredMessage', {\n date: getDeadline(),\n state: t(`states.${info.state?.toUpperCase()}`),\n });\n }\n\n const getButtonText = React.useCallback(() => {\n if (sameDayNonReg && afterGenRegDeadline) {\n return t('button.learn_more');\n }\n return t('voting_information.register_to_vote');\n }, [sameDayNonReg, afterGenRegDeadline, t]);\n\n const getButtonLink = React.useCallback(() => {\n if (sameDayNonReg && afterGenRegDeadline) {\n return votingInfo.source_link1;\n }\n\n if (votingInfo.online_reg_link) {\n return votingInfo.online_reg_link;\n }\n\n if (votingInfo.accepts_national_reg_form) {\n return votingInfo.national_reg_link;\n }\n\n if (!votingInfo.accepts_national_reg_form && votingInfo.paper_reg_link) {\n return votingInfo.paper_reg_link;\n }\n\n return votingInfo.source_link1;\n }, [afterGenRegDeadline, sameDayNonReg, votingInfo]);\n\n const info = getInfo(contact, selectedVoter);\n const title = getTitle();\n\n const registeredText = (\n <>\n {t('voting_information.who')} {info.name}, {info.age}{' '}\n {t('check_registration.search_results.years_old')}\n <br />\n {t('voting_information.at')} {info.address}\n </>\n );\n\n const notRegisteredText = getNotRegisteredText(info.state);\n\n const onChange = React.useCallback(\n keys => !disableCollapse && setActiveKey(keys),\n [disableCollapse],\n );\n\n const buttonColor = React.useMemo(\n () => settings?.button_color ?? vrDefaultColors.buttonColor,\n [settings?.button_color],\n );\n const bgColor = React.useMemo(\n () => settings?.background_color ?? vrDefaultColors.backgroundColor,\n [settings?.background_color],\n );\n\n const trackOfLinkClick = React.useCallback(\n url => {\n activities.trackExternalLinkClick({\n activityId: activity?.id,\n activitySlug: activity?.slug,\n campaignId: activity?.campaign?.id,\n contactId: contactFormResult?.id,\n url,\n });\n },\n [activity?.campaign?.id, activity?.id, activity?.slug, contactFormResult?.id],\n );\n\n const onRegisterClick = React.useCallback(\n e => {\n if (isFanOut) {\n amplitudeTrack({\n activity,\n name: referralHash\n ? 'FAN_OUT_REGISTER_TO_VOTE_CLICK_REFERRED'\n : 'FAN_OUT_REGISTER_TO_VOTE_CLICK',\n team,\n });\n }\n trackOfLinkClick(getButtonLink());\n e.stopPropagation();\n },\n [isFanOut, activity, team, referralHash, getButtonLink, trackOfLinkClick],\n );\n\n const RegisterButton = React.useMemo(\n () =>\n !registered && (\n <ButtonArea $isOpen={activeKey?.length}>\n <Button\n forwardedAs=\"a\"\n href={getButtonLink()}\n rel=\"noopener noreferrer\"\n style={\n ({\n display: 'inline-flex',\n minWidth: 180,\n width: 'initial',\n },\n isFanOut\n ? {\n background: 'white',\n color: theme.colors.blue,\n textTransform: 'capitalize',\n }\n : { background: buttonColor, borderColor: buttonColor, color: bgColor })\n }\n target=\"_blank\"\n onClick={onRegisterClick}\n >\n {getButtonText()}\n </Button>\n </ButtonArea>\n ),\n [\n getButtonText,\n registered,\n getButtonLink,\n activeKey,\n isFanOut,\n onRegisterClick,\n buttonColor,\n bgColor,\n ],\n );\n\n const fontColor = React.useMemo(\n () => settings?.font_color ?? vrDefaultColors.fontColor,\n [settings?.font_color],\n );\n\n const statusColor = React.useMemo(() => {\n if (registered) {\n return settings?.registered_color ?? vrDefaultColors.registeredColor;\n }\n return settings?.unregistered_color ?? vrDefaultColors.unRegisteredColor;\n }, [registered, settings?.registered_color, settings?.unregistered_color]);\n\n const DetailsButton = React.useMemo(\n () => (\n <DetailsText $fontColor={fontColor}>\n {activeKey?.length\n ? t('voting_information.hide_details')\n : t('voting_information.view_details')}\n </DetailsText>\n ),\n [activeKey, t, fontColor],\n );\n\n const registrationPassed = React.useMemo(\n () =>\n !showTimeline(votingInfo.mail_reg_deadline_postmarked) &&\n !showTimeline(votingInfo.mail_reg_deadline_received) &&\n !showTimeline(votingInfo.online_reg_deadline),\n [\n votingInfo.mail_reg_deadline_postmarked,\n votingInfo.mail_reg_deadline_received,\n votingInfo.online_reg_deadline,\n ],\n );\n\n return (\n <>\n <CollapseAntdStyles />\n <StyledCollapse\n $bgColor={statusColor}\n $registered={registered}\n $isOpen={activeKey?.length}\n onChange={onChange}\n expandIconPosition={'right'}\n activeKey={activeKey}\n ghost\n >\n <StyledPanel\n header={\n <StyledHeader\n $registered={registered}\n $bgColor={statusColor}\n $isOpen={activeKey?.length}\n >\n <IconBox>\n <StatusBox>\n <HeaderBox>\n <IconBox>\n {registered ? <CircleCheck /> : <CircleX />}\n <TitleBox\n style={{\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n }}\n >\n <Title $fontColor={fontColor}>{title}</Title>\n {!disableCollapse && !registered && DetailsButton}\n </TitleBox>\n </IconBox>\n {RegisterButton}\n </HeaderBox>\n </StatusBox>\n {!disableCollapse && registered && DetailsButton}\n </IconBox>\n </StyledHeader>\n }\n key={'1'}\n showArrow={false}\n >\n <>\n <TextBox $bgColor={statusColor} $registered={registered}>\n {registered ? (\n <Text $fontColor={fontColor}>{registeredText}</Text>\n ) : (\n <Text\n $fontColor={fontColor}\n dangerouslySetInnerHTML={{\n __html: registrationPassed ? null : notRegisteredText,\n }}\n />\n )}\n </TextBox>\n <TimelineBox>\n <Timeline\n statusColor={statusColor}\n contact={contact}\n fontColor={fontColor}\n registered={registered}\n votingInfo={votingInfo}\n />\n </TimelineBox>\n </>\n </StyledPanel>\n </StyledCollapse>\n </>\n );\n}\n\nMessage.propTypes = {\n activity: PropTypes.object.isRequired,\n contact: PropTypes.object,\n disableCollapse: PropTypes.bool,\n isFanOut: PropTypes.bool,\n isNorthDakota: PropTypes.bool,\n registered: PropTypes.bool.isRequired,\n settings: PropTypes.object,\n team: PropTypes.object,\n};\n\nMessage.defaultProps = {\n isNorthDakota: false,\n};\n\nexport default Message;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '../../Button';\n\nfunction IconButton({ children, additionalStyles, ...rest }) {\n return (\n <Button style={{ height: 40, padding: 0, width: 40, ...(additionalStyles ?? {}) }} {...rest}>\n {children}\n </Button>\n );\n}\n\nIconButton.propTypes = {\n additionalStyles: PropTypes.object,\n children: PropTypes.any.isRequired,\n};\n\nIconButton.defaultProps = {};\n\nexport default IconButton;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Dropdown, Menu } from 'antd';\nimport IconButton from './IconButton';\nimport { FacebookShareButton, TwitterShareButton, LinkedinShareButton } from 'react-share';\n\nimport Facebook from '../../icons/Facebook';\nimport LinkedIn from '../../icons/LinkedIn';\nimport Twitter from '../../icons/Twitter';\n\nconst StyledMenu = styled(Menu)`\n &&& {\n border-radius: 0.5rem;\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 1rem;\n width: 130px;\n background: ${({ $bgColor }) => $bgColor};\n color: ${({ $color }) => $color};\n }\n`;\n\nconst MenuItem = styled.li`\n cursor: pointer;\n display: flex;\n`;\n\nexport const IconWrapper = styled.div`\n display: flex;\n justify-content: center;\n margin-right: 10px;\n width: 16px;\n`;\n\nconst ItemWrapper = styled.div`\n align-items: center;\n display: flex;\n font-size: 16px;\n font-weight: 600;\n`;\n\nfunction SocialShare({ referralLink, bgColor, buttonColor, fontColor }) {\n const menu = (\n <StyledMenu $bgColor={bgColor} $color={fontColor}>\n <MenuItem>\n <FacebookShareButton url={referralLink}>\n <ItemWrapper>\n <IconWrapper>\n <Facebook color={fontColor} />\n </IconWrapper>\n Facebook\n </ItemWrapper>\n </FacebookShareButton>\n </MenuItem>\n <MenuItem>\n <TwitterShareButton url={referralLink}>\n <ItemWrapper>\n <IconWrapper>\n <Twitter color={fontColor} />\n </IconWrapper>\n Twitter\n </ItemWrapper>\n </TwitterShareButton>\n </MenuItem>\n <MenuItem>\n <LinkedinShareButton url={referralLink}>\n <ItemWrapper>\n <IconWrapper>\n <LinkedIn color={fontColor} />\n </IconWrapper>\n LinkedIn\n </ItemWrapper>\n </LinkedinShareButton>\n </MenuItem>\n </StyledMenu>\n );\n return (\n <Dropdown overlay={menu} placement=\"topRight\" trigger={['click']}>\n <IconButton additionalStyles={{ backgroundColor: buttonColor, borderColor: buttonColor }}>\n <svg\n width=\"19\"\n height=\"17\"\n viewBox=\"0 0 19 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M17.6836 7.23047L11.4961 12.5391C10.9688 12.9961 10.125 12.6094 10.125 11.9062V8.84766C4.64062 8.91797 2.32031 10.2539 3.90234 15.3516C4.07812 15.9141 3.375 16.3711 2.91797 16.0195C1.37109 14.8945 0 12.75 0 10.6055C0 5.26172 4.46484 4.10156 10.125 4.03125V1.25391C10.125 0.515625 10.9688 0.128906 11.4961 0.585938L17.6836 5.89453C18.0703 6.28125 18.0703 6.87891 17.6836 7.23047Z\"\n fill={bgColor}\n />\n </svg>\n </IconButton>\n </Dropdown>\n );\n}\n\nSocialShare.propTypes = {\n bgColor: PropTypes.string,\n buttonColor: PropTypes.string,\n fontColor: PropTypes.string,\n referralLink: PropTypes.string.isRequired,\n};\n\nSocialShare.defaultProps = {};\n\nexport default SocialShare;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Clipboard from 'react-clipboard.js';\nimport IconButton from './IconButton';\nimport { message } from 'antd';\nimport SocialShare from './SocialShare';\n\nimport { track } from '@web/services/analytics';\nimport { useTranslation } from 'react-i18next';\nimport { vrDefaultColors } from '@web/styles/theme';\n\nconst LinkInput = styled.input`\n align-items: center;\n background-color: ${({ theme, $bgColor }) => $bgColor ?? theme.colors.white};\n border: 1px solid ${({ $outlineColor }) => $outlineColor};\n border-radius: 3px;\n color: ${({ theme, $fontColor }) => $fontColor ?? theme.colors.black};\n display: flex;\n flex: 1;\n height: 40px;\n outline: 0;\n padding: 0 6px;\n`;\n\nconst StyledShareLink = styled.div`\n display: flex;\n gap: 0.5rem;\n margin-top: 12px;\n`;\n\nfunction ShareLink({ activity, referralLink, team }) {\n const outlineColor = React.useMemo(\n () => activity?.settings?.field_outline_color ?? vrDefaultColors.fieldOutlineColor,\n [activity?.settings?.field_outline_color],\n );\n const bgColor = React.useMemo(\n () => activity?.settings?.background_color ?? vrDefaultColors.backgroundColor,\n [activity?.settings?.background_color],\n );\n const buttonColor = React.useMemo(\n () => activity?.settings?.button_color ?? vrDefaultColors.buttonColor,\n [activity?.settings?.button_color],\n );\n const fontColor = React.useMemo(\n () => activity?.settings?.font_color ?? vrDefaultColors.fontColor,\n [activity?.settings?.font_color],\n );\n const { t } = useTranslation();\n return (\n <StyledShareLink>\n <LinkInput\n $fontColor={fontColor}\n $bgColor={bgColor}\n $outlineColor={outlineColor}\n readOnly\n value={referralLink}\n />\n <SocialShare\n bgColor={bgColor}\n buttonColor={buttonColor}\n fontColor={fontColor}\n referralLink={referralLink}\n />\n <Clipboard\n component=\"span\"\n data-clipboard-text={referralLink}\n onSuccess={() => {\n message.info(t('common.copied_to_clipboard'));\n track('VR_COPY_SHARE_LINK', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n }}\n >\n <IconButton additionalStyles={{ backgroundColor: buttonColor, borderColor: buttonColor }}>\n <svg\n width=\"18\"\n height=\"19\"\n viewBox=\"0 0 18 19\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.5 3.625V0.25H9.5625C8.61328 0.25 7.875 1.02344 7.875 1.9375V12.0625C7.875 13.0117 8.61328 13.75 9.5625 13.75H16.3125C17.2266 13.75 18 13.0117 18 12.0625V4.75H14.625C13.9922 4.75 13.5 4.25781 13.5 3.625ZM14.625 0.25V3.625H18L14.625 0.25ZM6.75 12.625V4.75H1.6875C0.738281 4.75 0 5.52344 0 6.4375V16.5625C0 17.5117 0.738281 18.25 1.6875 18.25H8.4375C9.35156 18.25 10.125 17.5117 10.125 16.5625V14.875H9C7.73438 14.875 6.75 13.8906 6.75 12.625Z\"\n fill={bgColor}\n />\n </svg>\n </IconButton>\n </Clipboard>\n </StyledShareLink>\n );\n}\n\nShareLink.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n id: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n }),\n id: PropTypes.number.isRequired,\n settings: PropTypes.shape({\n background_color: PropTypes.string,\n button_color: PropTypes.string,\n field_outline_color: PropTypes.string,\n font_color: PropTypes.string,\n }),\n title: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n }),\n referralLink: PropTypes.string.isRequired,\n team: PropTypes.shape({\n id: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nShareLink.defaultProps = {};\n\nexport default ShareLink;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Description, Title } from '../../TextStyles';\nimport IncentiveItem from '../../ChooseFlow/Incentives/IncentiveItem';\nimport ShareLink from './ShareLink';\n\nimport { useSelector } from 'react-redux';\nimport { largeBreakpoint } from '../../breakpoints';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation } from 'react-router-dom/cjs/react-router-dom';\nimport { vrDefaultColors } from '@web/styles/theme';\n\nconst StyledShare = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px 40px;\n ${largeBreakpoint} {\n flex-direction: row;\n }\n`;\n\nconst Incentives = styled.ul`\n border: 1px solid ${({ $fontColor }) => $fontColor};\n border-radius: 0.5rem;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin: 0;\n min-width: 280px;\n padding: 1rem;\n`;\n\nconst Left = styled.div`\n flex: 1;\n`;\n\nconst StyledTitle = styled(Title)`\n font-size: 24px;\n font-weight: 600;\n`;\n\nfunction Share({ activity }) {\n const { t } = useTranslation();\n const { search } = useLocation();\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n const queryParams = new URLSearchParams(search);\n const activeFormSection = queryParams.get('start');\n const activeLanguage = queryParams.get('language');\n\n let referralLink = contactFormResult?.referral_link || '';\n\n if (activeFormSection === '1') {\n referralLink += '?start=1';\n }\n\n if (activeLanguage) {\n const separator = referralLink.includes('?') ? '&' : '?';\n referralLink += `${separator}language=${activeLanguage}`;\n }\n const hasIncentives = activity.activity_incentives_attributes.length > 0;\n\n const fontColor = React.useMemo(\n () => activity?.settings?.font_color ?? vrDefaultColors.fontColor,\n [activity?.settings?.font_color],\n );\n\n const bgColor = React.useMemo(\n () => activity?.settings?.background_color ?? vrDefaultColors.backgroundColor,\n [activity?.settings?.background_color],\n );\n\n return (\n <StyledShare>\n <Left>\n <StyledTitle $fontColor={fontColor}>{t('voting_information.share.title')}</StyledTitle>\n <Description $fontColor={fontColor}>\n {t('voting_information.share.description')}\n </Description>\n <ShareLink activity={activity} referralLink={referralLink} />\n </Left>\n {hasIncentives && (\n <Incentives $fontColor={fontColor}>\n {activity.activity_incentives_attributes.map(el => (\n <IncentiveItem iconColor={fontColor} pageColor={bgColor} key={el.id}>\n <span style={{ color: fontColor }}>{el.name}</span>\n </IncentiveItem>\n ))}\n </Incentives>\n )}\n </StyledShare>\n );\n}\n\nShare.propTypes = {\n activity: PropTypes.object.isRequired,\n};\n\nShare.defaultProps = {};\n\nexport default Share;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport BackButton from '../Button/BackButton';\nimport { ButtonRow, StyledVotingInformation } from '.';\nimport { Description, Title } from '../TextStyles';\nimport DotLoader from '@web/components/DotLoader';\nimport Message from './Message';\nimport Share from './Share';\n\nimport { Trans, useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\n\nfunction VotingInformation({ activity, handleClose, team }) {\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n const { t } = useTranslation();\n const registered = true;\n\n if (!contactFormResult?.voting_info) {\n return <DotLoader centered color=\"black\" />;\n }\n\n const description = (\n <Trans\n components={[<br />]}\n i18nKey=\"voting_information.descriptionND\"\n values={{ state: t('states.ND') }}\n />\n );\n\n return (\n <StyledVotingInformation>\n <Title>{t('voting_information.title')}</Title>\n <Description>{description}</Description>\n <Message registered={registered} isNorthDakota activity={activity} team={team} />\n <Share activity={activity} team={team} />\n <ButtonRow>\n <BackButton onClick={handleClose} showIcon={false}>\n {t('common.close')}\n </BackButton>\n </ButtonRow>\n </StyledVotingInformation>\n );\n}\n\nVotingInformation.propTypes = {\n activity: PropTypes.object.isRequired,\n handleClose: PropTypes.func.isRequired,\n team: PropTypes.object.isRequired,\n};\n\nVotingInformation.defaultProps = {};\n\nexport default VotingInformation;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useDispatch } from 'react-redux';\nimport { message } from 'antd';\nimport queryString from 'query-string';\nimport { useLocation } from 'react-router-dom';\n\nimport BackButton from '../Button/BackButton';\nimport { Description, Title } from '../TextStyles';\nimport DotLoader from '@web/components/DotLoader';\nimport Message from './Message';\nimport NorthDakotaVersion from './NorthDakotaVersion';\nimport Share from './Share';\n\nimport { largeBreakpoint } from '../breakpoints';\nimport { track } from '@web/services/analytics';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport QRCodeShare from '@web/components/FanOut/components/QRCodeShare';\nimport {\n setIsCheckedVoterRegistration,\n setContactFormResult,\n} from '@web/reducers/voterRegistration';\nimport Status from '@web/constants/contactRegistrationStatusTypes';\nimport { capitalize } from '@web/utils/string';\nimport { fanOut } from '@web/services/api';\nimport { amplitudeTrack } from '@web/components/FanOut/hooks/useFanOutAmplitude';\nimport { vrDefaultColors } from '@web/styles/theme';\n\nexport const StyledVotingInformation = styled.div``;\n\nexport const ButtonRow = styled.div`\n margin-top: 40px;\n ${largeBreakpoint} {\n display: none;\n }\n`;\n\nexport const Line = styled.div`\n background-color: rgba(0, 0, 0, 0.07);\n height: 1px;\n position: absolute;\n left: 0;\n right: 0;\n`;\n\nconst StyledBackButton = styled(BackButton)`\n text-decoration: ${({ $isFanOut }) => ($isFanOut ? 'underline' : 'none')};\n`;\n\nfunction VotingInformation({ activity, handleClose, team, isFanOut, referrer }) {\n const { contactFormResult, selectedVoter, isRegistrationRecheck } = useSelector(\n state => state.voterRegistration,\n );\n const { search } = useLocation();\n const { referral_hash: referralHash, isIframe } = queryString.parse(search);\n const { t } = useTranslation();\n const dispatch = useDispatch();\n\n // In some cases we use \"parsedVoter\" which means there is no \"voterfile\" object in it.\n // In some cases we use \"voter\" from the API response which means there is \"voterfile\" object in it\n // We have to handle both cases to prevent bugs\n const registered = React.useMemo(() => {\n const voterStatus = selectedVoter?.voterfile\n ? selectedVoter?.voterfile?.['vb.voterbase_registration_status']\n : selectedVoter?.['vb.voterbase_registration_status'];\n\n return voterStatus === Status.REGISTERED;\n }, [selectedVoter]);\n const descriptionText = React.useMemo(\n () =>\n registered\n ? t('voting_information.descriptionRegistered')\n : isFanOut\n ? t('voting_information.descriptionNotRegisteredFanOut')\n : t('voting_information.descriptionNotRegistered'),\n [registered, isFanOut, t],\n );\n const isFanOutReferrer = React.useMemo(() => referrer && isFanOut, [referrer, isFanOut]);\n\n React.useEffect(() => {\n if (isFanOut) {\n amplitudeTrack({\n activity,\n name: registered\n ? referralHash\n ? 'FAN_OUT_VIEW_CHECK_REGISTRATION_REGISTERED_REFERRED'\n : 'FAN_OUT_VIEW_CHECK_REGISTRATION_REGISTERED'\n : referralHash\n ? 'FAN_OUT_VIEW_CHECK_REGISTRATION_NOT_REGISTERED_REFERRED'\n : 'FAN_OUT_VIEW_CHECK_REGISTRATION_NOT_REGISTERED',\n team,\n });\n !isRegistrationRecheck && dispatch(setIsCheckedVoterRegistration(true));\n dispatch(\n setContactFormResult({\n activity,\n contact: {\n ...contactFormResult,\n address: registered\n ? `${selectedVoter.addressLine1 || ''} ${selectedVoter.addressLine2 || ''}`\n : contactFormResult.address,\n registration_status: registered ? Status.REGISTERED : Status.UNREGISTERED,\n },\n }),\n );\n // don't send request if it's recheck\n if (isRegistrationRecheck) return;\n // count points for registration\n fanOut\n .incrementPoints({\n activity_id: activity?.id,\n campaign_id: activity?.campaign?.id,\n contact_id: contactFormResult?.id,\n email: contactFormResult.email,\n metric: 'CheckRegistration',\n phone: contactFormResult.phone,\n referral_hash: referralHash,\n })\n .then(({ data }) => {\n // send auth email only if prev request was successful\n fanOut\n .sendAuthEmail({\n activity_id: activity?.id,\n activity_slug: activity?.slug,\n campaign_id: activity?.campaign?.id,\n campaign_slug: activity?.campaign?.slug,\n email: contactFormResult.email,\n phone: contactFormResult.phone,\n referral_link: contactFormResult.referral_link,\n registration_status: registered ? Status.REGISTERED : Status.UNREGISTERED,\n })\n .catch(error => {\n message.error(\n error?.response?.data?.message ||\n error?.message ||\n t('common.something_went_wrong'),\n );\n console.error(error);\n });\n\n if (isFanOutReferrer) {\n if (data.is_points_earned) {\n message.success(\n t('voting_information.earned_entries', {\n name: capitalize(referrer?.fullname || ''),\n }),\n );\n } else {\n message.error(\n t('voting_information.not_earned_entries', {\n name: capitalize(referrer?.fullname || ''),\n }),\n );\n }\n }\n })\n .catch(error => {\n message.error(\n error?.response?.data?.message || error?.message || t('common.something_went_wrong'),\n );\n console.error(error);\n });\n } else {\n track('VR_VIEW_VOTING_INFORMATION', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n }\n // eslint-disable-next-line\n }, []);\n\n const fontColor = React.useMemo(\n () => activity?.settings?.font_color ?? vrDefaultColors.fontColor,\n [activity?.settings?.font_color],\n );\n\n if (!contactFormResult?.voting_info) {\n return <DotLoader centered color=\"black\" />;\n }\n\n // If the voter is in North Dakota we display a custom version of this screen.\n if (contactFormResult?.state_abbrev?.toUpperCase() === 'ND') {\n return <NorthDakotaVersion activity={activity} handleClose={handleClose} team={team} />;\n }\n\n return (\n <StyledVotingInformation>\n <Title $fontColor={fontColor}>{t('voting_information.title')}</Title>\n <Description $fontColor={fontColor}>{descriptionText}</Description>\n <Message\n settings={activity.settings}\n registered={registered}\n isFanOut={isFanOut}\n team={team}\n activity={activity}\n referralHash={referralHash}\n />\n {isFanOut ? (\n <QRCodeShare activity={activity} team={team} isFanOut />\n ) : (\n <Share activity={activity} team={team} />\n )}\n {isIframe !== 'true' && (\n <ButtonRow>\n <StyledBackButton $isFanOut={isFanOut} onClick={handleClose} showIcon={false}>\n {t('common.close')}\n </StyledBackButton>\n </ButtonRow>\n )}\n </StyledVotingInformation>\n );\n}\n\nVotingInformation.propTypes = {\n activity: PropTypes.object.isRequired,\n handleClose: PropTypes.func.isRequired,\n isFanOut: PropTypes.bool,\n referrer: PropTypes.shape({\n fullname: PropTypes.string,\n id: PropTypes.number,\n }),\n team: PropTypes.object,\n};\n\nVotingInformation.defaultProps = {};\n\nexport default VotingInformation;\n","import { sortByDisplayOrderFn } from '@web/utils/other';\n\nexport const ageRanges = t => [\n {\n label: t('idvoters.labels.age_all'),\n value: '18-255',\n },\n {\n label: '18-28',\n value: '18-28',\n },\n {\n label: '25-35',\n value: '25-35',\n },\n {\n label: '30-45',\n value: '30-45',\n },\n {\n label: '40-60',\n value: '40-60',\n },\n {\n label: t('idvoters.labels.age_55_up'),\n value: '55-150',\n },\n];\n\nexport const formatTags = tags =>\n tags\n .map(tagging => ({\n ...tagging.tag,\n id: tagging.id,\n tag_id: tagging.tag_id,\n value: tagging.value,\n }))\n .sort(sortByDisplayOrderFn);\nexport const formatCustomFields = customFields =>\n customFields\n .map(field => ({\n ...field.custom_field,\n custom_field_id: field.custom_field_id,\n id: field.id,\n value: field.value,\n }))\n .sort(sortByDisplayOrderFn);\n\nexport const updateReportData = (report, tags, customFields) => ({\n customizations_attributes: report.customizations.map(item => {\n const existing = customFields.find(x => x.custom_field_id === item.custom_field_id);\n return { custom_field_id: item.custom_field_id, id: item.id, value: existing?.value };\n }),\n taggings_attributes: report.taggings.map(item => {\n const existing = tags.find(x => x.tag_id === item.tag_id);\n return { id: item.id, tag_id: item.custom_field_id, value: existing?.value };\n }),\n});\n\n// We need to merge blank report data with existing report data, but they may have different values, so I'm merging them by ID\nexport const mergeBlankDataWithInitialData = (blank, initial) => {\n const ids = new Set(initial.map(d => d.ID));\n return [...initial, ...blank.filter(d => !ids.has(d.ID))];\n};\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { Form } from 'formik-antd';\nimport { Formik } from 'formik';\nimport { useDispatch } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport Button from '@web/components/VoterRegistration/newComponents/Button';\nimport Input from '@web/components/VoterRegistration/newComponents/Input';\nimport { largeBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport sendError from '@admin/utils/sendError';\nimport { setFriendLookUpResult } from '@web/reducers/voterRegistration';\nimport useVoterRegistrationApi from '@web/components/VoterRegistration/hooks/useVoterRegistrationApi';\nimport { ageRanges } from '@web/components/AddReport/utils';\nimport states from 'web/data/states';\nimport { users } from '@web/services/api';\n\nconst FormWrapper = styled(Form)`\n &&& {\n margin-top: 2rem;\n }\n`;\n\nconst Grid = styled.div`\n display: grid;\n grid-gap: 1rem;\n grid-template-columns: 1fr;\n ${largeBreakpoint} {\n grid-template-columns: 1fr 1fr;\n }\n`;\n\nconst ButtonRow = styled.div`\n display: flex;\n flex-direction: column-reverse;\n gap: 1rem;\n justify-content: flex-end;\n margin-top: 60px;\n\n ${largeBreakpoint} {\n justify-content: space-between;\n flex-direction: row;\n margin-top: 58px;\n }\n`;\n\nconst ButtonGroup = styled.div`\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column-reverse;\n gap: 1rem;\n :last-of-type {\n justify-content: flex-end;\n }\n ${largeBreakpoint} {\n flex-direction: row;\n justify-content: flex-start;\n button {\n max-width: 200px;\n }\n }\n`;\n\nconst StyledButton = styled(Button)`\n text-align: center;\n font-size: 1rem;\n font-weight: 700;\n\n &&& {\n height: 64px;\n background: ${({ $isDisabled, theme }) =>\n $isDisabled ? theme.colors.whiteSmoke : theme.colors.newBlue};\n border-color: ${({ theme, $isDisabled }) =>\n $isDisabled ? theme.colors.blackL72 : theme.colors.blue};\n color: ${({ theme, $isDisabled }) => ($isDisabled ? theme.colors.blackL72 : theme.colors.blue)};\n }\n`;\n\nconst FriendLookUpFrom = ({ activity, initialValues, nextPage, schema, team }) => {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const { handleError } = useVoterRegistrationApi(activity, team);\n\n const submitForm = useCallback(\n async (formData, { setSubmitting }) => {\n users\n .searchVoters(formData)\n .then(({ data }) => {\n dispatch(setFriendLookUpResult(data));\n nextPage();\n })\n .catch(err => {\n const errorMessage = handleError(err);\n sendError(`VR Flow Contact form: ${errorMessage}`, err);\n })\n .finally(() => {\n setSubmitting(false);\n });\n },\n [dispatch, handleError, nextPage],\n );\n\n const isDisabled = useCallback((errors, touched) => {\n const isTouched = !!Object.keys(touched).length;\n const hasErrors = !!Object.keys(errors).length;\n\n return !!(hasErrors || !isTouched);\n }, []);\n\n return (\n <Formik\n initialValues={initialValues}\n onSubmit={submitForm}\n validationSchema={schema}\n render={({ errors, isSubmitting, touched }) => (\n <FormWrapper>\n <Grid>\n <Input\n autoComplete=\"given-name\"\n label={t('fan_out.friend_look_up.first_name')}\n name=\"firstName\"\n placeholder={t('fan_out.friend_look_up.first')}\n required\n />\n <Input\n autoComplete=\"family-name\"\n label={t('fan_out.friend_look_up.last_name')}\n name=\"lastName\"\n placeholder={t('fan_out.friend_look_up.last')}\n required\n />\n <Input\n autoComplete=\"off\"\n label={t('fan_out.friend_look_up.age_range')}\n name=\"ageRange\"\n placeholder={t('fan_out.friend_look_up.age_range')}\n defaultValue={'18-255'}\n options={ageRanges(t)}\n required\n />\n <Input\n autoComplete=\"off\"\n label={t('fan_out.friend_look_up.state')}\n name=\"stateAbbv\"\n placeholder={t('fan_out.friend_look_up.select_one')}\n options={states}\n filterOption={(input, option) =>\n option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0\n }\n required\n />\n </Grid>\n <ButtonRow>\n <ButtonGroup>\n <StyledButton\n $isDisabled={isDisabled(errors, touched)}\n htmlType=\"submit\"\n isFanOut\n loading={isSubmitting}\n variant=\"fan_out\"\n >\n {t('fan_out.friend_look_up.look_up')}\n </StyledButton>\n </ButtonGroup>\n </ButtonRow>\n </FormWrapper>\n )}\n />\n );\n};\n\nFriendLookUpFrom.propTypes = {\n activity: PropTypes.shape({}),\n backButton: PropTypes.any,\n initialValues: PropTypes.object.isRequired,\n isFanOut: PropTypes.bool,\n nextPage: PropTypes.func.isRequired,\n schema: PropTypes.object.isRequired,\n secondaryButton: PropTypes.any,\n submitButtonChildren: PropTypes.any,\n team: PropTypes.shape({}),\n};\n\nFriendLookUpFrom.defaultProps = {\n backButton: null,\n extraButton: null,\n};\n\nexport default FriendLookUpFrom;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport FriendLookUpForm from '@web/components/FanOut/components/FriendLookUpForm';\nimport { Description, Title } from '@web/components/VoterRegistration/newComponents/TextStyles';\nimport useContactForm from '@web/components/VoterRegistration/hooks/useContactForm';\n\nconst FriendLookUp = props => {\n const { t } = useTranslation();\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n const { initialValues, schemas } = useContactForm(contactFormResult);\n\n return (\n <>\n <Title>{t('fan_out.friend_look_up.title')}</Title>\n <Description>{t('fan_out.friend_look_up.description')}</Description>\n <FriendLookUpForm\n initialValues={initialValues.friendLookUpForm}\n schema={schemas.friendLookUpForm}\n {...props}\n />\n </>\n );\n};\n\nFriendLookUp.propTypes = {\n activity: PropTypes.object.isRequired,\n setSelectedFlow: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nFriendLookUp.defaultProps = {};\n\nexport default FriendLookUp;\n","import React from 'react';\n\nconst ArrowBack = props => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={24}\n height={24}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n {...props}\n >\n <path\n d=\"M19 10.9997H7.83L12.71 6.11967C13.1 5.72967 13.1 5.08967 12.71 4.69967C12.6175 4.60697 12.5076 4.53342 12.3866 4.48324C12.2657 4.43306 12.136 4.40723 12.005 4.40723C11.874 4.40723 11.7443 4.43306 11.6234 4.48324C11.5024 4.53342 11.3925 4.60697 11.3 4.69967L4.71 11.2897C4.6173 11.3822 4.54375 11.4921 4.49357 11.613C4.44339 11.734 4.41756 11.8637 4.41756 11.9947C4.41756 12.1256 4.44339 12.2553 4.49357 12.3763C4.54375 12.4973 4.6173 12.6072 4.71 12.6997L11.3 19.2897C11.3926 19.3823 11.5025 19.4557 11.6235 19.5058C11.7444 19.5559 11.8741 19.5817 12.005 19.5817C12.1359 19.5817 12.2656 19.5559 12.3865 19.5058C12.5075 19.4557 12.6174 19.3823 12.71 19.2897C12.8026 19.1971 12.876 19.0872 12.9261 18.9662C12.9762 18.8452 13.002 18.7156 13.002 18.5847C13.002 18.4537 12.9762 18.3241 12.9261 18.2031C12.876 18.0822 12.8026 17.9723 12.71 17.8797L7.83 12.9997H19C19.55 12.9997 20 12.5497 20 11.9997C20 11.4497 19.55 10.9997 19 10.9997Z\"\n fill=\"#23293E\"\n />\n </svg>\n );\n};\n\nArrowBack.propTypes = {};\n\nArrowBack.defaultProps = {};\n\nexport default ArrowBack;\n","import React from 'react';\n\nconst Location = props => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={16}\n height={16}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n {...props}\n >\n <path\n d=\"M7.44514 14.9093C3.35863 8.98505 2.6001 8.37705 2.6001 6.1998C2.6001 3.21746 5.01775 0.799805 8.0001 0.799805C10.9824 0.799805 13.4001 3.21746 13.4001 6.1998C13.4001 8.37705 12.6416 8.98505 8.55506 14.9093C8.28689 15.2967 7.71328 15.2966 7.44514 14.9093ZM8.0001 8.4498C9.24274 8.4498 10.2501 7.44245 10.2501 6.1998C10.2501 4.95716 9.24274 3.9498 8.0001 3.9498C6.75745 3.9498 5.7501 4.95716 5.7501 6.1998C5.7501 7.44245 6.75745 8.4498 8.0001 8.4498Z\"\n fill=\"#23293E\"\n fillOpacity={0.3}\n />\n </svg>\n );\n};\n\nLocation.propTypes = {};\n\nLocation.defaultProps = {};\n\nexport default Location;\n","import React from 'react';\n\nconst Calendar = props => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={16}\n height={16}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n {...props}\n >\n <path\n d=\"M1.75 13.75C1.75 14.0266 1.97344 14.25 2.25 14.25H13.75C14.0266 14.25 14.25 14.0266 14.25 13.75V7.1875H1.75V13.75ZM13.75 2.875H11.125V1.875C11.125 1.80625 11.0688 1.75 11 1.75H10.125C10.0562 1.75 10 1.80625 10 1.875V2.875H6V1.875C6 1.80625 5.94375 1.75 5.875 1.75H5C4.93125 1.75 4.875 1.80625 4.875 1.875V2.875H2.25C1.97344 2.875 1.75 3.09844 1.75 3.375V6.125H14.25V3.375C14.25 3.09844 14.0266 2.875 13.75 2.875Z\"\n fill=\"#23293E\"\n fillOpacity={0.3}\n />\n </svg>\n );\n};\n\nCalendar.propTypes = {};\n\nCalendar.defaultProps = {};\n\nexport default Calendar;\n","import React, { useMemo, memo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\n\nimport Location from '@web/components/FanOut/components/icons/Location';\nimport Calendar from '@web/components/FanOut/components/icons/Calendar';\nimport Ticket from '@web/components/FanOut/components/icons/Ticket';\nimport { getFrequency } from '@web/utils/getVoterInfo';\nimport {\n smallBreakpoint,\n largeBreakpoint,\n} from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport { isBattleGroundState } from '@web/components/FanOut/helpers';\n\nconst Wrapper = styled.div`\n display: flex;\n width: 100%;\n border-radius: 8px;\n flex-direction: column;\n padding: 24px 32px;\n border: 2px solid ${({ theme }) => theme.colors.blue};\n background: radial-gradient(\n 64.5% 64.52% at 97.64% 1.3%,\n rgba(197, 55, 94, 0.2) 0%,\n rgba(197, 55, 94, 0) 100%\n ),\n radial-gradient(\n 66.22% 90.3% at 98.11% 98.85%,\n rgba(140, 205, 217, 0.2) 0%,\n rgba(140, 205, 217, 0) 100%\n ),\n radial-gradient(\n 64.49% 126.95% at 0% 100%,\n rgba(184, 59, 201, 0.2) 0%,\n rgba(184, 59, 201, 0) 100%\n ),\n radial-gradient(\n 86.75% 134.97% at 0% 0%,\n rgba(152, 204, 201, 0.2) 0%,\n rgba(152, 204, 201, 0) 100%\n ),\n radial-gradient(\n 53.76% 53.76% at 50% 46.24%,\n rgba(225, 159, 83, 0.2) 0%,\n rgba(225, 159, 83, 0) 100%\n ),\n #fff;\n box-shadow: 4px 4px 0px 0px ${({ theme }) => theme.colors.blue};\n\n ${smallBreakpoint} {\n padding: 20px;\n }\n`;\n\nconst TopBox = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n`;\n\nconst RecruitDescriptionBox = styled.div`\n margin: 16px 0;\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n`;\n\nconst NameText = styled.div`\n color: ${({ theme }) => theme.colors.trueBlack};\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1.5rem;\n text-transform: capitalize;\n`;\n\nconst IconBox = styled.div`\n display: flex;\n align-items: center;\n gap: 4px;\n`;\n\nconst DescriptionText = styled.div`\n color: ${({ theme }) => theme.colors.black};\n margin-right: 2rem;\n`;\n\nconst BattleGroundText = styled(DescriptionText)`\n color: #c00;\n font-weight: 600;\n`;\n\nconst BottomBox = styled.div`\n display: flex;\n width: 100%;\n gap: 9px;\n flex-direction: row;\n border-radius: 8px;\n\n ${largeBreakpoint} {\n margin-top: 8px;\n }\n\n ${smallBreakpoint} {\n flex-direction: column;\n }\n`;\n\nconst Box = styled.div`\n display: flex;\n padding: 8px;\n align-items: center;\n gap: 8px;\n border-radius: 4px;\n background: ${({ theme }) => theme.colors.white};\n`;\n\nconst Icon = styled.div`\n font-size: 2rem;\n font-weight: 500;\n line-height: 2rem;\n`;\n\nconst VoterStatusText = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem; /* 150% */\n\n span {\n color: #ffd54f;\n font-weight: 700;\n }\n`;\n\nconst IconWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n height: 50px;\n width: 50px;\n`;\n\nconst VBFriendInfo = ({ voter }) => {\n const { t } = useTranslation();\n\n const fullName = useMemo(\n () =>\n [voter?.['vb.tsmart_first_name'], voter?.['vb.tsmart_last_name']]\n .filter(item => !!item)\n .join(' ')\n .toLowerCase(),\n [voter],\n );\n const location = useMemo(\n () => [voter?.['vb.tsmart_city'], voter?.['vb.tsmart_state']].filter(item => !!item).join(', '),\n [voter],\n );\n const age = useMemo(() => voter?.['vb.voterbase_age'] || '', [voter]);\n const isRegistered = useMemo(\n () => voter?.['vb.voterbase_registration_status'].toLowerCase() === 'registered',\n [voter],\n );\n const isBattlegroundState = useMemo(\n () => isBattleGroundState(voter?.['vb.tsmart_state']),\n [voter],\n );\n const { frequencyPercentage } = useMemo(() => getFrequency(voter), [voter]);\n const isHightFrequency = useMemo(() => frequencyPercentage > 0.49, [frequencyPercentage]);\n const entry = useMemo(() => {\n // 12 - low-frequency/unregistered in battleground state\n // 10 - low-frequency/unregistered in non-battleground state\n // 3 - high-frequency in battleground state\n // 1 - high-frequency in non-battleground state\n const base = !isRegistered || !isHightFrequency ? 10 : 1;\n return base + (isBattlegroundState ? 2 : 0);\n }, [isRegistered, isHightFrequency, isBattlegroundState]);\n\n return (\n <Wrapper>\n <TopBox>\n {fullName && <NameText>{fullName}</NameText>}\n <RecruitDescriptionBox>\n {location && (\n <IconBox>\n <Location />\n <DescriptionText>{location}</DescriptionText>\n </IconBox>\n )}\n {age && (\n <IconBox>\n <Calendar />\n <DescriptionText>{age}</DescriptionText>\n </IconBox>\n )}\n {isBattleGroundState(voter?.['vb.tsmart_state']) && (\n <IconBox>\n <BattleGroundText>{t('fan_out.my_activity.battleground_state')}</BattleGroundText>\n </IconBox>\n )}\n </RecruitDescriptionBox>\n </TopBox>\n <BottomBox>\n <Box style={{ flex: 1 }}>\n <IconWrapper>\n <Icon>{isRegistered ? '✅' : 'âŒ'}</Icon>\n </IconWrapper>\n <VoterStatusText>\n {isRegistered\n ? t('voting_information.registered')\n : t('voting_information.unregistered')}\n </VoterStatusText>\n </Box>\n <Box style={{ flex: 1 }}>\n <IconWrapper>\n <Icon>{isHightFrequency ? '🌟' : '😴'}</Icon>\n </IconWrapper>\n <VoterStatusText>\n {isHightFrequency\n ? t('fan_out.friend_look_up.high_frequency')\n : t('fan_out.friend_look_up.low_frequency')}\n </VoterStatusText>\n </Box>\n <Box style={{ flex: 2 }}>\n <IconWrapper>\n <Ticket isFriendLookUp />\n </IconWrapper>\n <VoterStatusText\n dangerouslySetInnerHTML={{\n __html: t('fan_out.friend_look_up.recruit_description', {\n count: entry,\n }),\n }}\n />\n </Box>\n </BottomBox>\n </Wrapper>\n );\n};\n\nVBFriendInfo.propTypes = {\n voter: PropTypes.object.isRequired,\n};\n\nVBFriendInfo.defaultProps = {};\n\nexport default memo(VBFriendInfo);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport { Link, useLocation } from 'react-router-dom';\n\nimport { Description, Title } from '@web/components/VoterRegistration/newComponents/TextStyles';\nimport { largeBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport Button from '@web/components/VoterRegistration/newComponents/Button';\nimport ArrowBack from '@web/components/FanOut/components/icons/ArrowBack';\nimport VBFriendInfo from './VBFriendInfo';\n\nconst VBFriendInfoWrapper = styled.div`\n margin-top: 24px;\n display: flex;\n gap: 12px;\n flex-direction: column;\n`;\n\nconst LoadingBox = styled.div`\n margin-top: 10px;\n display: flex;\n width: 100%;\n justify-content: center;\n`;\n\nconst NoRecruitsText = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-size: 1.5rem;\n font-weight: 600;\n line-height: 2rem;\n text-align: center;\n`;\n\nconst ButtonRow = styled.div`\n display: flex;\n flex-direction: column-reverse;\n gap: 1rem;\n justify-content: flex-end;\n margin-top: 60px;\n\n ${largeBreakpoint} {\n justify-content: space-between;\n flex-direction: row;\n margin-top: 58px;\n }\n`;\n\nconst ButtonGroup = styled.div`\n align-items: center;\n display: flex;\n flex: 1;\n flex-direction: column-reverse;\n gap: 1rem;\n :last-of-type {\n justify-content: flex-end;\n }\n ${largeBreakpoint} {\n flex-direction: row;\n justify-content: flex-start;\n button {\n max-width: 220px;\n }\n }\n`;\n\nconst StyledLink = styled(Link)`\n :hover,\n :focus,\n .active {\n text-decoration: none;\n }\n`;\n\nconst StyledButton = styled(Button)`\n &&& {\n height: 64px;\n }\n`;\n\nconst StyledLinkButton = styled(Button)`\n svg {\n margin-right: 0.375rem;\n }\n\n &&& {\n height: 64px;\n border: 1px solid ${({ theme }) => theme.colors.blackL72};\n background: ${({ theme }) => theme.colors.white};\n color: ${({ theme }) => theme.colors.blue};\n }\n`;\n\nconst FriendLookUpResult = ({ handleClose, previousPage }) => {\n const { t } = useTranslation();\n const { search } = useLocation();\n const { friendLookUpResult } = useSelector(state => state.voterRegistration);\n\n return (\n <>\n <Title>{t('fan_out.friend_look_up.look_up_title')}</Title>\n <Description>{t('fan_out.friend_look_up.look_up_description')}</Description>\n <VBFriendInfoWrapper>\n {friendLookUpResult.map((voter, index) => (\n <VBFriendInfo key={index} voter={voter}></VBFriendInfo>\n ))}\n {friendLookUpResult.length === 0 && (\n <LoadingBox>\n <NoRecruitsText>{t('fan_out.friend_look_up.no_results')}</NoRecruitsText>\n </LoadingBox>\n )}\n </VBFriendInfoWrapper>\n <ButtonRow>\n <ButtonGroup>\n <StyledLinkButton onClick={previousPage} variant=\"outline\" isFanOut>\n <ArrowBack />\n {t('fan_out.friend_look_up.search_again')}\n </StyledLinkButton>\n </ButtonGroup>\n <ButtonGroup>\n <StyledButton onClick={handleClose} variant=\"fan_out\" isFanOut>\n <StyledLink to={{ search, state: 'sweepstakes' }}>\n {t('fan_out.friend_look_up.view_active_sweepstakes')}\n </StyledLink>\n </StyledButton>\n </ButtonGroup>\n </ButtonRow>\n </>\n );\n};\n\nFriendLookUpResult.propTypes = {\n activity: PropTypes.object.isRequired,\n handleClose: PropTypes.func.isRequired,\n previousPage: PropTypes.func.isRequired,\n setSelectedFlow: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nFriendLookUpResult.defaultProps = {};\n\nexport default FriendLookUpResult;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\n\nimport { Description, Title } from '@web/components/VoterRegistration/newComponents/TextStyles';\nimport Message from '@web/components/VoterRegistration/newComponents/VotingInformation/Message';\nimport Status from '@web/constants/contactRegistrationStatusTypes';\nimport { largeBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport BackButton from '@web/components/VoterRegistration/newComponents/Button/BackButton';\nimport { useTrackFanOut } from '@web/components/FanOut/hooks/useFanOutAmplitude';\n\nconst StyledVotingDetails = styled.div``;\n\nconst ButtonRow = styled.div`\n margin-top: 40px;\n ${largeBreakpoint} {\n display: none;\n }\n`;\n\nconst StyledBackButton = styled(BackButton)`\n text-decoration: underline;\n`;\n\nconst VotingDetails = ({ handleClose, contact, activity, team }) => {\n const { t } = useTranslation();\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n useTrackFanOut({ activity, name: 'FAN_OUT_VIEW_VOTING_DETAILS', team });\n\n const registered = useMemo(\n () =>\n contact?.voting_info\n ? contact.latest_registration_status === Status.REGISTERED\n : contactFormResult.registration_status === Status.REGISTERED,\n [contactFormResult, contact],\n );\n const descriptionText = useMemo(\n () =>\n registered\n ? t('voting_information.descriptionRegistered')\n : t('voting_information.descriptionNotRegisteredFanOut'),\n [registered, t],\n );\n\n return (\n <StyledVotingDetails>\n <Title>{t('voting_information.title')}</Title>\n <Description>{descriptionText}</Description>\n <Message\n registered={registered}\n disableCollapse\n contact={contact}\n activity={activity}\n team={team}\n />\n <ButtonRow>\n <StyledBackButton onClick={handleClose} showIcon={false}>\n {t('common.close')}\n </StyledBackButton>\n </ButtonRow>\n </StyledVotingDetails>\n );\n};\n\nVotingDetails.propTypes = {\n activity: PropTypes.object.isRequired,\n contact: PropTypes.object,\n handleClose: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nVotingDetails.defaultProps = {};\n\nexport default VotingDetails;\n","import * as React from 'react';\n\nimport AddressConfirmation from '../flows/CheckRegistration/AddressConfirmation';\nimport ChooseFlow from '../newComponents/ChooseFlow';\nimport FindRegistration from '../flows/CheckRegistration/FindRegistration';\nimport Info from '../flows/HelpOthers/Info';\nimport NotRegistered from '../flows/CheckRegistration/NotRegistered';\n// MTS - 8/2/22 We're removing the ReviewInformation screen until we're able\n// to prefill a pdf with the voter's info.\n// import ReviewInformation from '../newComponents/ReviewInformation';\nimport SelectVoter from '../flows/CheckRegistration/SelectVoter';\nimport Share from '../flows/HelpOthers/Share';\nimport TellUs from '../flows/RegisterToVote/TellUs';\nimport VotingInformation from '../newComponents/VotingInformation';\nimport FriendLookUp from '@web/components/FanOut/components/FriendLookUp';\nimport FriendLookUpResult from '@web/components/FanOut/components/FriendLookUpResult';\nimport VotingDetails from '@web/components/FanOut/components/VotingDetails';\n\nconst Placeholder = () => <div />;\n\n// flows\nexport const defaultFlow = [ChooseFlow, Placeholder, Placeholder, Placeholder, Placeholder];\n\n// Check Registration\nexport const checkRegistration = [\n ChooseFlow,\n FindRegistration,\n SelectVoter,\n AddressConfirmation,\n VotingInformation,\n];\n\nexport const checkRegistrationReviewInfo = [\n ChooseFlow,\n FindRegistration,\n SelectVoter,\n AddressConfirmation,\n // ReviewInformation,\n VotingInformation,\n];\n\nexport const checkRegistrationNotRegistered = [\n ChooseFlow,\n FindRegistration,\n NotRegistered,\n // ReviewInformation,\n VotingInformation,\n];\n\nexport const registerToVote = [ChooseFlow, TellUs, VotingInformation];\n\nexport const fanOutRegistration = [\n FindRegistration,\n SelectVoter,\n AddressConfirmation,\n VotingInformation,\n];\n\nexport const fanOutRegisterToVote = [TellUs, VotingInformation];\n\nexport const fanOutNotRegistered = [FindRegistration, NotRegistered, VotingInformation];\n\nexport const helpOthers = [ChooseFlow, Info, Share];\n\nexport const friendLookUp = [FriendLookUp, FriendLookUpResult];\n\nexport const voterDetails = [VotingDetails];\n\nfunction useFlows() {\n const [selectedFlow, setSelectedFlow] = React.useState(defaultFlow);\n const [currentPage, setCurrentPage] = React.useState(0);\n const [isReferralFlow, setIsReferralFlow] = React.useState(false);\n\n // Scroll to the top of the page each time currentPage changes.\n React.useEffect(() => {\n const modal = document.querySelector('.vr-modal');\n window?.scrollTo?.(0, 0);\n modal?.scrollTo?.(0, 0);\n // eslint-disable-next-line\n }, [currentPage, selectedFlow]);\n\n function backToStart() {\n setSelectedFlow(defaultFlow);\n setCurrentPage(0);\n }\n\n function nextPage() {\n const next = currentPage + 1;\n if (next > selectedFlow.length - 1) {\n return;\n }\n setCurrentPage(next);\n }\n\n function previousPage() {\n const next = currentPage - 1;\n if (next < 0) {\n return;\n }\n setCurrentPage(next);\n }\n\n return {\n backToStart,\n currentPage,\n isReferralFlow,\n nextPage,\n previousPage,\n selectedFlow,\n setCurrentPage,\n setIsReferralFlow,\n setSelectedFlow,\n };\n}\n\nexport default useFlows;\n","import React, { useCallback, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport InfiniteScroll from 'react-infinite-scroller';\n\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport SweepstakeCard from '@web/components/FanOut/components/SweepstakeCard';\nimport { fanOut } from '@web/services/api';\nimport { toObject, usePaginatedApi } from '@web/hooks/usePaginatedApi';\nimport Loading from '@web/components/common/Loading';\nimport Layout from '@web/components/VoterRegistration/newComponents/Layout';\nimport Modal from '@web/components/VoterRegistration/newComponents/Modal';\nimport Share from '@web/components/VoterRegistration/flows/HelpOthers/Share';\nimport useFlows from '@web/components/VoterRegistration/hooks/useFlows';\nimport useIsMobile from '@web/components/VoterRegistration/hooks/useIsMobile';\nimport { useTrackFanOut } from '@web/components/FanOut/hooks/useFanOutAmplitude';\n\nconst Wrapper = styled.div`\n background: ${({ theme }) => theme.colors.whiteSmoke};\n width: 100%;\n display: flex;\n flex: 1;\n padding: 40px 48px;\n flex-direction: column;\n\n ${smallBreakpoint} {\n padding: 20px;\n }\n`;\n\nconst Title = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-size: 3rem;\n font-weight: 700;\n line-height: 3.5rem; /* 116.667% */\n\n ${smallBreakpoint} {\n font-size: 2rem;\n line-height: 2.25rem; /* 112.5% */\n }\n`;\n\nconst SweepstakesContainer = styled.div`\n margin-top: 32px;\n display: flex;\n flex-wrap: wrap;\n gap: 20px;\n\n ${smallBreakpoint} {\n margin-top: 20px;\n }\n`;\n\nconst LoadingBox = styled.div`\n display: flex;\n width: 100%;\n justify-content: center;\n`;\n\nconst AllSweepstakes = ({ team, activity, referrer }) => {\n const { t } = useTranslation();\n const isMobile = useIsMobile();\n const [shareLink, setShareLink] = React.useState('');\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n const { ...flowProps } = useFlows();\n\n const phone = useMemo(() => contactFormResult?.phone, [contactFormResult?.phone]);\n const campaign_id = useMemo(() => activity.campaign.id, [activity.campaign.id]);\n\n useTrackFanOut({ activity, name: 'FAN_OUT_ALL_SWEEPSTAKES', team });\n\n const {\n hasMore,\n items: sweepstakesState,\n loadMore,\n loading,\n initialLoading,\n } = toObject(\n usePaginatedApi(fanOut.getAllSweepstakes, null, {\n campaign_id,\n phone,\n }),\n );\n\n useEffect(() => {\n if (initialLoading && !loading) {\n loadMore();\n }\n }, [initialLoading, loadMore, loading]);\n\n const closeHandler = useCallback(() => setShareLink(''), []);\n\n return (\n <Wrapper>\n <Title>{t('fan_out.sweepstakes.title')}</Title>\n <Modal\n closeModal={closeHandler}\n modalOpen={!!shareLink}\n secondaryCloseButton={isMobile}\n isFanOut\n >\n <Layout>\n <Share\n activity={activity}\n team={team}\n handleClose={closeHandler}\n isFanOut\n referrer={referrer}\n shareLink={shareLink}\n {...flowProps}\n />\n </Layout>\n </Modal>\n <InfiniteScroll\n initialLoad={false}\n pageStart={0}\n threshold={0}\n loadMore={loadMore}\n hasMore={!loading && hasMore}\n >\n <SweepstakesContainer>\n {sweepstakesState.map(sweepstake => (\n <SweepstakeCard\n key={sweepstake.id}\n sweepstake={sweepstake}\n team={team}\n setShareLink={setShareLink}\n activity={activity}\n />\n ))}\n {loading && (\n <LoadingBox>\n <Loading />\n </LoadingBox>\n )}\n </SweepstakesContainer>\n </InfiniteScroll>\n </Wrapper>\n );\n};\n\nAllSweepstakes.propTypes = {\n activity: PropTypes.object.isRequired,\n referrer: PropTypes.object,\n team: PropTypes.object,\n};\n\nAllSweepstakes.defaultProps = {\n team: null,\n};\n\nexport default AllSweepstakes;\n","import React, { memo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { Tooltip } from 'antd';\nimport { RedoOutlined } from '@ant-design/icons';\nimport { useTranslation } from 'react-i18next';\n\nimport theme from '@web/styles/theme';\n\nconst RefreshFormIcon = styled.button`\n position: absolute;\n right: ${({ $position }) => ($position ? $position.right : '16px')};\n top: ${({ $position }) => ($position ? $position.top : '16px')};\n border: none;\n padding: 0;\n background: transparent;\n color: ${({ $color }) => $color ?? theme.colors.black};\n stroke-width: 15px;\n stroke: ${({ $color }) => $color ?? theme.colors.black};\n background: #ffffff80;\n align-items: center;\n justify-content: center;\n display: flex;\n`;\n\nconst RecheckRegistrationIcon = ({ onClick, position, color }) => {\n const { t } = useTranslation();\n\n return (\n <Tooltip title={t('fan_out.my_activity.recheck')} placement=\"left\">\n <RefreshFormIcon\n $color={color}\n type=\"button\"\n $position={position}\n onClick={onClick}\n as=\"button\"\n >\n <RedoOutlined />\n </RefreshFormIcon>\n </Tooltip>\n );\n};\n\nRecheckRegistrationIcon.propTypes = {\n color: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n position: PropTypes.shape({\n right: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n top: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n }),\n};\n\nexport default memo(RecheckRegistrationIcon);\n","import React, { useCallback, useMemo, useState } from 'react';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport { useDispatch } from 'react-redux';\nimport { CheckCircleFilled, CloseCircleFilled, QuestionCircleFilled } from '@ant-design/icons';\nimport { shape, bool, number, string, object, func } from 'prop-types';\nimport { Spin } from 'antd';\nimport useIsMobile from '@web/components/VoterRegistration/hooks/useIsMobile';\n\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport { getInfo } from '@web/utils/getVoterInfo';\nimport Status from '@web/constants/contactRegistrationStatusTypes';\nimport Layout from '@web/components/VoterRegistration/newComponents/Layout';\nimport Modal from '@web/components/VoterRegistration/newComponents/Modal';\nimport VotingDetails from '@web/components/FanOut/components/VotingDetails';\nimport RecheckRegistrationIcon from '@web/components/FanOut/components/RecheckRegistrationIcon';\nimport { setIsRegistrationRecheck } from '@web/reducers/voterRegistration';\n\nconst Wrapper = styled.div`\n display: flex;\n margin-top: 32px;\n width: 100%;\n padding: 16px 42px 16px 24px;\n flex-direction: row;\n justify-content: flex-start;\n align-items: flex-start;\n gap: 16px;\n border-radius: 8px;\n background: ${({ theme }) => theme.colors.white};\n flex-wrap: wrap;\n position: relative;\n\n ${smallBreakpoint} {\n margin-top: 20px;\n flex-direction: column;\n gap: 6px;\n padding: 16px;\n }\n`;\n\nconst BasicText = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem; /* 150% */\n`;\n\nconst Title = styled(BasicText)`\n font-size: 3rem;\n font-weight: 700;\n line-height: 3.5rem; /* 116.667% */\n\n ${smallBreakpoint} {\n font-size: 2rem;\n line-height: 2.25rem; /* 112.5% */\n }\n`;\n\nconst StatusWrapper = styled.div`\n display: flex;\n gap: 10px;\n`;\n\nconst StatusText = styled(BasicText)`\n font-weight: 700;\n line-height: 1.5rem; /* 150% */\n text-transform: uppercase;\n`;\n\nconst StatusContainer = styled.div`\n display: flex;\n align-items: flex-start;\n flex-direction: row;\n gap: 10px;\n`;\n\nconst RegisteredIcon = styled(CheckCircleFilled)`\n &&& {\n font-size: 1.5rem;\n color: #52c41a;\n }\n`;\n\nconst NotRegisteredIcon = styled(CloseCircleFilled)`\n &&& {\n font-size: 1.5rem;\n color: ${({ theme }) => theme.colors.red};\n }\n`;\n\nconst UnknownIcon = styled(QuestionCircleFilled)`\n &&& {\n font-size: 1.5rem;\n color: ${({ theme }) => theme.colors.gray};\n }\n`;\n\nconst VotingStatusContainer = styled.div``;\n\nconst VoterStatusText = styled(BasicText)`\n font-weight: 700;\n line-height: 1.5rem; /* 150% */\n text-transform: uppercase;\n`;\n\nconst VotingDetailsLink = styled(BasicText)`\n color: ${({ theme }) => theme.colors.black};\n font-size: 1rem;\n line-height: 1.5rem; /* 150% */\n font-weight: 600;\n text-decoration-line: underline;\n\n cursor: pointer;\n\n :hover,\n :focus,\n .active {\n color: ${({ theme }) => theme.colors.black};\n text-decoration: underline;\n text-decoration-color: ${({ theme }) => theme.colors.black};\n }\n`;\n\nconst InfoWrapper = styled.div`\n display: flex;\n gap: 16px;\n\n ${smallBreakpoint} {\n flex-direction: column;\n align-items: flex-start;\n gap: 6px;\n }\n`;\n\nconst ContactText = styled(BasicText)`\n line-height: 1.25rem; /* 125% */\n`;\n\nconst Spacer = styled.span`\n margin-right: 1rem;\n`;\n\nconst StatusBox = ({ myStats, myStatsIsLoading, activity, team, openVoterModal }) => {\n const dispatch = useDispatch();\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const { t } = useTranslation();\n const isMobile = useIsMobile();\n\n const info = useMemo(() => getInfo(contactFormResult), [contactFormResult]);\n\n const { Icon, status } = useMemo(() => {\n if (myStats.status === Status.REGISTERED) {\n return { Icon: RegisteredIcon, status: t('voting_information.registered') };\n }\n if (myStats.status === Status.UNREGISTERED) {\n return { Icon: NotRegisteredIcon, status: t('voting_information.unregistered') };\n }\n return { Icon: UnknownIcon, status: t('voting_information.not_checked') };\n }, [myStats.status, t]);\n\n const showVotingDetailsButton = useMemo(\n () => myStats.contact?.voting_info && Object.keys(myStats.contact?.voting_info).length > 0,\n [myStats.contact?.voting_info],\n );\n\n const openModal = useCallback(() => setIsModalOpen(true), []);\n const closeModal = useCallback(() => setIsModalOpen(false), []);\n const recheck = useCallback(() => {\n dispatch(setIsRegistrationRecheck(true));\n openVoterModal();\n }, [openVoterModal, dispatch]);\n\n return (\n <>\n <Title>{info.name}</Title>\n <Wrapper>\n <RecheckRegistrationIcon onClick={recheck} />\n <StatusWrapper>\n <StatusText>{t('fan_out.my_activity.my_status')}</StatusText>\n <StatusContainer>\n {myStatsIsLoading ? (\n <Spin />\n ) : (\n <>\n <Icon />\n <VotingStatusContainer>\n <VoterStatusText>{status}</VoterStatusText>\n {showVotingDetailsButton && (\n <>\n <VotingDetailsLink onClick={openModal}>\n {t('fan_out.my_activity.show_voting_details')}\n </VotingDetailsLink>\n <Modal\n modalOpen={isModalOpen}\n closeModal={closeModal}\n secondaryCloseButton={isMobile}\n isFanOut\n >\n <Layout>\n <VotingDetails\n handleClose={closeModal}\n contact={myStats.contact}\n activity={activity}\n team={team}\n />\n </Layout>\n </Modal>\n </>\n )}\n </VotingStatusContainer>\n </>\n )}\n </StatusContainer>\n </StatusWrapper>\n <ContactText>\n <InfoWrapper>\n <span>\n {t('fan_out.my_activity.who')} {info.name}\n {info.age && `, ${info.age} ${t('fan_out.my_activity.old')}`}\n </span>\n {info.address && (\n <span>\n <Spacer>{t('fan_out.my_activity.at')}</Spacer> {info.address}\n </span>\n )}\n </InfoWrapper>\n </ContactText>\n </Wrapper>\n </>\n );\n};\n\nStatusBox.propTypes = {\n activity: object.isRequired,\n myStats: shape({\n contact: object,\n entries: number,\n recruits: number,\n status: string,\n }).isRequired,\n myStatsIsLoading: bool.isRequired,\n openVoterModal: func.isRequired,\n team: object,\n};\n\nStatusBox.defaultProps = {};\n\nexport default StatusBox;\n","import React from 'react';\n\nconst TwoRecruits = props => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={60}\n height={60}\n viewBox=\"0 0 60 60\"\n fill=\"none\"\n {...props}\n >\n <path\n d=\"M5.65891 48.8095C4.29156 48.8095 3.18311 47.701 3.18311 46.3337V42.1248C3.18311 40.772 3.53518 39.5281 4.23934 38.3933C4.9435 37.2585 5.87755 36.3935 7.0415 35.7983C9.53339 34.5648 12.0655 33.6393 14.6377 33.0217C17.21 32.4042 19.8225 32.0962 22.4751 32.0978C25.1278 32.0978 27.7402 32.4066 30.3125 33.0241C32.8847 33.6417 35.4168 34.5664 37.9087 35.7983C39.0743 36.3951 40.0091 37.2609 40.7133 38.3957C41.4174 39.5305 41.7687 40.7736 41.7671 42.1248V46.3337C41.7671 47.701 40.6586 48.8095 39.2913 48.8095H5.65891ZM49.0659 48.8095C47.6986 48.8095 46.5901 47.701 46.5901 46.3337V41.6473C46.5901 39.8966 46.0974 38.2151 45.1119 36.6028C44.1264 34.9905 42.7301 33.6082 40.9231 32.4559C42.9729 32.6947 44.9021 33.1029 46.7107 33.6807C48.5193 34.2584 50.2073 34.9643 51.7748 35.7983C53.2217 36.5941 54.327 37.479 55.0906 38.453C55.8543 39.4271 56.2361 40.4919 56.2361 41.6473V46.3337C56.2361 47.701 55.1276 48.8095 53.7603 48.8095H49.0659ZM22.4751 29.7104C19.8225 29.7104 17.5516 28.7754 15.6626 26.9053C13.7736 25.0352 12.8291 22.787 12.8291 20.1609C12.8291 17.5348 13.7736 15.2867 15.6626 13.4166C17.5516 11.5464 19.8225 10.6114 22.4751 10.6114C25.1278 10.6114 27.3986 11.5464 29.2876 13.4166C31.1766 15.2867 32.1211 17.5348 32.1211 20.1609C32.1211 22.787 31.1766 25.0352 29.2876 26.9053C27.3986 28.7754 25.1278 29.7104 22.4751 29.7104ZM46.5901 20.1609C46.5901 22.787 45.6456 25.0352 43.7566 26.9053C41.8676 28.7754 39.5968 29.7104 36.9441 29.7104C36.502 29.7104 35.9393 29.6603 35.2561 29.56C34.5728 29.4598 34.0101 29.3507 33.568 29.233C34.6532 27.9597 35.4876 26.5472 36.0711 24.9954C36.6547 23.4436 36.9457 21.8321 36.9441 20.1609C36.9441 18.4897 36.6531 16.8783 36.0711 15.3265C35.4892 13.7747 34.6548 12.3621 33.568 11.0889C34.1307 10.8899 34.6934 10.7602 35.2561 10.6997C35.8187 10.6392 36.3814 10.6098 36.9441 10.6114C39.5968 10.6114 41.8676 11.5464 43.7566 13.4166C45.6456 15.2867 46.5901 17.5348 46.5901 20.1609Z\"\n fill=\"url(#paint0_linear_414_5643)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_414_5643\"\n x1={23.3432}\n y1={5.83656}\n x2={23.3432}\n y2={50.9316}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop />\n <stop offset={1} stopOpacity={0.54} />\n </linearGradient>\n </defs>\n </svg>\n );\n};\n\nTwoRecruits.propTypes = {};\n\nTwoRecruits.defaultProps = {};\n\nexport default TwoRecruits;\n","import React, { useCallback } from 'react';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport { Spin } from 'antd';\n\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport Ticket from '@web/components/FanOut/components/icons/Ticket';\nimport TwoRecruits from '@web/components/FanOut/components/icons/TwoRecruits';\nimport Button from '@web/components/VoterRegistration/newComponents/Button';\nimport { media } from '@web/styles/theme';\n\nconst Wrapper = styled.div`\n display: flex;\n width: 100%;\n align-items: flex-start;\n gap: 16px;\n margin-top: 16px;\n flex-wrap: wrap;\n\n ${smallBreakpoint} {\n flex-direction: column;\n align-items: flex-start;\n }\n`;\n\nconst Box = styled.div`\n display: flex;\n padding: 24px;\n flex-direction: column;\n align-items: flex-start;\n gap: 14px;\n flex: 1;\n border-radius: 8px;\n background: ${({ theme }) => theme.colors.white};\n align-self: stretch;\n\n ${smallBreakpoint} {\n align-self: stretch;\n padding: 16px;\n }\n`;\n\nconst LeftBox = styled(Box)`\n flex-direction: row;\n gap: 48px;\n flex: 0.6;\n\n ${media.s} {\n flex: 1;\n gap: 30px;\n }\n`;\n\nconst RightBox = styled(Box)``;\n\nconst InnerBox = styled.div`\n display: flex;\n flex-direction: row;\n flex: 1;\n gap: 14px;\n align-items: flex-start;\n align-self: stretch;\n`;\n\nconst Section = styled(InnerBox)`\n flex-direction: column;\n`;\n\nconst Column = styled.div`\n display: flex;\n align-items: flex-start;\n justify-content: center;\n flex-direction: column;\n`;\n\nconst IconBox = styled.div`\n margin-top: 7px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: row;\n gap: 10px;\n /* height: 60px; */\n`;\n\nconst BasicText = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem; /* 150% */\n`;\n\nconst Title = styled(BasicText)`\n font-weight: 700;\n text-transform: uppercase;\n`;\nconst StyledTicket = styled(Ticket)`\n height: 60px;\n /* scale: 0.88; */\n`;\n\nconst Counter = styled(BasicText)`\n color: #121212;\n font-size: 2.47581rem;\n font-weight: 600;\n text-shadow: 3.6894371509552px 11.06831169128418px 44.27324676513672px rgba(0, 0, 0, 0.08);\n`;\n\nconst StyledButton = styled(Button)`\n text-align: center;\n font-size: 1rem;\n font-weight: 700;\n\n &&& {\n height: 64px;\n max-width: 250px;\n\n ${smallBreakpoint} {\n max-width: unset;\n }\n }\n`;\n\nconst EntriesBoxes = ({\n openFriendSearchModal,\n myStats,\n myStatsIsLoading,\n votingPlanReferralLink,\n votingPlanReferralLinkLoading,\n}) => {\n const { t } = useTranslation();\n\n const openVotingPlan = useCallback(() => {\n window.open(votingPlanReferralLink, '_blank');\n }, [votingPlanReferralLink]);\n\n return (\n <Wrapper>\n <LeftBox>\n <Column>\n <Title>{t('fan_out.my_activity.entries_earned', { count: myStats.entries })}</Title>\n <IconBox>\n <StyledTicket isMyActivity />\n <Counter>{myStatsIsLoading ? <Spin /> : myStats.entries}</Counter>\n </IconBox>\n </Column>\n <Column>\n <Title>{t('fan_out.my_activity.recruits', { count: myStats.recruits })}</Title>\n <IconBox>\n <TwoRecruits />\n <Counter>{myStatsIsLoading ? <Spin /> : myStats.recruits}</Counter>\n </IconBox>\n </Column>\n </LeftBox>\n <RightBox>\n <Title>{t('fan_out.my_activity.more_entries')}</Title>\n <InnerBox>\n <Section>\n <StyledButton onClick={openFriendSearchModal} variant=\"fan_out\">\n {t('fan_out.my_activity.look_up_button')}\n </StyledButton>\n <BasicText>{t('fan_out.my_activity.friend_description')}</BasicText>\n </Section>\n <Section>\n <StyledButton\n onClick={openVotingPlan}\n variant=\"fan_out\"\n disabled={votingPlanReferralLinkLoading}\n >\n {t('fan_out.my_activity.voting_plan_button')}\n </StyledButton>\n <BasicText>{t('fan_out.my_activity.voting_plan_description')}</BasicText>\n </Section>\n </InnerBox>\n </RightBox>\n </Wrapper>\n );\n};\n\nEntriesBoxes.propTypes = {\n myStats: PropTypes.shape({\n entries: PropTypes.number,\n recruits: PropTypes.number,\n status: PropTypes.string,\n }).isRequired,\n myStatsIsLoading: PropTypes.bool.isRequired,\n openFriendSearchModal: PropTypes.func.isRequired,\n votingPlanReferralLink: PropTypes.string,\n votingPlanReferralLinkLoading: PropTypes.bool,\n};\n\nEntriesBoxes.defaultProps = {};\n\nexport default EntriesBoxes;\n","import React from 'react';\n\nconst ExitLink = props => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={16}\n height={16}\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n {...props}\n >\n <path\n d=\"M6.66667 4V5.33333H3.33333V12.6667H10.6667V9.33333H12V13.3333C12 13.5101 11.9298 13.6797 11.8047 13.8047C11.6797 13.9298 11.5101 14 11.3333 14H2.66667C2.48986 14 2.32029 13.9298 2.19526 13.8047C2.07024 13.6797 2 13.5101 2 13.3333V4.66667C2 4.48986 2.07024 4.32029 2.19526 4.19526C2.32029 4.07024 2.48986 4 2.66667 4H6.66667ZM14 2V7.33333H12.6667V4.27533L7.47133 9.47133L6.52867 8.52867L11.7233 3.33333H8.66667V2H14Z\"\n fill=\"black\"\n />\n </svg>\n );\n};\n\nExitLink.propTypes = {};\n\nExitLink.defaultProps = {};\n\nexport default ExitLink;\n","import React, { useMemo, useCallback } from 'react';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { number, shape, string, bool } from 'prop-types';\nimport { useHistory, Link } from 'react-router-dom';\n\nimport Location from '@web/components/FanOut/components/icons/Location';\nimport Calendar from '@web/components/FanOut/components/icons/Calendar';\nimport Entries from '@web/components/FanOut/components/icons/Entries';\nimport ExitLink from '@web/components/FanOut/components/icons/ExitLink';\nimport { isBattleGroundState } from '@web/components/FanOut/helpers';\n\nconst BasicText = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem; /* 150% */\n`;\n\nconst Container = styled.div`\n display: flex;\n flex: 1;\n padding: 15px 20px;\n background: ${({ theme }) => theme.colors.white};\n gap: 5px;\n`;\n\nconst Underline = styled.div`\n display: flex;\n background: ${({ theme }) => theme.colors.transparent};\n height: 2px;\n`;\n\nconst Box = styled.div`\n display: flex;\n justify-content: flex-start;\n align-items: center;\n flex-wrap: wrap;\n`;\n\nconst RecruitBox = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 2px;\n`;\n\nconst RecruitDescriptionBox = styled.div`\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n`;\n\nconst NameText = styled(BasicText)`\n color: ${({ theme }) => theme.colors.trueBlack};\n font-size: 1.125rem;\n font-weight: 700;\n text-transform: capitalize;\n`;\n\nconst IconBox = styled.div`\n display: flex;\n align-items: center;\n gap: 4px;\n`;\n\nconst DescriptionText = styled(BasicText)`\n color: ${({ theme }) => theme.colors.black};\n margin-right: 1rem;\n`;\n\nconst BattleGroundText = styled(BasicText)`\n color: #c00;\n font-weight: 600;\n`;\n\nconst VSBox = styled.div`\n display: inline-flex;\n align-items: flex-start;\n gap: 8px;\n flex-wrap: wrap;\n`;\n\nconst VSContent = styled.div`\n display: flex;\n padding: 4px 12px;\n justify-content: center;\n align-items: center;\n gap: 8px;\n border-radius: 40px;\n background: ${({ $isActive }) =>\n $isActive ? 'rgba(20, 201, 36, 0.10)' : 'rgba(245,34,45,0.10)'};\n`;\n\nconst Icon = styled.div`\n font-size: 1rem;\n font-weight: 500;\n line-height: 1rem;\n`;\n\nconst VSText = styled(BasicText)`\n color: ${({ theme }) => theme.colors.black};\n font-weight: 600;\n`;\n\nconst EarnedContent = styled(VSContent)`\n background: rgba(255, 153, 0, 0.2);\n`;\n\nconst StyledEntries = styled(Entries)`\n width: 24px;\n height: 24px;\n`;\n\nconst SweepstakeLink = styled(Link)`\n color: ${({ theme }) => theme.colors.black};\n font-size: 1rem;\n line-height: 1.5rem; /* 150% */\n font-weight: 600;\n text-decoration-line: underline;\n overflow: hidden;\n text-overflow: ellipsis;\n height: 1.5rem;\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n\n cursor: pointer;\n\n :hover,\n :focus,\n .active {\n color: ${({ theme }) => theme.colors.black};\n text-decoration: underline;\n text-decoration-color: ${({ theme }) => theme.colors.black};\n }\n`;\n\nconst StyledExitLink = styled(ExitLink)`\n margin-bottom: 2px;\n`;\n\nexport const flex = [{ flex: 3 }, { flex: 2 }, { flex: 1.5 }, { flex: 1.2 }, { flex: 1.5 }];\n\nconst DesktopRecruit = ({ recruit }) => {\n const { t } = useTranslation();\n const history = useHistory();\n\n const {\n activity_slug: activitySlug,\n campaign_slug: campaignSlug,\n activity_title: linkText,\n points_earned_from_recruit: entries,\n voting_plan_submitted: isVotingPlanSubmitted,\n } = recruit;\n\n const {\n first_name: firsName,\n last_name: lastName,\n registration_status: status,\n voter_frequency: frequency,\n age_lower_bound: ageLowerBound,\n age_upper_bound: ageUpperBound,\n city,\n state_abbrev: stateAbbrev,\n } = recruit.contact;\n\n const fullName = useMemo(\n () =>\n [firsName, lastName]\n .filter(item => !!item)\n .join(' ')\n .toLowerCase(),\n [firsName, lastName],\n );\n const location = useMemo(\n () => [city, stateAbbrev].filter(item => !!item).join(', '),\n [city, stateAbbrev],\n );\n const age = useMemo(\n () => [ageLowerBound, ageUpperBound].filter(item => !!item).join(' - '),\n [ageLowerBound, ageUpperBound],\n );\n const isRegistered = useMemo(() => status?.toLowerCase() === 'registered', [status]);\n const isHightFrequency = useMemo(() => frequency > 0.49, [frequency]);\n\n const navigate = useCallback(() => {\n history.replace(`/campaigns/${campaignSlug}/activities/${activitySlug}`);\n }, [campaignSlug, activitySlug, history]);\n\n return (\n <>\n <Container>\n <Box style={flex[0]}>\n <RecruitBox>\n {(firsName || lastName) && <NameText>{fullName}</NameText>}\n <RecruitDescriptionBox>\n {location && (\n <IconBox>\n <Location />\n <DescriptionText>{location}</DescriptionText>\n </IconBox>\n )}\n {age && (\n <IconBox>\n <Calendar />\n <DescriptionText>{age}</DescriptionText>\n </IconBox>\n )}\n {isBattleGroundState(stateAbbrev) && (\n <IconBox>\n <BattleGroundText>{t('fan_out.my_activity.battleground_state')}</BattleGroundText>\n </IconBox>\n )}\n </RecruitDescriptionBox>\n </RecruitBox>\n </Box>\n <Box style={flex[1]}>\n <VSBox>\n <VSContent $isActive={isRegistered}>\n <Icon>{isRegistered ? '✅' : 'âŒ'}</Icon>\n <VSText>\n {isRegistered\n ? t('voting_information.registered')\n : t('voting_information.unregistered')}\n </VSText>\n </VSContent>\n <VSContent $isActive={isHightFrequency}>\n <Icon>{isHightFrequency ? '🌟' : '😴'}</Icon>\n <VSText>\n {isHightFrequency > 0.49\n ? t('fan_out.friend_look_up.high_frequency')\n : t('fan_out.friend_look_up.low_frequency')}\n </VSText>\n </VSContent>\n </VSBox>\n </Box>\n <Box style={flex[2]}>\n <VSBox>\n <VSContent $isActive={isVotingPlanSubmitted}>\n <Icon>{isVotingPlanSubmitted ? '✅' : '🚫'}</Icon>\n <VSText>\n {isVotingPlanSubmitted\n ? t('fan_out.my_activity.complete')\n : t('fan_out.my_activity.incomplete')}\n </VSText>\n </VSContent>\n </VSBox>\n </Box>\n <Box style={flex[3]}>\n <EarnedContent>\n <StyledEntries fullColor fill={'#121212'} />\n <VSText>{entries || 0}</VSText>\n </EarnedContent>\n </Box>\n <Box style={flex[4]}>\n <SweepstakeLink onClick={navigate} to={{}}>\n <StyledExitLink />\n {linkText}\n </SweepstakeLink>\n </Box>\n </Container>\n <Underline />\n </>\n );\n};\n\nDesktopRecruit.propTypes = {\n recruit: shape({\n activity_id: number.isRequired,\n activity_slug: string.isRequired,\n activity_title: string.isRequired,\n campaign_slug: string.isRequired,\n contact: shape({\n age_lower_bound: number,\n age_upper_bound: number,\n city: string,\n first_name: string,\n id: number,\n last_name: string,\n phone: string,\n registration_status: string,\n state_abbrev: string,\n voter_frequency: number,\n }).isRequired,\n id: number.isRequired,\n points_earned_from_recruit: number,\n voting_plan_submitted: bool,\n }).isRequired,\n};\n\nDesktopRecruit.defaultProps = {};\n\nexport default DesktopRecruit;\n","import React, { useMemo, useCallback } from 'react';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { bool, number, shape, string } from 'prop-types';\nimport { useHistory, Link } from 'react-router-dom';\n\nimport Location from '@web/components/FanOut/components/icons/Location';\nimport Calendar from '@web/components/FanOut/components/icons/Calendar';\nimport Entries from '@web/components/FanOut/components/icons/Entries';\nimport ExitLink from '@web/components/FanOut/components/icons/ExitLink';\nimport { isBattleGroundState } from '@web/components/FanOut/helpers';\n\nconst BasicText = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem; /* 150% */\n`;\n\nconst Container = styled.div`\n display: flex;\n flex: 1;\n background: ${({ theme }) => theme.colors.white};\n padding: 16px;\n gap: 8px;\n border-radius: 8px;\n flex-direction: column;\n`;\n\nconst Underline = styled.div`\n display: flex;\n background: ${({ theme }) => theme.colors.transparent};\n height: 12px;\n`;\n\nconst Box = styled.div`\n display: flex;\n justify-content: flex-start;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n`;\n\nconst RecruitBox = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 2px;\n`;\n\nconst RecruitDescriptionBox = styled.div`\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n`;\n\nconst NameText = styled(BasicText)`\n color: ${({ theme }) => theme.colors.trueBlack};\n font-size: 1.125rem;\n font-weight: 700;\n text-transform: capitalize;\n`;\n\nconst IconBox = styled.div`\n display: flex;\n align-items: center;\n gap: 4px;\n`;\n\nconst DescriptionText = styled(BasicText)`\n color: ${({ theme }) => theme.colors.black};\n margin-right: 1.5rem;\n`;\n\nconst BattleGroundText = styled(BasicText)`\n color: #c00;\n font-weight: 600;\n`;\n\nconst VSBox = styled.div`\n display: inline-flex;\n align-items: flex-start;\n gap: 8px;\n flex-wrap: wrap;\n`;\n\nconst VSContent = styled.div`\n display: flex;\n padding: 4px 12px;\n justify-content: center;\n align-items: center;\n gap: 4px;\n border-radius: 40px;\n background: ${({ $isActive }) =>\n $isActive ? 'rgba(20, 201, 36, 0.10)' : 'rgba(245,34,45,0.10)'};\n`;\n\nconst Icon = styled.div`\n font-size: 1rem;\n font-weight: 500;\n line-height: 1rem;\n`;\n\nconst VSText = styled(BasicText)`\n color: ${({ theme }) => theme.colors.black};\n font-weight: 600;\n`;\n\nconst CounterDescription = styled(BasicText)`\n color: ${({ theme }) => theme.colors.black};\n line-height: 1.875rem; /* 187.5% */\n text-transform: lowercase;\n`;\n\nconst EarnedContent = styled(VSContent)`\n background: rgba(255, 153, 0, 0.2);\n`;\n\nconst StyledEntries = styled(Entries)`\n width: 24px;\n height: 24px;\n`;\n\nconst SweepstakeLink = styled(Link)`\n color: ${({ theme }) => theme.colors.black};\n font-size: 1rem;\n line-height: 1.5rem; /* 150% */\n font-weight: 600;\n text-decoration-line: underline;\n height: 1.5rem;\n white-space: nowrap;\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n\n cursor: pointer;\n\n :hover,\n :focus,\n .active {\n color: ${({ theme }) => theme.colors.black};\n text-decoration: underline;\n text-decoration-color: ${({ theme }) => theme.colors.black};\n }\n`;\n\nconst StyledExitLink = styled(ExitLink)`\n margin-bottom: 2px;\n`;\n\nconst MobileRecruit = ({ recruit }) => {\n const { t } = useTranslation();\n const history = useHistory();\n\n const {\n activity_slug: activitySlug,\n campaign_slug: campaignSlug,\n activity_title: linkText,\n points_earned_from_recruit: entries,\n voting_plan_submitted: isVotingPlanSubmitted,\n } = recruit;\n\n const {\n first_name: firsName,\n last_name: lastName,\n registration_status: status,\n voter_frequency: frequency,\n age_lower_bound: ageLowerBound,\n age_upper_bound: ageUpperBound,\n city,\n state_abbrev: stateAbbrev,\n } = recruit.contact;\n\n const fullName = useMemo(\n () =>\n [firsName, lastName]\n .filter(item => !!item)\n .join(' ')\n .toLowerCase(),\n [firsName, lastName],\n );\n const location = useMemo(\n () => [city, stateAbbrev].filter(item => !!item).join(', '),\n [city, stateAbbrev],\n );\n const age = useMemo(\n () => [ageLowerBound, ageUpperBound].filter(item => !!item).join(' - '),\n [ageLowerBound, ageUpperBound],\n );\n const isRegistered = useMemo(() => status?.toLowerCase() === 'registered', [status]);\n const isHightFrequency = useMemo(() => frequency > 0.49, [frequency]);\n\n const navigate = useCallback(() => {\n history.replace(`/campaigns/${campaignSlug}/activities/${activitySlug}`);\n }, [campaignSlug, activitySlug, history]);\n\n return (\n <>\n <Container>\n <Box>\n <RecruitBox>\n {(firsName || lastName) && <NameText>{fullName}</NameText>}\n <RecruitDescriptionBox>\n {location && (\n <IconBox>\n <Location />\n <DescriptionText>{location}</DescriptionText>\n </IconBox>\n )}\n {age && (\n <IconBox>\n <Calendar />\n <DescriptionText>{age}</DescriptionText>\n </IconBox>\n )}\n {isBattleGroundState(stateAbbrev) && (\n <IconBox>\n <BattleGroundText>{t('fan_out.my_activity.battleground_state')}</BattleGroundText>\n </IconBox>\n )}\n </RecruitDescriptionBox>\n </RecruitBox>\n </Box>\n <Box>\n <VSBox>\n <VSContent $isActive={isRegistered}>\n <Icon>{isRegistered ? '✅' : 'âŒ'}</Icon>\n <VSText>\n {isRegistered\n ? t('voting_information.registered')\n : t('voting_information.unregistered')}\n </VSText>\n </VSContent>\n <VSContent $isActive={isHightFrequency}>\n <Icon>{isHightFrequency ? '🌟' : '😴'}</Icon>\n <VSText>\n {isHightFrequency > 0.49\n ? t('fan_out.friend_look_up.high_frequency')\n : t('fan_out.friend_look_up.low_frequency')}\n </VSText>\n </VSContent>\n </VSBox>\n </Box>\n <Box>\n <VSBox>\n <VSContent $isActive={isVotingPlanSubmitted}>\n <Icon>{isVotingPlanSubmitted ? '✅' : '🚫'}</Icon>\n <VSText>\n {isVotingPlanSubmitted\n ? t('fan_out.my_activity.complete')\n : t('fan_out.my_activity.incomplete')}\n </VSText>\n </VSContent>\n </VSBox>\n </Box>\n <Box>\n <EarnedContent>\n <StyledEntries fullColor fill={'#121212'} />\n <VSText>{entries || 0}</VSText>\n <CounterDescription>\n {t('fan_out.my_activity.entry', { count: entries || 0 })}\n </CounterDescription>\n </EarnedContent>\n </Box>\n <Box>\n <SweepstakeLink onClick={navigate} to={{}}>\n <StyledExitLink />\n {linkText}\n </SweepstakeLink>\n </Box>\n </Container>\n <Underline />\n </>\n );\n};\n\nMobileRecruit.propTypes = {\n recruit: shape({\n activity_id: number.isRequired,\n activity_slug: string.isRequired,\n activity_title: string.isRequired,\n campaign_slug: string.isRequired,\n contact: shape({\n age_lower_bound: number,\n age_upper_bound: number,\n city: string,\n first_name: string,\n id: number,\n last_name: string,\n phone: string,\n registration_status: string,\n state_abbrev: string,\n total_fan_out_points: number,\n voter_frequency: number,\n }).isRequired,\n id: number.isRequired,\n points_earned_from_recruit: number,\n voting_plan_submitted: bool,\n }).isRequired,\n};\n\nMobileRecruit.defaultProps = {};\n\nexport default MobileRecruit;\n","import React, { useEffect, useCallback, useMemo } from 'react';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport InfiniteScroll from 'react-infinite-scroller';\nimport PropTypes from 'prop-types';\nimport { message, Tooltip } from 'antd';\nimport Clipboard from 'react-clipboard.js';\n\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport useIsMobile from '@web/components/VoterRegistration/hooks/useIsMobile';\nimport Copy from '@web/components/FanOut/components/icons/Copy';\nimport DesktopRecruit, { flex } from './DesktopRecruit';\nimport MobileRecruit from './MobileRecruit';\nimport { fanOut } from '@web/services/api';\nimport { toObject, usePaginatedApi } from '@web/hooks/usePaginatedApi';\nimport Loading from '@web/components/common/Loading';\nimport { amplitudeTrack } from '@web/components/FanOut/hooks/useFanOutAmplitude';\nimport ShareIcon from '@web/components/VoterRegistration/newComponents/icons/Share';\nimport theme from '@web/styles/theme';\nimport sendError from '@web/utils/sendError';\nimport Button from '@web/components/VoterRegistration/newComponents/Button';\n\nconst Wrapper = styled.div`\n display: flex;\n width: 100%;\n border-radius: 8px;\n flex-direction: column;\n overflow: hidden;\n`;\n\nconst BasicText = styled.div`\n color: ${({ theme }) => theme.colors.blue};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem; /* 150% */\n`;\n\nconst TitleWrapper = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst Title = styled(BasicText)`\n flex: 10;\n margin: 24px 0 12px 0;\n font-size: 2rem;\n font-weight: 700;\n line-height: 3.5rem; /* 116.667% */\n\n ${smallBreakpoint} {\n font-weight: 600;\n line-height: 2.25rem; /* 112.5% */\n }\n`;\n\nconst StyledButton = styled(Button)`\n &&& {\n margin-top: 12px;\n font-size: 1rem;\n font-weight: 600;\n letter-spacing: 0.0625rem;\n\n flex: 1;\n gap: 6px;\n display: flex;\n align-items: center;\n flex-direction: row;\n height: 1.5rem;\n padding: 0;\n background: ${({ theme }) => theme.colors.transparent} !important;\n border: none !important;\n\n &::after {\n all: unset !important;\n }\n }\n`;\n\nconst TopContainer = styled.div`\n display: flex;\n flex: 1;\n padding: 12px 20px ${({ $isEmpty }) => ($isEmpty ? '12px' : '0')} 20px;\n background: ${({ theme }) => theme.colors.white};\n gap: 5px;\n`;\n\nconst BoxTitle = styled(BasicText)`\n font-weight: 600;\n text-transform: uppercase;\n`;\n\nconst StyledClipboard = styled(Clipboard)`\n display: flex;\n width: 100%;\n color: ${({ theme }) => theme.colors.blue};\n font-size: 1rem;\n font-weight: 600;\n line-height: 1.5rem; /* 150% */\n text-transform: uppercase;\n gap: 5px;\n\n &:hover {\n cursor: pointer;\n }\n`;\n\nconst LoadingBox = styled.div`\n margin-top: 10px;\n display: flex;\n width: 100%;\n justify-content: center;\n`;\n\nconst NoRecruitsText = styled(BasicText)`\n margin-top: 20px;\n font-size: 1.5rem;\n font-weight: 600;\n line-height: 2rem;\n`;\n\nconst Recruits = ({\n activity,\n phone,\n team,\n votingPlanReferralLink,\n votingPlanReferralLinkLoading,\n}) => {\n const { t } = useTranslation();\n const isMobile = useIsMobile();\n\n const {\n hasMore,\n items: recruits,\n loadMore,\n loading,\n initialLoading,\n } = toObject(\n usePaginatedApi(fanOut.getRecruits, null, {\n campaign_id: activity.campaign.id,\n phone,\n }),\n );\n\n useEffect(() => {\n if (initialLoading && !loading) {\n loadMore();\n }\n }, [initialLoading, loadMore, loading]);\n\n const showMobileShare = useMemo(() => navigator?.share, []);\n\n const mobileShare = useCallback(() => {\n const shareData = {\n text: t('check_registration.referral.fanOutVotingPLanMobileShareText'),\n title: activity.title,\n url: votingPlanReferralLink,\n };\n if (navigator?.canShare && navigator.canShare(shareData) && navigator.share) {\n navigator.share(shareData).catch(err => {\n if (err.toString().includes('AbortError')) {\n // The share api throws this error when a user decides not to share.\n // It isn't a real error.\n return null;\n }\n sendError('FanOut Voter Registration: User encountered error while sharing', { err });\n });\n }\n }, [activity.title, votingPlanReferralLink, t]);\n\n const copyVotingReferralLink = useCallback(() => {\n amplitudeTrack({ activity, name: 'FAN_OUT_COPY_VOTING_PLAN_LINK', team });\n message.success(t('activity.share.copied_to_clipboard'));\n }, [t, activity, team]);\n\n const RecruitComponent = isMobile ? MobileRecruit : DesktopRecruit;\n\n return (\n <>\n <TitleWrapper>\n <Title>{t('fan_out.my_activity.recruits_title')}</Title>\n {isMobile &&\n (showMobileShare ? (\n <StyledButton onClick={mobileShare} variant=\"fan_out\">\n {t('fan_out.my_activity.share_voting_plan')}\n <ShareIcon fill={theme.colors.blue} />\n </StyledButton>\n ) : (\n <Clipboard\n component=\"span\"\n data-clipboard-text={votingPlanReferralLink}\n onSuccess={copyVotingReferralLink}\n >\n <StyledButton onClick={null} variant=\"fan_out\">\n {t('fan_out.my_activity.copy_voting_plan')}\n <Copy fill={theme.colors.blue} />\n </StyledButton>\n </Clipboard>\n ))}\n </TitleWrapper>\n <Wrapper>\n {!isMobile && (\n <TopContainer $isEmpty={recruits.length === 0}>\n <BoxTitle style={flex[0]}>{t('fan_out.my_activity.recruit')}</BoxTitle>\n <BoxTitle style={flex[1]}>{t('fan_out.my_activity.voting_status')}</BoxTitle>\n <StyledClipboard\n component=\"span\"\n data-clipboard-text={votingPlanReferralLink}\n onSuccess={copyVotingReferralLink}\n style={flex[2]}\n >\n {t('fan_out.my_activity.voting_plan')}\n <Tooltip title={t('fan_out.my_activity.voting_plan_tooltip')}>\n <Copy />\n </Tooltip>\n </StyledClipboard>\n <BoxTitle style={flex[3]}>\n {t('fan_out.my_activity.entries_earned', { count: 0 })}\n </BoxTitle>\n <BoxTitle style={flex[4]}>{t('fan_out.my_activity.sweepstakes')}</BoxTitle>\n </TopContainer>\n )}\n <InfiniteScroll\n initialLoad={false}\n pageStart={0}\n threshold={0}\n loadMore={loadMore}\n hasMore={!loading && hasMore}\n >\n {recruits.map(item => (\n <RecruitComponent key={item.id} recruit={item} />\n ))}\n {(loading || votingPlanReferralLinkLoading) && (\n <LoadingBox>\n <Loading />\n </LoadingBox>\n )}\n {recruits.length === 0 && !loading && !votingPlanReferralLinkLoading && (\n <LoadingBox>\n <NoRecruitsText>{t('fan_out.my_activity.no_recruits')}</NoRecruitsText>\n </LoadingBox>\n )}\n </InfiniteScroll>\n </Wrapper>\n </>\n );\n};\n\nRecruits.propTypes = {\n activity: PropTypes.object.isRequired,\n phone: PropTypes.string.isRequired,\n team: PropTypes.object,\n votingPlanReferralLink: PropTypes.string,\n votingPlanReferralLinkLoading: PropTypes.bool,\n};\n\nRecruits.defaultProps = {};\n\nexport default Recruits;\n","import { useEffect, useState, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { message } from 'antd';\nimport { useDispatch } from 'react-redux';\nimport axios from 'axios';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { useCookies } from 'react-cookie';\n\nimport {\n setContactFormResult,\n setIsCheckedVoterRegistration,\n} from '@web/reducers/voterRegistration';\nimport Status from '@web/constants/contactRegistrationStatusTypes';\n\nimport { fanOut } from '@web/services/api';\n\nexport const useMyStats = ({\n activity_id,\n campaign_id,\n state,\n isGetReferral,\n isCheckedVoterRegistration,\n contactFormResult,\n}) => {\n const { t } = useTranslation();\n const [statsLoading, setStatsLoading] = useState(false);\n const [myStats, setMyStats] = useState({\n contact: null,\n entries: 0,\n isOwnVotingPlanCompleted: false,\n recruits: 0,\n status: '',\n });\n\n useEffect(() => {\n if (!contactFormResult?.phone || statsLoading || state) return;\n\n setStatsLoading(true);\n fanOut\n .getMyStats({ activity_id, campaign_id, phone: contactFormResult.phone })\n .then(({ data }) => {\n setMyStats({\n contact: data,\n entries: data.entries_earned,\n isOwnVotingPlanCompleted: data.own_voting_plan_completed,\n recruits: data.recruits_count,\n status: data.latest_registration_status,\n });\n })\n .catch(error => {\n message.error(\n error?.response?.data?.message || error?.message || t('common.something_went_wrong'),\n );\n console.error(error);\n })\n .finally(() => setStatsLoading(false));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n contactFormResult,\n activity_id,\n campaign_id,\n state,\n isGetReferral,\n isCheckedVoterRegistration,\n t,\n ]);\n\n return { myStats, statsLoading };\n};\n\nexport const useRestoreContact = ({ activitySlug, campaignSlug, activity, referralHash }) => {\n const [isRestoringContact, setIsRestoringContact] = useState(false);\n const [isFanOutReferralFlow, setIsFanOutReferralFlow] = useState(false);\n const dispatch = useDispatch();\n const [cookies] = useCookies();\n\n const fanOutCookies = useMemo(() => cookies?.fan_out_auth, [cookies?.fan_out_auth]);\n\n useEffect(() => {\n if (isRestoringContact) return;\n\n setIsRestoringContact(true);\n // get data from local storage\n const contact = JSON.parse(localStorage.getItem('fan_out_contact'));\n const activities = JSON.parse(localStorage.getItem('fan_out_contact_activities') || '[]');\n // find current activity in local storage\n const localActivity = activities.find(\n a => activity.id === a.id && activity.campaign.id === a.campaign.id,\n );\n\n // find current activity in cookies\n const cookiesActivity = fanOutCookies?.[0]?.activities?.find(\n // convert activity_id and campaign_id to number for correct comparison\n a => activity.id === Number(a.activity_id) && activity.campaign.id === Number(a.campaign_id),\n );\n\n // always use cookies data if it exists\n const restoredActivity = fanOutCookies ? cookiesActivity : localActivity;\n\n // restore data from local storage if contact exists\n if (contact) {\n dispatch(\n setContactFormResult({\n activity,\n contact: {\n ...contact,\n referral_link: restoredActivity?.referral_link || null,\n registration_status: restoredActivity?.registration_status || Status.UNCONFIRMED,\n },\n }),\n );\n dispatch(setIsCheckedVoterRegistration(!!restoredActivity?.registration_status));\n }\n // add timeout to give time to dispatch to update states\n setTimeout(() => {\n setIsRestoringContact(false);\n if (!!referralHash && !restoredActivity?.registration_status) {\n setIsFanOutReferralFlow(true);\n }\n }, 300);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activitySlug, campaignSlug, activity]);\n\n return { isFanOutReferralFlow, isRestoringContact };\n};\n\nexport const useGetVotingPlanReferralLink = ({ campaignId, phone }) => {\n const [votingPlanReferralLink, setVotingPlanReferralLink] = useState('');\n const [votingPlanReferralLinkLoading, setVotingPlanReferralLinkLoading] = useState(false);\n\n useEffect(() => {\n if (!campaignId || !phone) return;\n\n setVotingPlanReferralLinkLoading(true);\n\n fanOut\n .getVotingPlanReferralLink({ campaign_id: campaignId, phone })\n .then(({ data }) => {\n setVotingPlanReferralLink(data.url);\n })\n .finally(() => setVotingPlanReferralLinkLoading(false));\n }, [campaignId, phone]);\n\n return { votingPlanReferralLink, votingPlanReferralLinkLoading };\n};\n\nexport const useGetReferrer = ({ activitySlug, campaignSlug, referralHash }) => {\n const [referrerLoading, setReferrerLoading] = useState(false);\n const [referrer, setReferrer] = useState(null);\n\n useEffect(() => {\n if (referralHash) {\n setReferrerLoading(true);\n\n axios\n .get(\n `/api/v2/client/voter_registrations/campaigns/${campaignSlug}/referrer/${referralHash}`,\n )\n .then(({ data }) => {\n setReferrer(data);\n })\n .finally(() => setReferrerLoading(false));\n }\n }, [activitySlug, campaignSlug, referralHash]);\n\n return { referrer, referrerLoading };\n};\n\nexport const useMyActivityRedirect = () => {\n const history = useHistory();\n const { search } = useLocation();\n\n const queryParams = useMemo(() => new URLSearchParams(search), [search]);\n const tabParam = useMemo(() => queryParams.get('tab'), [queryParams]);\n\n useEffect(() => {\n if (tabParam === 'activity') {\n queryParams.delete('tab');\n history.replace({\n search: queryParams.toString(),\n state: 'activity',\n });\n }\n\n return;\n }, [tabParam, queryParams, history]);\n};\n\nexport const useClearStateOnReload = () => {\n const history = useHistory();\n\n useEffect(() => {\n const isOnIOS = navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/iPhone/i);\n const eventName = isOnIOS ? 'onpagehide' : 'onbeforeunload';\n\n window[eventName] = () => history.replace({ state: '' });\n\n return () => (window[eventName] = null);\n }, [history]);\n};\n","import React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useSelector } from 'react-redux';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { useCookies } from 'react-cookie';\n\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport StatusBox from '@web/components/FanOut/components/StatusBox';\nimport EntriesBoxes from '@web/components/FanOut/components/EntriesBoxes';\nimport Recruits from '@web/components/FanOut/components/Recruits';\n\nimport { useMyStats, useGetVotingPlanReferralLink } from '@web/components/FanOut/hooks/useFanOut';\nimport { useTrackFanOut } from '@web/components/FanOut/hooks/useFanOutAmplitude';\n\nconst Wrapper = styled.div`\n background: ${({ theme }) => theme.colors.whiteSmoke};\n width: 100%;\n display: flex;\n flex: 1;\n padding: 40px 48px;\n flex-direction: column;\n\n ${smallBreakpoint} {\n padding: 20px;\n }\n`;\n\nconst MyActivity = ({ activity, openFriendSearchModal, team, openVoterModal }) => {\n const history = useHistory();\n const { search } = useLocation();\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n const localContact = JSON.parse(localStorage.getItem('fan_out_contact'));\n const [cookies] = useCookies();\n\n useTrackFanOut({ activity, name: 'FAN_OUT_MY_ACTIVITY', team });\n\n const fanOutCookies = useMemo(() => cookies?.fan_out_auth, [cookies?.fan_out_auth]);\n\n const phone = useMemo(\n () => contactFormResult?.phone || localContact?.phone,\n [contactFormResult?.phone, localContact?.phone],\n );\n\n const { myStats, statsLoading } = useMyStats({\n campaign_id: activity.campaign.id,\n contactFormResult,\n });\n\n const { votingPlanReferralLink, votingPlanReferralLinkLoading } = useGetVotingPlanReferralLink({\n campaignId: activity.campaign.id,\n phone,\n });\n\n useEffect(() => {\n // return to main page if user tries to access my activity without phone & email verification\n if (!phone || !fanOutCookies) {\n history.replace({ search, state: '' });\n }\n }, [phone, search, history, fanOutCookies]);\n\n return (\n <Wrapper>\n <StatusBox\n myStats={myStats}\n myStatsIsLoading={statsLoading}\n activity={activity}\n team={team}\n openVoterModal={openVoterModal}\n />\n <EntriesBoxes\n openFriendSearchModal={openFriendSearchModal}\n myStats={myStats}\n myStatsIsLoading={statsLoading}\n votingPlanReferralLink={votingPlanReferralLink}\n votingPlanReferralLinkLoading={votingPlanReferralLinkLoading}\n />\n {!!phone && !!fanOutCookies && (\n <Recruits\n activity={activity}\n phone={phone}\n team={team}\n votingPlanReferralLink={votingPlanReferralLink}\n votingPlanReferralLinkLoading={votingPlanReferralLinkLoading}\n />\n )}\n </Wrapper>\n );\n};\n\nMyActivity.propTypes = {\n activity: PropTypes.object.isRequired,\n openFriendSearchModal: PropTypes.func.isRequired,\n openVoterModal: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nMyActivity.defaultProps = {\n team: null,\n};\n\nexport default MyActivity;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { animated, useSpring } from 'react-spring';\nimport { largeBreakpoint } from '../breakpoints';\nimport { vrDefaultColors } from '@web/styles/theme';\n\nconst Wrapper = styled.div`\n background-color: ${({ $isFanOut, $progressColor }) =>\n $isFanOut ? '#f0fafb' : `${$progressColor ?? vrDefaultColors.buttonColor}40`};\n border-radius: ${({ $height }) => $height / 2}px;\n display: flex;\n height: ${({ $height }) => $height}px;\n margin-bottom: 20px;\n margin-right: ${({ $isIframe }) => ($isIframe ? '0' : '30px')};\n overflow: hidden;\n ${largeBreakpoint} {\n margin-right: 0;\n margin-bottom: 25px;\n }\n`;\n\nconst StyledProgressBar = styled(animated.div)`\n background-color: ${({ $isFanOut, theme, $progressColor }) =>\n $isFanOut ? theme.colors.newBlue : $progressColor ?? vrDefaultColors.progressBarColor};\n border-radius: ${({ $height }) => $height / 2}px;\n height: ${({ $height }) => $height}px;\n`;\n\nfunction ProgressBar({ height, progress, isFanOut, progressColor, isIframe }) {\n const width = Math.ceil(progress * 100);\n const style = useSpring({\n width: `${width || 0}%`,\n });\n\n const errorMsg = `<ProgressBar /> progress prop requires a range between 0 and 1, received: ${progress}`;\n if (progress < 0 || progress > 1) {\n console.error(errorMsg);\n return null;\n }\n\n return (\n <Wrapper\n $isIframe={isIframe}\n $isFanOut={isFanOut}\n $progressColor={progressColor}\n $height={height}\n >\n <StyledProgressBar\n $height={height}\n $isFanOut={isFanOut}\n style={style}\n $progressColor={progressColor}\n />\n </Wrapper>\n );\n}\n\nProgressBar.propTypes = {\n height: PropTypes.number,\n isFanOut: PropTypes.bool,\n isIframe: PropTypes.bool,\n progress: PropTypes.number.isRequired,\n progressColor: PropTypes.string,\n};\n\nProgressBar.defaultProps = {\n height: 7,\n};\n\nexport default ProgressBar;\n","import { useEffect, useMemo } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom/cjs/react-router-dom.min';\nimport i18n, { setAppLanguage } from '../i18n';\n\nconst useSpecificTranslation = () => {\n const { search, pathname } = useLocation();\n const history = useHistory();\n const query = useMemo(() => new URLSearchParams(search), [search]);\n const defaultLanguage = useMemo(() => {\n const defaultValue = query.get('language');\n if (!['en', 'es'].includes(defaultValue)) {\n return 'en';\n }\n return defaultValue;\n }, [query]);\n\n useEffect(() => {\n if (i18n.language !== defaultLanguage) {\n const url = new URL(window.location.href);\n url.searchParams.set('language', defaultLanguage);\n history.replace(`${pathname}?${url.searchParams.toString()}`);\n setAppLanguage(defaultLanguage, true);\n }\n }, [defaultLanguage, history, pathname]);\n};\n\nexport default useSpecificTranslation;\n","import React, { useEffect, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport { useDispatch } from 'react-redux';\n\nimport Layout from './newComponents/Layout';\nimport Modal from './newComponents/Modal';\nimport ProgressBar from './newComponents/ProgressBar';\n\nimport { track } from '@web/services/analytics';\nimport { setSelectedVoter, setIsRegistrationRecheck } from '@web/reducers/voterRegistration';\nimport useFlows, {\n defaultFlow,\n helpOthers,\n fanOutRegistration,\n friendLookUp,\n} from './hooks/useFlows';\nimport useIsMobile from './hooks/useIsMobile';\nimport useSpecificTranslation from './useSpecificTranslation';\nimport { vrDefaultColors } from '@web/styles/theme';\nimport styled from 'styled-components';\n\nimport queryString from 'query-string';\nimport { useLocation } from 'react-router-dom';\n\nconst StyledModal = styled(Modal)`\n * {\n font-family: ${({ $font }) => ($font === 'default' ? 'unset' : $font)};\n }\n`;\n\nconst VoterRegistration = ({\n activity,\n closeModal,\n modalReferralOpen,\n modalVoterOpen,\n team,\n isFanOut,\n modalFriendSearchOpen,\n referrer,\n}) => {\n const { currentPage, isReferralFlow, selectedFlow, ...flowProps } = useFlows();\n const { contactFormResult, isRegistrationRecheck } = useSelector(\n state => state.voterRegistration,\n );\n const dispatch = useDispatch();\n const isMobile = useIsMobile();\n const { search } = useLocation();\n\n const { isIframe } = queryString.parse(search);\n\n // Handle default translation language\n useSpecificTranslation();\n\n React.useEffect(() => {\n if (modalFriendSearchOpen) {\n flowProps.setSelectedFlow(friendLookUp);\n }\n // MTS - We can't pass flowProps into the dep array because it will break the navigation.\n // eslint-disable-next-line\n }, [modalFriendSearchOpen]);\n\n React.useEffect(() => {\n if (modalReferralOpen) {\n flowProps.setSelectedFlow(helpOthers);\n // We want to go to the \"Share\" page (2) directly if the registration form was already filled and submitted\n const goToPage = !contactFormResult?.referral_link ? 1 : 2;\n flowProps.setCurrentPage(goToPage);\n }\n // MTS - We can't pass flowProps into the dep array because it will break the navigation.\n // eslint-disable-next-line\n }, [modalReferralOpen]);\n\n useEffect(() => {\n if (isFanOut && modalVoterOpen) {\n flowProps.setSelectedFlow(referrer ? helpOthers : fanOutRegistration);\n }\n // We can't pass flowProps into the dep array because it will break the navigation.\n // eslint-disable-next-line\n }, [isFanOut, modalVoterOpen, referrer]);\n\n function checkReferralFlow() {\n if (modalReferralOpen) {\n return true;\n }\n if (isReferralFlow) {\n return true;\n }\n return false;\n }\n\n const handleClose = useCallback(() => {\n if (!isFanOut) {\n track('VR_MODAL_CLOSED', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n }\n flowProps.setCurrentPage(0);\n flowProps.setSelectedFlow(defaultFlow);\n closeModal();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const pageProps = {\n activity,\n handleClose,\n isFanOut,\n referrer,\n team,\n ...flowProps,\n };\n\n const CurrentPage = selectedFlow[currentPage];\n\n const referralFlowActive = checkReferralFlow();\n const modalOpen = useMemo(\n () => modalReferralOpen || modalVoterOpen || modalFriendSearchOpen,\n [modalReferralOpen, modalVoterOpen, modalFriendSearchOpen],\n );\n const hideProgress = useMemo(\n () => (currentPage !== 0 && referralFlowActive) || modalFriendSearchOpen,\n [currentPage, referralFlowActive, modalFriendSearchOpen],\n );\n const secondaryCloseButton = useMemo(() => hideProgress && isMobile, [hideProgress, isMobile]);\n const isCommonVRFlow = useMemo(\n () => !isFanOut && !activity.campaign?.headcount_registration_enabled,\n [activity, isFanOut],\n );\n const isCommonVRChooseFlow = useMemo(\n () => isCommonVRFlow && currentPage === 0 && modalVoterOpen,\n [isCommonVRFlow, currentPage, modalVoterOpen],\n );\n\n const closeHandler = useCallback(() => {\n // HR - clear voter if not on last page (not a VoterInformation modal) for fan out voter modal\n if (selectedFlow.length - 1 !== currentPage && !modalFriendSearchOpen && isFanOut) {\n dispatch(setSelectedVoter(null));\n }\n // if modal is fan out and recheck flow is active, set isRegistrationRecheck to false on close\n if (isFanOut && isRegistrationRecheck) {\n dispatch(setIsRegistrationRecheck(false));\n }\n handleClose();\n }, [\n handleClose,\n dispatch,\n currentPage,\n selectedFlow,\n modalFriendSearchOpen,\n isFanOut,\n isRegistrationRecheck,\n ]);\n\n const isIframeBool = useMemo(() => isIframe === 'true', [isIframe]);\n\n return (\n <StyledModal\n closeModal={closeHandler}\n modalOpen={modalOpen}\n secondaryCloseButton={secondaryCloseButton}\n isFanOut={isFanOut}\n isCommonVRChooseFlow={isCommonVRChooseFlow}\n activity={activity}\n isIframe={isIframeBool}\n $font={activity.settings.font}\n >\n <Layout>\n {!hideProgress && (\n <ProgressBar\n progressColor={activity.settings.progress_bar_color ?? vrDefaultColors.progressBarColor}\n progress={(currentPage + 1) / selectedFlow.length}\n isFanOut={isFanOut}\n isIframe={isIframeBool}\n />\n )}\n <CurrentPage {...pageProps} isCommonVRFlow={isCommonVRFlow} />\n </Layout>\n </StyledModal>\n );\n};\n\nVoterRegistration.propTypes = {\n activity: PropTypes.object.isRequired,\n closeModal: PropTypes.func.isRequired,\n isFanOut: PropTypes.bool,\n modalFriendSearchOpen: PropTypes.bool,\n modalReferralOpen: PropTypes.bool.isRequired,\n modalVoterOpen: PropTypes.bool.isRequired,\n referrer: PropTypes.object,\n team: PropTypes.object,\n};\n\nexport default VoterRegistration;\n","import { bool } from 'prop-types';\nimport React from 'react';\n\nconst Facebook = ({ isMobile, ...props }) => {\n return isMobile ? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={40}\n height={40}\n viewBox=\"0 0 40 40\"\n fill=\"none\"\n {...props}\n >\n <g clipPath=\"url(#a)\">\n <path fill=\"#3D5A98\" d=\"M0 0h40v40H0z\" />\n <path\n fill=\"#fff\"\n d=\"M27.025 39V24.17h4.806l.72-5.581h-5.526v-3.563c0-1.616.45-2.719 2.766-2.719h2.956v-5c-1.431-.149-2.87-.22-4.31-.212-4.256 0-7.187 2.594-7.187 7.378v4.116h-4.806v5.58h4.806v14.833h5.775Z\"\n />\n </g>\n <rect width={39} height={39} x={0.5} y={0.5} stroke=\"#fff\" strokeOpacity={0.2} rx={5.5} />\n <defs>\n <clipPath id=\"a\">\n <rect width={40} height={40} fill=\"#fff\" rx={6} />\n </clipPath>\n </defs>\n </svg>\n ) : (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n d=\"M20.9 2H3.1A1.1 1.1 0 0 0 2 3.1v17.8A1.1 1.1 0 0 0 3.1 22h9.58v-7.75h-2.6v-3h2.6V9a3.64 3.64 0 0 1 3.88-4 20.26 20.26 0 0 1 2.33.12v2.7H17.3c-1.26 0-1.5.6-1.5 1.47v1.93h3l-.39 3H15.8V22h5.1a1.102 1.102 0 0 0 1.1-1.1V3.1A1.101 1.101 0 0 0 20.9 2Z\"\n />\n </svg>\n );\n};\n\nFacebook.propTypes = {\n isMobile: bool,\n};\n\nFacebook.defaultProps = {};\n\nexport default Facebook;\n","import { bool } from 'prop-types';\nimport React from 'react';\n\nconst Instagram = ({ isMobile, ...props }) => {\n return isMobile ? (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={40} height={40} fill=\"none\" {...props}>\n <g clipPath=\"url(#a)\">\n <path fill=\"url(#b)\" d=\"M0 0h40v40H0z\" />\n <path fill=\"url(#c)\" d=\"M0 0h40v40H0z\" />\n <path\n fill=\"#fff\"\n d=\"M20.001 4.375c-4.243 0-4.776.019-6.442.094-1.664.077-2.8.34-3.793.726a7.65 7.65 0 0 0-2.768 1.802 7.67 7.67 0 0 0-1.803 2.768c-.388.993-.651 2.13-.726 3.792-.074 1.667-.094 2.2-.094 6.443 0 4.244.019 4.775.094 6.441.077 1.664.34 2.8.726 3.793.4 1.027.934 1.9 1.802 2.768a7.652 7.652 0 0 0 2.767 1.803c.995.386 2.13.65 3.793.726 1.667.076 2.2.094 6.443.094 4.243 0 4.774-.018 6.44-.094 1.664-.076 2.801-.34 3.795-.726a7.643 7.643 0 0 0 2.766-1.803 7.67 7.67 0 0 0 1.804-2.768c.384-.994.648-2.13.726-3.792.075-1.667.094-2.198.094-6.442 0-4.243-.02-4.776-.094-6.443-.078-1.663-.342-2.798-.726-3.792A7.669 7.669 0 0 0 33 6.997a7.633 7.633 0 0 0-2.767-1.802c-.996-.386-2.132-.65-3.795-.726-1.667-.075-2.198-.094-6.442-.094H20ZM18.6 7.191H20c4.172 0 4.667.015 6.314.09 1.524.07 2.35.324 2.901.538.73.283 1.25.621 1.796 1.169a4.85 4.85 0 0 1 1.17 1.796c.213.55.468 1.377.537 2.9.075 1.648.091 2.143.091 6.313s-.016 4.664-.09 6.311c-.07 1.524-.325 2.35-.539 2.9a4.831 4.831 0 0 1-1.169 1.796 4.832 4.832 0 0 1-1.796 1.168c-.55.215-1.377.47-2.9.539-1.648.075-2.143.091-6.315.091-4.172 0-4.666-.016-6.313-.091-1.524-.07-2.35-.325-2.902-.539a4.84 4.84 0 0 1-1.797-1.168 4.844 4.844 0 0 1-1.169-1.796c-.214-.55-.469-1.377-.538-2.9-.075-1.648-.09-2.143-.09-6.315 0-4.173.015-4.665.09-6.312.07-1.524.324-2.35.538-2.901a4.84 4.84 0 0 1 1.17-1.797 4.847 4.847 0 0 1 1.796-1.17c.551-.214 1.378-.468 2.902-.538 1.441-.065 2-.085 4.912-.088v.004Zm9.742 2.594a1.875 1.875 0 1 0 0 3.751 1.875 1.875 0 0 0 0-3.751Zm-8.34 2.19a8.025 8.025 0 1 0 .001 16.05 8.025 8.025 0 0 0-.002-16.05Zm0 2.817a5.208 5.208 0 1 1 0 10.416 5.208 5.208 0 0 1 0-10.416Z\"\n />\n </g>\n <rect width={39} height={39} x={0.5} y={0.5} stroke=\"#fff\" strokeOpacity={0.2} rx={5.5} />\n <defs>\n <radialGradient\n id=\"b\"\n cx={0}\n cy={0}\n r={1}\n gradientTransform=\"matrix(0 -39.643 36.8711 0 10.625 43.08)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FD5\" />\n <stop offset={0.1} stopColor=\"#FD5\" />\n <stop offset={0.5} stopColor=\"#FF543E\" />\n <stop offset={1} stopColor=\"#C837AB\" />\n </radialGradient>\n <radialGradient\n id=\"c\"\n cx={0}\n cy={0}\n r={1}\n gradientTransform=\"matrix(3.47805 17.37593 -71.62425 14.33664 -6.7 2.881)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#3771C8\" />\n <stop offset={0.128} stopColor=\"#3771C8\" />\n <stop offset={1} stopColor=\"#60F\" stopOpacity={0} />\n </radialGradient>\n <clipPath id=\"a\">\n <rect width={40} height={40} fill=\"#fff\" rx={6} />\n </clipPath>\n </defs>\n </svg>\n ) : (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" {...props}>\n <g clipPath=\"url(#a)\">\n <path\n fill=\"#fff\"\n d=\"M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63a5.876 5.876 0 0 0-2.126 1.384A5.855 5.855 0 0 0 .63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913.301.8.774 1.526 1.384 2.126.6.61 1.325 1.083 2.126 1.384.766.296 1.636.499 2.913.558C8.333 23.988 8.74 24 12 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558a5.898 5.898 0 0 0 2.126-1.384 5.86 5.86 0 0 0 1.384-2.126c.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913a5.89 5.89 0 0 0-1.384-2.126A5.847 5.847 0 0 0 19.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0Zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85 0 3.204-.015 3.585-.074 4.85-.061 1.17-.256 1.805-.421 2.227a3.81 3.81 0 0 1-.899 1.382c-.388.397-.86.703-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421a3.716 3.716 0 0 1-1.379-.899 3.644 3.644 0 0 1-.9-1.38c-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06l.045.03Zm0 3.678a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324ZM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4Zm7.846-10.405a1.441 1.441 0 0 1-2.88 0 1.44 1.44 0 1 1 2.88 0Z\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M0 0h24v24H0z\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n\nInstagram.propTypes = {\n isMobile: bool,\n};\n\nInstagram.defaultProps = {};\n\nexport default Instagram;\n","import { bool } from 'prop-types';\nimport React from 'react';\n\nconst Threads = ({ isMobile, ...props }) => {\n return isMobile ? (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={40} height={40} fill=\"none\" {...props}>\n <g clipPath=\"url(#a)\">\n <path fill=\"#000\" d=\"M0 0h40v40H0z\" />\n <path\n fill=\"#fff\"\n fillRule=\"evenodd\"\n d=\"M20.54 11.96c-2.587 0-4.457.79-5.875 2.815 0 0 1.683 1.168 2.188 1.505l.06-.068c.724-.84 1.347-1.56 3.625-1.56 2.555 0 3.564 2.046 3.564 3.24-.692-.14-2.017-.215-3.117-.215-2.938 0-6.657 1.42-6.657 5.34 0 2.745 2.617 4.84 5.65 4.84 5.204 0 6.39-3.892 6.832-6.204.117 0 2.383 1.29 2.383 3.987 0 3.962-3.883 6.667-9.09 6.667-6.33 0-10.556-4.125-10.556-11.892 0-8.662 3.78-12.732 10.468-12.732 4.043 0 8.455 1.02 10.56 7.42l2.55-.66C30.405 5.455 23.168 5 20.082 5 13.402 5 6.875 8.815 6.875 19.99c0 11.235 6.74 15.01 13.227 15.01 7.555 0 11.73-4.422 11.73-9.515 0-2.395-1.145-4.485-3.224-5.883a9.85 9.85 0 0 0-1.695-.907c-.146-2.128-.778-3.793-1.886-4.957-1.11-1.163-2.662-1.778-4.487-1.778Zm.803 8.395c-3.826 0-4.318 1.63-4.318 2.655 0 1.648 1.953 2.193 2.998 2.193 1.91 0 3.875-.53 4.184-4.545-.97-.218-1.692-.303-2.864-.303Z\"\n clipRule=\"evenodd\"\n />\n </g>\n <rect width={39} height={39} x={0.5} y={0.5} stroke=\"#fff\" strokeOpacity={0.2} rx={5.5} />\n <defs>\n <clipPath id=\"a\">\n <rect width={40} height={40} fill=\"#fff\" rx={6} />\n </clipPath>\n </defs>\n </svg>\n ) : (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={24} height={24} fill=\"none\" {...props}>\n <path\n fill=\"#fff\"\n d=\"M17.692 11.123a8.398 8.398 0 0 0-.315-.142c-.185-3.414-2.05-5.368-5.182-5.388h-.042c-1.873 0-3.431.8-4.39 2.255l1.722 1.181c.716-1.087 1.84-1.318 2.669-1.318h.028c1.031.006 1.81.306 2.313.89.367.426.612 1.015.733 1.757a13.176 13.176 0 0 0-2.96-.143c-2.977.172-4.892 1.909-4.763 4.322.065 1.223.675 2.277 1.717 2.964.88.582 2.015.866 3.194.802 1.558-.085 2.78-.68 3.632-1.766.647-.825 1.056-1.894 1.237-3.241.742.448 1.292 1.037 1.596 1.745.516 1.205.546 3.184-1.068 4.797-1.415 1.414-3.116 2.025-5.686 2.044-2.851-.02-5.008-.935-6.41-2.717-1.313-1.67-1.991-4.08-2.016-7.165.025-3.085.703-5.496 2.016-7.165 1.402-1.782 3.558-2.696 6.41-2.717 2.871.02 5.065.94 6.521 2.73.714.879 1.252 1.983 1.607 3.27l2.018-.538c-.43-1.585-1.107-2.95-2.027-4.083C18.38 1.2 15.65.024 12.134 0h-.014C8.61.024 5.912 1.205 4.099 3.51c-1.614 2.05-2.446 4.904-2.474 8.482v.016c.028 3.578.86 6.431 2.474 8.482 1.813 2.305 4.511 3.486 8.02 3.51h.015c3.12-.022 5.319-.838 7.13-2.649 2.371-2.368 2.3-5.336 1.518-7.158-.56-1.307-1.629-2.368-3.09-3.07Zm-5.387 5.065c-1.305.074-2.66-.512-2.728-1.766-.05-.93.662-1.969 2.808-2.092.246-.015.487-.021.724-.021.78 0 1.508.075 2.171.22-.247 3.088-1.697 3.59-2.975 3.66Z\"\n />\n </svg>\n );\n};\n\nThreads.propTypes = {\n isMobile: bool,\n};\n\nThreads.defaultProps = {};\n\nexport default Threads;\n","import React, { useMemo } from 'react';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\n\nimport ImpactiveButton from '@web/components/ImpactiveButton';\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport useIsMobile from '@web/components/VoterRegistration/hooks/useIsMobile';\nimport FanOutLogoIcon from '@web/components/FanOut/components/icons/FanOutLogo';\nimport DonateButton from '@web/components/FanOut/components/DonateButton';\nimport Facebook from '@web/components/FanOut/components/icons/Facebook';\nimport Instagram from '@web/components/FanOut/components/icons/Instagram';\nimport Threads from '@web/components/FanOut/components/icons/Threads';\nimport theme from '@web/styles/theme';\n\nconst StyledFooter = styled.footer`\n bottom: 0;\n z-index: 99;\n /* position: sticky; */\n width: 100%;\n display: flex;\n background: ${({ theme }) => theme.colors.blue};\n padding: 24px 40px;\n justify-content: space-between;\n align-items: center;\n flex-shrink: 0;\n flex-wrap: wrap;\n gap: 20px;\n\n ${smallBreakpoint} {\n flex-direction: column;\n align-items: flex-start;\n padding: 30px 20px;\n }\n`;\n\nconst LogoContent = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 13px;\n min-width: 300px;\n`;\n\nconst FanOutLogo = styled(FanOutLogoIcon)`\n width: 161px;\n height: 31px;\n`;\n\nconst RightsText = styled.div`\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.regular};\n text-align: justify;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem; /* 150% */\n`;\n\nconst ContactContent = styled.div`\n display: flex;\n align-items: flex-end;\n gap: 80px;\n flex-wrap: wrap;\n\n ${smallBreakpoint} {\n flex-direction: column;\n align-items: flex-start;\n gap: 20px;\n }\n`;\n\nconst MediaContent = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n`;\n\nconst MediaTitle = styled.div`\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1.125rem;\n font-weight: 700;\n line-height: 1.5rem; /* 133.333% */\n`;\n\nconst StyledHref = styled.a`\n :link {\n text-decoration: none;\n }\n`;\n\nconst StyledImpactiveButton = styled(ImpactiveButton)`\n border-radius: 4px;\n background: #303648;\n padding: 6px 13px;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.5rem;\n color: ${({ theme }) => theme.colors.white};\n text-transform: lowercase;\n\n ${smallBreakpoint} {\n width: calc(100vw - 40px);\n }\n`;\n\nconst SocialContent = styled.div`\n display: flex;\n align-items: flex-start;\n gap: 8px;\n`;\n\nconst IconLink = styled.a`\n display: flex;\n width: 48px;\n height: 48px;\n justify-content: center;\n align-items: center;\n border-radius: 4px;\n border: 1px solid ${({ theme }) => theme.colors.gray};\n\n ${smallBreakpoint} {\n justify-content: flex-start;\n align-items: flex-start;\n border: 0px;\n }\n\n :link {\n text-decoration: none;\n }\n\n :hover,\n :focus,\n .active {\n opacity: 0.5;\n }\n`;\n\nconst Footer = () => {\n const { t } = useTranslation();\n const isMobile = useIsMobile();\n\n const currentYear = new Date().getFullYear();\n\n const SOCIALS = useMemo(\n () => [\n { icon: <Facebook isMobile={isMobile} />, link: 'https://www.facebook.com/fanout.vote' },\n { icon: <Instagram isMobile={isMobile} />, link: 'https://www.instagram.com/fanout.vote/' },\n { icon: <Threads isMobile={isMobile} />, link: 'https://www.threads.net/@fanout.vote' },\n ],\n [isMobile],\n );\n\n return (\n <StyledFooter>\n <LogoContent>\n <FanOutLogo fill={theme.colors.white} />\n <RightsText>{t('fan_out.footer.rights', { year: currentYear })}</RightsText>\n </LogoContent>\n <ContactContent $isMobile={isMobile}>\n <MediaContent $isButtonCover>\n <MediaTitle>{t('fan_out.footer.contact_us')}</MediaTitle>\n <StyledHref target=\"_blank\" href=\"mailto:team@fanout.vote\" type=\"primary\">\n <StyledImpactiveButton>team@fanout.vote</StyledImpactiveButton>\n </StyledHref>\n </MediaContent>\n <MediaContent $isButtonCover>\n <MediaTitle>{t('fan_out.footer.support_us')}</MediaTitle>\n <DonateButton $isFooter />\n </MediaContent>\n <MediaContent>\n <MediaTitle>{t('fan_out.footer.social')}</MediaTitle>\n <SocialContent>\n {SOCIALS.map(({ icon, link }, index) => (\n <IconLink\n $isMobile={isMobile}\n key={index}\n target=\"_blank\"\n href={link}\n rel=\"noopener noreferrer\"\n >\n {icon}\n </IconLink>\n ))}\n </SocialContent>\n </MediaContent>\n </ContactContent>\n </StyledFooter>\n );\n};\n\nFooter.propTypes = {};\n\nFooter.defaultProps = {};\n\nexport default Footer;\n","import React, { useState, useCallback, useMemo, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\nimport { useLocation, useParams } from 'react-router-dom';\nimport queryString from 'query-string';\nimport { LoadingOutlined } from '@ant-design/icons';\nimport { Spin } from 'antd';\nimport { useSelector } from 'react-redux';\n\nimport Header from '@web/components/FanOut/components/Header';\nimport ScrollToTop from '@web/components/DialerActivity/components/ScrollToTop';\nimport FanOutActivity from '@web/components/FanOut/components/FanOutActivity';\nimport Terms from '@web/components/FanOut/components/Terms';\nimport AllSweepstakes from '@web/components/FanOut/components/AllSweepstakes';\nimport MyActivity from '@web/components/FanOut/components/MyActivity';\nimport VoterRegistration from '@web/components/VoterRegistration';\nimport Footer from '@web/components/FanOut/components/Footer';\nimport {\n useMyStats,\n useRestoreContact,\n useGetReferrer,\n useMyActivityRedirect,\n} from '@web/components/FanOut/hooks/useFanOut';\nimport { useTrackFanOut, amplitudeTrack } from '@web/components/FanOut/hooks/useFanOutAmplitude';\nimport { trackPageViewWithDynamicIDs } from '@web/services/analytics';\n\nconst StyledFanOutActivity = styled.div`\n min-height: 100vh;\n flex-direction: column;\n display: flex;\n background: ${({ $color }) =>\n $color\n ? $color\n : css`radial-gradient(\n 64.5% 64.52% at 97.64% 1.3%,\n rgba(197, 55, 94, 0.2) 0%,\n rgba(197, 55, 94, 0) 100%\n ),\n radial-gradient(\n 66.22% 90.3% at 98.11% 98.85%,\n rgba(140, 205, 217, 0.2) 0%,\n rgba(140, 205, 217, 0) 100%\n ),\n radial-gradient(\n 64.49% 126.95% at 0% 100%,\n rgba(184, 59, 201, 0.2) 0%,\n rgba(184, 59, 201, 0) 100%\n ),\n radial-gradient(\n 86.75% 134.97% at 0% 0%,\n rgba(152, 204, 201, 0.2) 0%,\n rgba(152, 204, 201, 0) 100%\n ),\n radial-gradient(\n 53.76% 53.76% at 50% 46.24%,\n rgba(225, 159, 83, 0.2) 0%,\n rgba(225, 159, 83, 0) 100%\n ),\n #fff;`};\n`;\n\nconst FanOut = ({ activity, team }) => {\n const { activitySlug, campaignSlug } = useParams();\n const { search, state } = useLocation();\n const { referral_hash: referralHash, start } = queryString.parse(search);\n const [showReferralModal, setShowReferralModal] = useState(false);\n const [showVoterModal, setShowVoterModal] = useState(start === '1');\n const [showFriendSearchModal, setShowFriendSearchModal] = useState(false);\n\n const { contactFormResult, isCheckedVoterRegistration } = useSelector(\n state => state.voterRegistration,\n );\n\n const isGetReferral = useMemo(\n () => contactFormResult.referral_link,\n [contactFormResult.referral_link],\n );\n\n useMyActivityRedirect();\n\n const { myStats, statsLoading } = useMyStats({\n activity_id: activity?.id,\n campaign_id: activity?.campaign?.id,\n contactFormResult,\n isCheckedVoterRegistration,\n isGetReferral,\n state,\n });\n\n // restore contact data from local storage\n const { isRestoringContact, isFanOutReferralFlow } = useRestoreContact({\n activity,\n activitySlug,\n campaignSlug,\n referralHash,\n team,\n });\n\n useTrackFanOut({\n activity,\n name: referralHash ? 'FAN_OUT_ACTIVITY_REFERRED' : 'FAN_OUT_ACTIVITY',\n team,\n });\n\n React.useEffect(() => {\n trackPageViewWithDynamicIDs({\n fbPixelId: activity?.settings?.pixel_fb_id,\n gaTrackingId: activity?.settings?.pixel_ga_id,\n gtmPixelId: activity?.settings?.pixel_gtm_id,\n snapchatPixelId: activity?.settings?.pixel_sc_id,\n });\n }, [\n activity?.settings?.pixel_fb_id,\n activity?.settings?.pixel_ga_id,\n activity?.settings?.pixel_gtm_id,\n activity?.settings?.pixel_sc_id,\n ]);\n\n const { referrer, referrerLoading } = useGetReferrer({\n activitySlug,\n campaignSlug,\n referralHash,\n });\n\n useEffect(() => {\n if (isFanOutReferralFlow) {\n setShowVoterModal(true);\n }\n }, [isFanOutReferralFlow]);\n\n const openVoterModal = useCallback(() => setShowVoterModal(true), []);\n\n const openReferralModal = useCallback(() => setShowReferralModal(true), []);\n\n const openFriendSearchModal = useCallback(() => {\n amplitudeTrack({ activity, name: 'FAN_OUT_FRIEND_LOOK_UP', team });\n setShowFriendSearchModal(true);\n }, [activity, team]);\n\n const closeModal = useCallback(() => {\n setShowReferralModal(false);\n setShowVoterModal(false);\n setShowFriendSearchModal(false);\n }, []);\n\n if (referrerLoading || isRestoringContact) {\n return (\n <div className=\"flex-row justify-content-center mt-4\">\n <Spin indicator={<LoadingOutlined style={{ fontSize: 24 }} spin />} />\n </div>\n );\n }\n\n return (\n <StyledFanOutActivity $color={activity?.settings?.background_color}>\n <Header activity={activity} team={team} />\n <ScrollToTop />\n {state === 'terms' ? (\n <Terms activity={activity} team={team} />\n ) : state === 'activity' ? (\n <MyActivity\n activity={activity}\n team={team}\n openFriendSearchModal={openFriendSearchModal}\n openVoterModal={openVoterModal}\n />\n ) : state === 'sweepstakes' ? (\n <AllSweepstakes activity={activity} referrer={referrer} team={team} />\n ) : (\n <FanOutActivity\n activity={activity}\n closeModal={closeModal}\n modalVoterOpen={showVoterModal}\n modalReferralOpen={showReferralModal}\n openVoterModal={openVoterModal}\n openReferralModal={openReferralModal}\n myStats={myStats}\n statsLoading={statsLoading}\n team={team}\n isFanOut\n />\n )}\n <VoterRegistration\n activity={activity}\n closeModal={closeModal}\n modalVoterOpen={showVoterModal}\n modalReferralOpen={showReferralModal}\n modalFriendSearchOpen={showFriendSearchModal}\n openVoterModal={openVoterModal}\n openReferralModal={openReferralModal}\n referrer={referrer}\n team={team}\n isFanOut\n />\n {!!state && <Footer activity={activity} team={team} />}\n </StyledFanOutActivity>\n );\n};\n\nFanOut.propTypes = {\n activity: PropTypes.object.isRequired,\n team: PropTypes.object,\n};\n\nFanOut.defaultProps = {\n team: null,\n};\n\nexport default FanOut;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst VotingPlan = props => {\n const { type, isMobile } = props;\n\n if (type === 'primary') {\n return isMobile ? (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={186} height={14} fill=\"none\" {...props}>\n <path\n stroke=\"#FFD54F\"\n strokeLinecap=\"round\"\n strokeWidth={4}\n d=\"M2 12C59.623 4.094 163.778-3.811 184 8.047\"\n />\n </svg>\n ) : (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={312} height={18} fill=\"none\" {...props}>\n <path\n stroke=\"#FFD54F\"\n strokeLinecap=\"round\"\n strokeWidth={4}\n d=\"M2 16C99.515 4.932 275.778-6.136 310 10.466\"\n />\n </svg>\n );\n } else if (type === 'secondary') {\n return isMobile ? (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={151} height={14} fill=\"none\" {...props}>\n <path\n stroke=\"#FFD54F\"\n strokeLinecap=\"round\"\n strokeWidth={4}\n d=\"M2 12C48.541 4.094 132.667-3.811 149 8.047\"\n />\n </svg>\n ) : (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={251} height={18} fill=\"none\" {...props}>\n <path\n stroke=\"#FFD54F\"\n strokeLinecap=\"round\"\n strokeWidth={4}\n d=\"M2 16C80.202 4.932 221.556-6.136 249 10.466\"\n />\n </svg>\n );\n } else return null;\n};\n\nVotingPlan.propTypes = {\n isMobile: PropTypes.bool,\n type: PropTypes.oneOf(['primary', 'secondary']),\n};\n\nVotingPlan.defaultProps = {\n type: 'primary',\n};\n\nexport default VotingPlan;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport FanOutLogo from '@web/components/FanOut/components/icons/FanOutLogo';\nimport VotingPlanUnderline from '@web/components/FanOut/components/icons/VotingPlan';\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport theme from '@web/styles/theme';\nimport useIsMobile from '@web/components/VoterRegistration/hooks/useIsMobile';\n\nconst Wrapper = styled.div`\n display: flex;\n max-width: 500px;\n min-width: 370px;\n\n ${smallBreakpoint} {\n width: 100%;\n max-width: unset;\n min-width: unset;\n }\n`;\n\nconst VotingPlan = styled.div`\n display: flex;\n flex: 1;\n flex-direction: column;\n border-radius: 16px;\n padding: 34px 28px;\n max-width: 500px;\n height: calc(100vh - 64px);\n width: 100%;\n border-radius: 0.75rem;\n border: 2px solid ${({ theme }) => theme.colors.blue};\n background: radial-gradient(\n 64.5% 64.52% at 97.64% 1.3%,\n rgba(197, 55, 94, 0.2) 0%,\n rgba(197, 55, 94, 0) 100%\n ),\n radial-gradient(\n 66.22% 90.3% at 98.11% 98.85%,\n rgba(140, 205, 217, 0.2) 0%,\n rgba(140, 205, 217, 0) 100%\n ),\n radial-gradient(\n 64.49% 126.95% at 0% 100%,\n rgba(184, 59, 201, 0.2) 0%,\n rgba(184, 59, 201, 0) 100%\n ),\n radial-gradient(\n 86.75% 134.97% at 0% 0%,\n rgba(152, 204, 201, 0.2) 0%,\n rgba(152, 204, 201, 0) 100%\n ),\n radial-gradient(\n 53.76% 53.76% at 50% 46.24%,\n rgba(225, 159, 83, 0.2) 0%,\n rgba(225, 159, 83, 0) 100%\n ),\n #fff;\n box-shadow: 4px 4px 0px 0px #23293e;\n\n ${smallBreakpoint} {\n width: 100%;\n max-width: unset;\n min-width: unset;\n height: unset;\n padding: 20px;\n }\n`;\n\nconst StyledFanOutLogo = styled(FanOutLogo)`\n width: 107px;\n height: 20px;\n`;\n\nconst TitleWrapper = styled.div`\n margin-top: 76px;\n\n ${smallBreakpoint} {\n margin-top: 23px;\n }\n`;\n\nconst TitleText = styled.div`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 3rem;\n line-height: 4rem;\n position: relative;\n\n ${smallBreakpoint} {\n font-size: 1.75rem;\n line-height: 2.25rem; /* 128.571% */\n }\n`;\n\nconst StyledVotingPlanUnderline = styled(VotingPlanUnderline)`\n position: absolute;\n bottom: -10px;\n left: -5px;\n`;\n\nconst DescriptionText = styled.div`\n margin-top: 40px;\n color: ${({ theme }) => theme.colors.blackL32};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem; /* 150% */\n\n span {\n display: block;\n margin-top: 1.5rem;\n\n ${smallBreakpoint} {\n margin-top: 0.5rem;\n }\n }\n\n ${smallBreakpoint} {\n margin-top: 20px;\n font-size: 0.875rem;\n line-height: 1.5rem; /* 171.429% */\n }\n`;\n\nconst CreateVotingPlan = ({ referrer }) => {\n const { t } = useTranslation();\n const isMobile = useIsMobile();\n\n return (\n <Wrapper>\n <VotingPlan>\n <StyledFanOutLogo fill={theme.colors.trueBlack} />\n <TitleWrapper>\n <TitleText>{t('fan_out.voting_plan.create_voting_plan.create')}</TitleText>\n <TitleText>\n {t('fan_out.voting_plan.create_voting_plan.voting_plan')}\n <StyledVotingPlanUnderline isMobile={isMobile} />\n </TitleText>\n </TitleWrapper>\n <DescriptionText>\n {t('fan_out.voting_plan.create_voting_plan.plan')}\n <span>{t('fan_out.voting_plan.create_voting_plan.creating')}</span>\n </DescriptionText>\n </VotingPlan>\n </Wrapper>\n );\n};\n\nCreateVotingPlan.propTypes = {\n referrer: PropTypes.shape({\n fullname: PropTypes.string,\n id: PropTypes.number,\n }),\n};\n\nCreateVotingPlan.defaultProps = {};\n\nexport default CreateVotingPlan;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { animated, useSpring } from 'react-spring';\nimport { largeBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\n\nconst Wrapper = styled.div`\n background-color: #f0fafb;\n border-radius: ${({ $height }) => $height / 2}px;\n display: flex;\n height: ${({ $height }) => $height}px;\n margin-bottom: 20px;\n overflow: hidden;\n ${largeBreakpoint} {\n margin-bottom: 36px;\n }\n`;\n\nconst StyledProgressBar = styled(animated.div)`\n background-color: ${({ theme }) => theme.colors.newBlue};\n border-radius: ${({ $height }) => $height / 2}px;\n height: ${({ $height }) => $height}px;\n`;\n\nconst ProgressBar = ({ height, progress }) => {\n const width = Math.ceil(progress * 100);\n const style = useSpring({\n width: `${width || 0}%`,\n });\n\n const errorMsg = `<ProgressBar /> progress prop requires a range between 0 and 1, received: ${progress}`;\n if (progress < 0 || progress > 1) {\n console.error(errorMsg);\n return null;\n }\n\n return (\n <Wrapper $height={height}>\n <StyledProgressBar $height={height} style={style} />\n </Wrapper>\n );\n};\n\nProgressBar.propTypes = {\n height: PropTypes.number,\n progress: PropTypes.number.isRequired,\n};\n\nProgressBar.defaultProps = {\n height: 7,\n};\n\nexport default ProgressBar;\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\n\nconst Wrapper = styled.div`\n display: flex;\n align-items: flex-start;\n gap: 20px;\n`;\n\nconst Box = styled.div`\n display: flex;\n width: 3.75rem;\n height: 3.75rem;\n justify-content: center;\n align-items: center;\n border-radius: 4px;\n border: 1.067px solid ${({ theme }) => theme.colors.darkBlue};\n background: ${({ theme }) => theme.colors.white};\n box-shadow: 4.267px 4.267px 0px 0px ${({ theme }) => theme.colors.darkBlue};\n`;\n\nconst Icon = styled.div`\n color: ${({ theme }) => theme.colors.darkBlue};\n font-size: 2rem;\n font-weight: 700;\n line-height: 2rem; /* 100% */\n`;\n\nconst TextWrapper = styled.div`\n width: calc(100% - 3.75rem - 20px); // 3.75rem is the width of the Box component\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n gap: 8px;\n min-height: 58px;\n`;\n\nconst Title = styled.div`\n color: ${({ theme }) => theme.colors.darkBlue};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1.75rem;\n line-height: 2rem; /* 114.286% */\n\n ${smallBreakpoint} {\n font-size: 1.25rem;\n line-height: 1.5rem; /* 120% */\n }\n`;\n\nexport const IconBox = ({ icon }) => {\n return (\n <Box>\n <Icon>{icon}</Icon>\n </Box>\n );\n};\n\nconst PageTitle = ({ icon, title, descriptionComponent }) => {\n return (\n <Wrapper>\n <IconBox icon={icon} />\n <TextWrapper>\n <Title>{title}</Title>\n {descriptionComponent && descriptionComponent}\n </TextWrapper>\n </Wrapper>\n );\n};\n\nIconBox.propTypes = {\n icon: PropTypes.string.isRequired,\n};\n\nPageTitle.propTypes = {\n descriptionComponent: PropTypes.node,\n icon: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n};\n\nPageTitle.defaultProps = {};\n\nexport default PageTitle;\n","import React from 'react';\n\nimport * as yup from 'yup';\nimport { HomeFilled, MailFilled, PhoneFilled } from '@ant-design/icons';\nimport i18n from '@web/components/i18n';\nimport Icon from '@web/components/common/Icon';\nimport dayjs from 'dayjs';\n\nconst { t } = i18n;\n\nconst PHONE_REGEX = /^(\\1)?[0-9]{11}$/;\nconst ZIP_REGEX = /^\\d{5}$/;\n\nexport const handleErrorMessage = err => {\n return err?.response?.data?.message || err?.message || t('common.something_went_wrong');\n};\n\nexport const availableQuestions = [\n 'first_name',\n 'last_name',\n 'email',\n 'zip_code',\n 'phone',\n 'date_of_birth',\n];\n\nexport const getInitialFormValues = (formAttributes, formVPAnswers = {}) => {\n // Base form questions from the availableQuestions array above\n const questionEntries = availableQuestions\n .filter(question => !!formAttributes?.[question])\n .map(q => formatContactFields(q, formVPAnswers));\n\n return Object.fromEntries([...questionEntries]);\n};\n\nexport const getInitialQuestionValues = (activityQuestions, VPAnswers = []) => {\n // Additional `question_answers` field for activity questions\n\n const questionAnswersField = activityQuestions.map(question => {\n const answers = Object.entries(question.answer_mappings)\n .map(([key, value]) => ({ ...value, key }))\n .sort((a, b) => a.position - b.position);\n\n const value = VPAnswers?.find(answer => answer.activity_question_id === question.id)?.value;\n\n return {\n activity_question_id: question.id,\n possible_answers: answers,\n question_position: question.position,\n value: value || '',\n };\n });\n\n return Object.fromEntries([['question_answers', questionAnswersField]]);\n};\n\nconst formatContactFields = (question, formVPAnswers) => {\n if (formVPAnswers?.[question]) {\n if (question === 'phone') {\n return [question, formVPAnswers?.[question].replace(/\\D/g, '')];\n }\n\n return [question, formVPAnswers?.[question]];\n }\n\n return [question, question === 'date_of_birth' ? null : ''];\n};\n\nexport const getValidationFormSchema = formAttributes => {\n const questionEntries = availableQuestions\n .filter(question => !!formAttributes?.[question])\n .map(question => [question, requiredFieldsProps?.[question].validation]);\n\n return yup.object().shape(Object.fromEntries([...questionEntries]));\n};\n\nexport const getValidationQuestionsSchema = activityQuestions => {\n // Not all activity questions are required, so we need to dynamically build the validation schema for each question\n const questionAnswersValidation = yup.array().of(\n yup.lazy(value => {\n const question = activityQuestions.find(\n question => question.id === value?.activity_question_id,\n );\n\n // We shouldn't be running into this, but if we do it most likely means there\n // is a gap in the question positions that should be sequential.\n if (!question) {\n throw new Error('Question not found.');\n }\n\n return yup.object().shape({\n activity_question_id: yup.number().required(),\n value: question.required\n ? yup.string().required('âš This is a required question!')\n : yup.string(),\n });\n }),\n );\n\n return yup.object().shape(Object.fromEntries([['question_answers', questionAnswersValidation]]));\n};\n\nexport const requiredFieldsProps = {\n date_of_birth: {\n label: t('idvoters.labels.date_of_birth'),\n placeholder: t('idvoters.labels.date_of_birth'),\n prefix: <HomeFilled />,\n validation: yup\n .date()\n .typeError(i18n.t('idvoters.validation.valid_dob'))\n .nullable()\n .required('Date of Birth is required.')\n .min(dayjs().subtract(120, 'year'), i18n.t('idvoters.validation.valid_dob'))\n .max(dayjs().subtract(15, 'year'), i18n.t('idvoters.validation.max_date', { age: 16 })),\n },\n email: {\n label: t('placeholders.email'),\n placeholder: t('placeholders.default_email'),\n prefix: <MailFilled />,\n validation: yup\n .string()\n .email(t('check_registration.invalid_email'))\n .nullable()\n .required(t('idvoters.validation.emailRequired')),\n },\n first_name: {\n label: t('placeholders.first_name'),\n placeholder: t('idvoters.labels.firstname'),\n prefix: <Icon name=\"UserFilled\" />,\n validation: yup.string().nullable().required(t('idvoters.validation.firstname')),\n },\n last_name: {\n label: t('placeholders.last_name'),\n placeholder: t('placeholders.last_name'),\n prefix: <Icon name=\"UserFilled\" />,\n validation: yup.string().nullable().required(t('idvoters.validation.lastname')),\n },\n phone: {\n label: t('placeholders.phone'),\n placeholder: '(555) 345-6789',\n prefix: <PhoneFilled />,\n validation: yup\n .string()\n .matches(PHONE_REGEX, 'Phone number is not valid.')\n .required(t('idvoters.validation.phoneRequired')),\n },\n zip_code: {\n label: t('idvoters.labels.zip'),\n placeholder: t('idvoters.labels.zip'),\n prefix: <HomeFilled />,\n validation: yup\n .string()\n .matches(ZIP_REGEX, 'Zip code is not valid.')\n .nullable()\n .required('Zip code is required.'),\n },\n};\n\nexport const handleDisabledAnswers = (target, setDisabledAnswers) => {\n const { answerPosition, questionPosition } = target;\n\n // first index is the question position in the list (0, 1, 2) // questionPosition\n // second index is the answer position under the question [0, 1, 2] // answerPosition\n\n // for example: {0: [1], 1: [], 2: [0, 1]} disables second answer of the first question, nothing for the second question and first and second answers of the third question\n\n if (questionPosition === 0 && answerPosition === 0) {\n // picked first answer of the second question\n const alsoPicked10 =\n target.values.question_answers[1].value ===\n target.values.question_answers[1].possible_answers[0].key;\n // picked second answer of the second question\n const alsoPicked11 =\n target.values.question_answers[1].value ===\n target.values.question_answers[1].possible_answers[1].key;\n\n setDisabledAnswers(disabledAnswers => ({\n ...disabledAnswers,\n // disable first and third answers of the third question if first answer of the second question is picked\n // disable first and second answers of the third question if second answer of the second question is picked\n // disable first answer of the third question if nothing is picked from the second question\n 2: alsoPicked10 ? [0, 2] : alsoPicked11 ? [0, 1] : [0],\n }));\n }\n\n if (questionPosition === 0 && answerPosition === 1) {\n setDisabledAnswers(disabledAnswers => ({\n ...disabledAnswers,\n // disable second and third answers of the third question\n 2: [1, 2],\n }));\n }\n\n if (questionPosition === 1 && answerPosition === 0) {\n // picked first answer of the first question\n const alsoPicked00 =\n target.values.question_answers[0].value ===\n target.values.question_answers[0].possible_answers[0].key;\n setDisabledAnswers(disabledAnswers => ({\n ...disabledAnswers,\n // disable first ans third answer of the third question if first answer of the first question is picked\n // else disable third answer of the third question\n 2: alsoPicked00 ? [0, 2] : [2],\n }));\n }\n\n if (questionPosition === 1 && answerPosition === 1) {\n // picked first answer of the first question\n const alsoPicked00 =\n target.values.question_answers[0].value ===\n target.values.question_answers[0].possible_answers[0].key;\n // picked second answer of the first question\n const alsoPicked01 =\n target.values.question_answers[0].value ===\n target.values.question_answers[0].possible_answers[1].key;\n\n setDisabledAnswers(disabledAnswers => ({\n ...disabledAnswers,\n // disable first ans second answer of the third question if first answer of the first question is picked\n // disable second and third answers of the third question if second answer of the first question is picked\n // disable second answer of the third question if nothing is picked from the first question\n 2: alsoPicked00 ? [0, 1] : alsoPicked01 ? [1, 2] : [1],\n }));\n }\n\n if (questionPosition === 2 && answerPosition === 0) {\n setDisabledAnswers(disabledAnswers => ({\n ...disabledAnswers,\n // disable first answer of the first question\n 0: [0],\n // unable all answers of the second question\n 1: [],\n }));\n }\n\n if (questionPosition === 2 && answerPosition === 1) {\n setDisabledAnswers(disabledAnswers => ({\n ...disabledAnswers,\n // disable second answer of the first question\n 0: [1],\n // unable all answers of the second question\n 1: [1],\n }));\n }\n\n if (questionPosition === 2 && answerPosition === 2) {\n setDisabledAnswers(disabledAnswers => ({\n ...disabledAnswers,\n // disable second answer of the first question\n 0: [1],\n // disable first answer of the second question\n 1: [0],\n }));\n }\n};\n\nexport const getTableText = () => {\n const data = t('fan_out.voting_plan.results.table', { returnObjects: true });\n\n const translations = Object.values(data).map(({ democrat, republican, title }) => {\n return {\n democrat: {\n ...democrat,\n examples: Object.values(democrat.examples),\n },\n republican: {\n ...republican,\n examples: Object.values(republican.examples),\n },\n title,\n };\n });\n return translations;\n};\n","import React, { useMemo } from 'react';\nimport styled, { css } from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { Button } from 'antd';\n\nconst StyledButton = styled(Button)`\n // compensation for transition\n margin-left: 4px;\n ${({ $isMobile, $topCompensation }) =>\n ($isMobile || $topCompensation) &&\n css`\n margin-top: -4px;\n `}\n\n &&& {\n display: flex;\n padding: 4px;\n justify-content: center;\n align-items: center;\n justify-self: center;\n align-self: center;\n gap: 8px;\n border-radius: 8px;\n height: 64px;\n color: ${({ theme }) => theme.colors.darkBlue};\n font-family: ${({ theme }) => theme.fonts.regular};\n text-align: center;\n font-size: 1rem;\n font-weight: 700;\n line-height: 1.25rem; /* 125% */\n letter-spacing: 0.03125rem;\n }\n\n ${({ $type }) => {\n switch ($type) {\n case 'submit':\n return css`\n &&& {\n width: 244px;\n border: 1px solid ${({ theme }) => theme.colors.darkBlue};\n background: ${({ theme }) => theme.colors.newBlue};\n }\n `;\n case 'back':\n return css`\n &&& {\n width: 140px;\n border: 1px solid #d0d5dd;\n background: ${({ theme }) => theme.colors.white};\n }\n `;\n default:\n return css``;\n }\n }}\n\n &:active {\n ${({ disabled }) =>\n !disabled &&\n css`\n margin: -4px 4px 0px 0px;\n box-shadow: 4px 4px 0px 0px ${({ theme }) => theme.colors.darkBlue};\n `}\n }\n\n &:hover {\n ${({ disabled }) =>\n !disabled &&\n css`\n margin: -4px 4px 0px 0px;\n box-shadow: 4px 4px 0px 0px ${({ theme }) => theme.colors.darkBlue};\n `}\n }\n\n ${({ disabled }) =>\n disabled &&\n css`\n cursor: not-allowed;\n opacity: 0.5;\n `}\n\n ${({ $isMobile }) =>\n $isMobile &&\n css`\n &&& {\n width: 100%;\n }\n `}\n`;\n\nconst VotingPlanButton = ({ onClick, text, icon, type, isMobile, topCompensation, ...rest }) => {\n const content = useMemo(\n () =>\n type === 'back' ? (\n <>\n {icon}\n {text}\n </>\n ) : (\n <>\n {text}\n {icon}\n </>\n ),\n [type, text, icon],\n );\n\n if (!text) return null;\n\n return (\n <StyledButton\n onClick={onClick}\n $type={type}\n $isMobile={isMobile}\n $topCompensation={topCompensation}\n {...rest}\n >\n {content}\n </StyledButton>\n );\n};\n\nVotingPlanButton.propTypes = {\n icon: PropTypes.node,\n isMobile: PropTypes.bool,\n onClick: PropTypes.func,\n text: PropTypes.string,\n topCompensation: PropTypes.bool,\n type: PropTypes.oneOf(['submit', 'back']),\n};\n\nVotingPlanButton.defaultProps = {\n type: 'submit',\n};\n\nexport default VotingPlanButton;\n","import React, { useMemo } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport VotingPlanButton from '@web/components/FanOutVotingPlan/components/VotingPlanButton';\nimport {\n smallBreakpoint,\n small800Breakpoint,\n} from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport { useIs800 } from '@web/components/VoterRegistration/hooks/useIsMobile';\n\nconst ButtonsWrapper = styled.div`\n display: flex;\n width: 100%;\n margin-top: 32px;\n flex-direction: row-reverse;\n justify-content: space-between;\n\n ${smallBreakpoint} {\n margin-top: 24px;\n }\n\n ${small800Breakpoint} {\n flex-direction: column;\n gap: 12px;\n }\n`;\n\nconst ButtonsSection = ({ nextButtonProps, prevButtonProps }) => {\n const isMobile = useIs800();\n\n const showPreviousButton = useMemo(\n () => prevButtonProps?.onClick && prevButtonProps?.text,\n [prevButtonProps],\n );\n\n return (\n <ButtonsWrapper>\n <VotingPlanButton {...nextButtonProps} isMobile={isMobile} />\n {showPreviousButton && (\n <VotingPlanButton {...prevButtonProps} type={'back'} isMobile={isMobile} />\n )}\n </ButtonsWrapper>\n );\n};\n\nButtonsSection.propTypes = {\n nextButtonProps: PropTypes.shape({\n disabled: PropTypes.bool,\n htmlType: PropTypes.string,\n icon: PropTypes.node,\n onClick: PropTypes.func,\n text: PropTypes.string,\n }),\n prevButtonProps: PropTypes.shape({\n disabled: PropTypes.bool,\n htmlType: PropTypes.string,\n icon: PropTypes.node,\n onClick: PropTypes.func,\n text: PropTypes.string,\n }),\n};\n\nButtonsSection.defaultProps = {};\n\nexport default ButtonsSection;\n","import React from 'react';\nimport { bool, string } from 'prop-types';\n\nimport InputMask from 'react-input-mask';\nimport { ErrorMessage, Field } from 'formik';\nimport { CalendarFilled } from '@ant-design/icons';\n\nimport theme from '@web/styles/theme';\nimport styled, { css } from 'styled-components';\n\nconst Wrapper = styled.div``;\n\nexport const Label = styled.div`\n margin-bottom: 5px;\n text-transform: ${({ $textTransform }) => $textTransform ?? 'uppercase'};\n font-size: 0.875rem;\n ${({ $labelFontColor }) => css`\n color: ${$labelFontColor ?? theme.colors.black};\n font-family: ${theme.fonts.bold};\n `}\n`;\n\nexport const StyledErrorMessage = styled(ErrorMessage).attrs({ component: 'div' })`\n color: #ea5156;\n font-size: 12px;\n margin-top: 4px;\n`;\n\nconst StyledField = styled(Field)`\n &&& {\n border: 1px solid ${({ $outlineColor }) => $outlineColor ?? '#d9d9d9'};\n background-color: ${({ $backgroundColor }) => $backgroundColor ?? theme.colors.alabaster};\n border-radius: 6px;\n padding: ${({ $hidePrefix }) => ($hidePrefix ? '10px 14px 12px' : '10px 14px 12px 42px')};\n color: ${({ $fontColor }) => $fontColor ?? theme.colors.black};\n width: 100%;\n height: 42px;\n font-size: 14px;\n\n ::placeholder {\n color: #707070;\n opacity: 1;\n }\n\n &:hover {\n border: 1px solid #40a9ff;\n }\n\n &:focus-visible {\n outline: 0;\n border-right-width: 1px !important;\n border: 1px solid #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n }\n\n svg {\n color: ${({ $outlineColor }) => $outlineColor ?? theme.colors.gray};\n }\n\n input {\n background-color: ${({ $backgroundColor }) => $backgroundColor ?? theme.colors.alabaster};\n color: ${({ $fontColor }) => $fontColor ?? theme.colors.black};\n\n ::placeholder {\n color: ${({ $outlineColor }) => $outlineColor ?? theme.colors.gray};\n }\n }\n\n .ant-input-prefix {\n margin-right: 12px;\n }\n }\n`;\n\nconst StyledInputMast = styled(InputMask)`\n &&& {\n color: ${({ $fontColor }) => $fontColor ?? theme.colors.black};\n\n background: ${({ $backgroundColor }) => $backgroundColor ?? theme.colors.alabaster};\n\n -webkit-background-clip: text !important;\n background-clip: text !important;\n box-shadow: 0 0 0 30px ${({ $backgroundColor }) => $backgroundColor ?? theme.colors.alabaster}\n inset !important;\n -webkit-box-shadow: 0 0 0 30px\n ${({ $backgroundColor }) => $backgroundColor ?? theme.colors.alabaster} inset !important;\n -webkit-autofill:first-line {\n color: ${({ $backgroundColor }) => $backgroundColor ?? theme.colors.alabaster};\n }\n\n ::placeholder {\n color: ${({ $outlineColor }) => $outlineColor ?? theme.colors.blackL72} !important;\n }\n }\n`;\n\nexport const Relative = styled.div`\n position: relative;\n\n svg path {\n fill: ${({ $iconColor }) => $iconColor ?? theme.colors.gray};\n }\n`;\n\nexport const IconWrapper = styled.div`\n display: inline-flex;\n left: 16px;\n position: absolute;\n top: 50%;\n transform: translateY(-55%);\n`;\n\nconst FormDatePicker = ({\n name,\n label,\n backgroundColor,\n fontColor,\n labelFontColor,\n outlineColor,\n textTransform,\n mask,\n hidePrefix,\n ...rest\n}) => {\n return (\n <Wrapper>\n <Label $labelFontColor={labelFontColor} $textTransform={textTransform}>\n {label}\n </Label>\n <Relative $iconColor={outlineColor}>\n <StyledInputMast\n mask={mask ?? '99/99/9999'}\n name={name}\n $backgroundColor={backgroundColor}\n $fontColor={fontColor}\n $outlineColor={outlineColor}\n {...rest}\n >\n {inputProps => (\n <StyledField\n $hidePrefix={hidePrefix}\n $outlineColor={outlineColor}\n $backgroundColor={backgroundColor}\n $fontColor={fontColor}\n {...inputProps}\n name={name}\n />\n )}\n </StyledInputMast>\n {!hidePrefix && (\n <IconWrapper>\n <CalendarFilled />\n </IconWrapper>\n )}\n </Relative>\n <StyledErrorMessage data-testid={`${name}-error`} name={name} />\n </Wrapper>\n );\n};\n\nFormDatePicker.propTypes = {\n backgroundColor: string,\n fontColor: string,\n hidePrefix: bool,\n label: string,\n labelFontColor: string,\n mask: string,\n name: string.isRequired,\n outlineColor: string,\n placeholder: string,\n textTransform: string,\n value: string,\n};\n\nexport default FormDatePicker;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport 'react-phone-input-2/lib/style.css';\n\nimport FormInput from '@web/components/common/shared/FormInput';\nimport FormDatePicker from '@web/components/common/shared/FormDatePicker';\nimport PhoneNumberInput from '@web/components/common/shared/PhoneNumberInput';\nimport { availableQuestions, requiredFieldsProps } from '@web/components/FanOutVotingPlan/utils';\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport theme from '@web/styles/theme';\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n margin: 36px 0 24px 0;\n flex-wrap: wrap;\n gap: 24px;\n\n > div {\n flex: 1 1 calc(50% - 24px);\n min-width: 250px;\n }\n\n ${smallBreakpoint} {\n margin: 24px 0 18px 0;\n gap: 18px;\n }\n`;\n\nconst InfoFields = ({ initialValues, values, handleChange, setFieldValue }) => {\n const fields = useMemo(() => {\n const questionKeys = Object.keys(initialValues);\n return availableQuestions.filter(question => questionKeys.includes(question));\n }, [initialValues]);\n\n return (\n <Wrapper>\n {fields.map(field => {\n if (field === 'date_of_birth') {\n return (\n <FormDatePicker\n key={field}\n prefix={requiredFieldsProps[field]?.prefix}\n label={requiredFieldsProps[field]?.label}\n placeholder={requiredFieldsProps[field]?.placeholder}\n backgroundColor={theme.colors.background}\n textTransform=\"capitalize\"\n name={field}\n value={values[field]}\n onChange={e => setFieldValue(field, e.target.value)}\n />\n );\n }\n\n if (field === 'phone') {\n return (\n <PhoneNumberInput\n key={field}\n name={field}\n label={requiredFieldsProps[field]?.label}\n placeholder={requiredFieldsProps[field]?.placeholder}\n backgroundColor={theme.colors.background}\n textTransform=\"capitalize\"\n onChange={e => setFieldValue(field, e)}\n value={values[field]}\n prefixIcon={requiredFieldsProps[field]?.prefix}\n />\n );\n }\n\n return (\n <FormInput\n key={field}\n prefix={requiredFieldsProps[field]?.prefix}\n label={requiredFieldsProps[field]?.label}\n placeholder={requiredFieldsProps[field]?.placeholder}\n backgroundColor={theme.colors.background}\n textTransform=\"capitalize\"\n name={field}\n type={field === 'email' && 'email'}\n value={values[field]}\n onChange={handleChange}\n />\n );\n })}\n </Wrapper>\n );\n};\n\nInfoFields.propTypes = {\n handleChange: PropTypes.func.isRequired,\n initialValues: PropTypes.object.isRequired,\n setFieldValue: PropTypes.func.isRequired,\n values: PropTypes.object.isRequired,\n};\n\nexport default InfoFields;\n","import styled from 'styled-components';\n\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\n\nexport const Wrapper = styled.div`\n min-width: 480px;\n max-width: ${({ $maxWidth }) => $maxWidth || '800px'};\n width: 100%;\n min-height: calc(100vh - 190px);\n\n ${smallBreakpoint} {\n min-width: unset;\n max-width: unset;\n min-height: unset;\n display: flex;\n flex: 1;\n flex-direction: column;\n }\n`;\n\nexport const Content = styled.div`\n width: 100%;\n padding: 40px;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n border-radius: 12px;\n background: ${({ theme }) => theme.colors.white};\n\n ${smallBreakpoint} {\n padding: 20px;\n width: calc(100vw - 40px);\n }\n`;\n","import React, { useCallback } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { Form, Formik } from 'formik';\nimport { useTranslation } from 'react-i18next';\n\nimport ProgressBar from '@web/components/FanOutVotingPlan/components/ProgressBar';\nimport PageTitle from '@web/components/FanOutVotingPlan/components/PageTitle';\nimport {\n getInitialFormValues,\n getValidationFormSchema,\n} from '@web/components/FanOutVotingPlan/utils';\nimport ButtonsSection from '@web/components/FanOutVotingPlan/components/ButtonsSection';\nimport InfoFields from './InfoFields';\nimport { capitalize } from '@web/utils/string';\nimport { fanOut } from '@web/services/api';\nimport { Wrapper, Content } from '../styles';\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\n\nconst BottomText = styled.div`\n color: ${({ theme }) => theme.colors.blackL42};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 1.25rem; /* 142.857% */\n`;\n\nconst StyledForm = styled(Form)`\n ${smallBreakpoint} {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: space-between;\n }\n`;\n\nconst TellUs = ({\n progress,\n formAttributes,\n referrer,\n activity,\n referralHash,\n currentPage: { nextButtonText, nextIcon },\n onNextPage,\n setFormVPAnswers,\n formVPAnswers,\n onPreviousPage,\n}) => {\n const { t } = useTranslation();\n const initialValues = getInitialFormValues(formAttributes, formVPAnswers);\n const validationSchema = getValidationFormSchema(formAttributes);\n\n const onSubmit = useCallback(\n (values, { setSubmitting }) => {\n setSubmitting(true);\n fanOut\n .validateVoterRegistration({\n campaign_id: activity.campaign.id,\n email: values.email,\n phone: `+${values.phone}`,\n referral_hash: referralHash,\n })\n .then(({ data }) => {\n setFormVPAnswers(values);\n onNextPage();\n })\n .catch(err => {\n const errorType = err?.response?.data?.error_type;\n const referrer = err?.response?.data?.referral_name;\n\n onPreviousPage(errorType, referrer);\n })\n .finally(() => setSubmitting(false));\n },\n [activity.campaign.id, referralHash, onNextPage, setFormVPAnswers, onPreviousPage],\n );\n\n return (\n <Wrapper>\n <Formik\n onSubmit={onSubmit}\n initialValues={initialValues}\n validationSchema={validationSchema}\n render={({ values, handleChange, handleSubmit, isSubmitting, setFieldValue }) => (\n <StyledForm onSubmit={handleSubmit}>\n <Wrapper>\n <Content>\n <ProgressBar progress={progress} />\n <PageTitle icon={'👤'} title={t('fan_out.voting_plan.tell_us.tell')} />\n <InfoFields\n initialValues={initialValues}\n values={values}\n handleChange={handleChange}\n setFieldValue={setFieldValue}\n />\n <BottomText>\n {t('fan_out.voting_plan.tell_us.be_sure', {\n referrer: capitalize(referrer?.fullname || ''),\n })}\n </BottomText>\n </Content>\n </Wrapper>\n <ButtonsSection\n nextButtonProps={{\n disabled: isSubmitting,\n htmlType: 'submit',\n icon: nextIcon,\n text: nextButtonText,\n }}\n />\n </StyledForm>\n )}\n />\n </Wrapper>\n );\n};\n\nTellUs.propTypes = {\n activity: PropTypes.object.isRequired,\n currentPage: PropTypes.shape({\n nextButtonText: PropTypes.string,\n nextIcon: PropTypes.node,\n prevButtonText: PropTypes.string,\n prevIcon: PropTypes.node,\n }).isRequired,\n formAttributes: PropTypes.object.isRequired,\n formVPAnswers: PropTypes.object.isRequired,\n onNextPage: PropTypes.func.isRequired,\n onPreviousPage: PropTypes.func.isRequired,\n progress: PropTypes.number,\n referralHash: PropTypes.string.isRequired,\n referrer: PropTypes.shape({\n fullname: PropTypes.string,\n id: PropTypes.number,\n }),\n setFormVPAnswers: PropTypes.func.isRequired,\n sortedActivityQuestions: PropTypes.array.isRequired,\n};\n\nTellUs.defaultProps = {\n progress: 0,\n};\n\nexport default TellUs;\n","import React, { useMemo } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport { IconBox } from '@web/components/FanOutVotingPlan/components/PageTitle';\nimport VotingPlanButton from '@web/components/FanOutVotingPlan/components/VotingPlanButton';\nimport { useIs800 } from '@web/components/VoterRegistration/hooks/useIsMobile';\nimport { capitalize } from '@web/utils/string';\nimport { Wrapper } from '../styles';\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\n\nconst Content = styled.div`\n width: 100%;\n display: flex;\n padding: 80px 40px;\n flex-direction: column;\n align-items: center;\n border-radius: 12px;\n background: ${({ theme }) => theme.colors.white};\n\n ${smallBreakpoint} {\n padding: 60px 20px;\n }\n`;\n\nconst TitleText = styled.div`\n margin-top: 32px;\n padding: 0 60px;\n color: ${({ theme }) => theme.colors.darkBlue};\n font-family: ${({ theme }) => theme.fonts.bold};\n text-align: center;\n font-size: 1.75rem;\n line-height: 2rem; /* 114.286% */\n\n ${smallBreakpoint} {\n font-size: 1.25rem;\n line-height: 1.5rem; /* 120% */\n padding: 0;\n }\n`;\n\nconst BottomText = styled.div`\n margin: 20px 0 48px 0;\n color: ${({ theme }) => theme.colors.darkBlue};\n font-family: ${({ theme }) => theme.fonts.regular};\n text-align: center;\n font-size: 1.25rem;\n font-weight: 400;\n line-height: 2rem; /* 160% */\n\n ${smallBreakpoint} {\n font-size: 1rem;\n line-height: 1.5rem; /* 150% */\n margin: 16px 0 48px 0;\n }\n\n span {\n font-weight: 600;\n text-transform: capitalize;\n }\n`;\n\nconst Oops = ({ onNextPage, currentPage: { nextButtonText, nextIcon }, referrer, oopsType }) => {\n const { t } = useTranslation();\n const isMobile = useIs800();\n\n const titleText = useMemo(() => {\n switch (oopsType.errorType) {\n case 'other_recruiter':\n return t('fan_out.voting_plan.oops.title.other_recruiter');\n case 'already_completed':\n return t('fan_out.voting_plan.oops.title.already_completed');\n default:\n return t('fan_out.voting_plan.oops.title.common');\n }\n }, [oopsType, t]);\n\n const descriptionText = useMemo(() => {\n switch (oopsType.errorType) {\n case 'other_recruiter':\n return t('fan_out.voting_plan.oops.description.other_recruiter', {\n referrer: capitalize(oopsType.referrer),\n });\n case 'already_completed':\n return t('fan_out.voting_plan.oops.description.already_completed');\n default:\n return t('fan_out.voting_plan.oops.description.common', {\n referrer: capitalize(referrer?.fullname),\n });\n }\n }, [oopsType, t, referrer]);\n\n const hideNextButton = useMemo(\n () => ['other_recruiter', 'already_completed'].includes(oopsType.errorType),\n [oopsType],\n );\n\n return (\n <Wrapper>\n <Content>\n <IconBox icon=\"âš ï¸ï¸ï¸\" />\n <TitleText>{titleText}</TitleText>\n <BottomText dangerouslySetInnerHTML={{ __html: descriptionText }} />\n {!hideNextButton && (\n <VotingPlanButton\n onClick={onNextPage}\n text={nextButtonText}\n icon={nextIcon}\n isMobile={isMobile}\n topCompensation\n />\n )}\n </Content>\n </Wrapper>\n );\n};\n\nOops.propTypes = {\n currentPage: PropTypes.shape({\n index: PropTypes.number.isRequired,\n nextButtonText: PropTypes.string,\n nextIcon: PropTypes.node,\n prevButtonText: PropTypes.string,\n prevIcon: PropTypes.node,\n }).isRequired,\n onNextPage: PropTypes.func.isRequired,\n oopsType: PropTypes.shape({\n errorType: PropTypes.string,\n referrer: PropTypes.string,\n }),\n referrer: PropTypes.shape({\n fullname: PropTypes.string,\n id: PropTypes.number,\n }),\n};\n\nOops.defaultProps = {};\n\nexport default Oops;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\n\nconst Wrapper = styled.div`\n display: flex;\n width: 100%;\n padding: 8px 12px;\n align-items: flex-start;\n gap: 10px;\n align-self: stretch;\n border-radius: 8px;\n border-left: 3px solid rgba(246, 186, 31, 0.3);\n background: rgba(246, 186, 31, 0.1);\n`;\n\nconst Icon = styled.div`\n font-size: 0.9rem;\n`;\n\nconst TextWrapper = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst BaseText = styled.div`\n color: #67686e;\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 0.875rem;\n font-weight: 400;\n line-height: normal;\n`;\n\nconst Title = styled(BaseText)`\n color: #a17911;\n font-weight: 600;\n`;\n\nconst Description = styled(BaseText)`\n span {\n font-weight: 600;\n }\n`;\n\nconst getWarningMessage = (questionPosition, answerPosition, values, t) => {\n if (questionPosition === 0 && answerPosition === 0) {\n const proposedAnswer = values.question_answers[0].possible_answers[1].value;\n\n return {\n description: t('fan_out.voting_plan.how_will_you_vote.warnings.0.description', {\n proposedAnswer,\n }),\n states: t('fan_out.voting_plan.how_will_you_vote.warnings.0.states'),\n title: t('fan_out.voting_plan.how_will_you_vote.warnings.0.title'),\n };\n }\n if (questionPosition === 0 && answerPosition === 1) {\n const proposedAnswer = values.question_answers[0].possible_answers[0].value;\n\n return {\n description: t('fan_out.voting_plan.how_will_you_vote.warnings.1.description', {\n proposedAnswer,\n }),\n states: t('fan_out.voting_plan.how_will_you_vote.warnings.1.states'),\n title: t('fan_out.voting_plan.how_will_you_vote.warnings.1.title'),\n };\n }\n if (questionPosition === 1 && answerPosition === 0) {\n const proposedAnswer = values.question_answers[1].possible_answers[1].value;\n\n return {\n description: t('fan_out.voting_plan.how_will_you_vote.warnings.2.description', {\n proposedAnswer,\n }),\n states: t('fan_out.voting_plan.how_will_you_vote.warnings.2.states'),\n title: t('fan_out.voting_plan.how_will_you_vote.warnings.2.title'),\n };\n }\n\n return null;\n};\n\nconst WarningMessage = ({ questionPosition, answerPosition, picked, values }) => {\n const { t } = useTranslation();\n\n const warningMessage = useMemo(\n () => getWarningMessage(questionPosition, answerPosition, values, t),\n [questionPosition, answerPosition, values, t],\n );\n\n if (!picked || !warningMessage) return null;\n\n return (\n <Wrapper>\n <Icon>{'âš ï¸'}</Icon>\n <TextWrapper>\n <Title>{warningMessage.title}</Title>\n <Description>\n {warningMessage.description}\n <span>{warningMessage.states}</span>\n </Description>\n </TextWrapper>\n </Wrapper>\n );\n};\n\nWarningMessage.propTypes = {\n answerPosition: PropTypes.number.isRequired,\n picked: PropTypes.bool.isRequired,\n questionPosition: PropTypes.number.isRequired,\n values: PropTypes.object.isRequired,\n};\n\nexport default WarningMessage;\n","import { Radio, Space } from 'antd';\nimport { CheckOutlined } from '@ant-design/icons';\nimport React, { Fragment, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { StyledErrorMessage } from '@web/components/common/shared/FormInput';\nimport WarningMessage from './WarningMessage';\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\n\nconst Wrapper = styled.div`\n transition: all 300ms ease-in-out;\n`;\n\nconst StyledRadioGroup = styled(Radio.Group)`\n &&& {\n display: flex;\n width: 100%;\n flex-direction: column;\n }\n`;\n\nconst StyledRadio = styled(Radio)`\n &&& {\n padding: 16px;\n width: 100%;\n white-space: normal;\n &:hover {\n cursor: unset;\n }\n\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem;\n\n ${smallBreakpoint} {\n font-size: 0.875rem;\n line-height: 1.25rem; /* 142.857% */\n }\n\n .ant-radio-inner {\n border-color: ${({ theme }) => theme.colors.blackL42};\n }\n .ant-radio-checked .ant-radio-inner {\n border-color: ${({ theme }) => theme.colors.black} !important;\n }\n\n .ant-radio-inner:after {\n background-color: ${({ theme }) => theme.colors.black};\n width: 12px;\n height: 12px;\n margin-top: -2px;\n margin-left: -2px;\n border-radius: 12px;\n }\n }\n`;\n\nconst InnerContainer = styled.div`\n display: flex;\n width: 100%;\n border-radius: 8px;\n border: 1px solid\n ${({ $picked, theme }) => ($picked ? theme.colors.newBlue : 'rgba(35, 41, 62, 0.16)')};\n background: ${({ $picked }) =>\n $picked ? 'rgba(144, 185, 246, 0.20)' : 'rgba(255, 255, 255, 0.05)'};\n align-self: stretch;\n transition: all 300ms ease-in-out;\n\n &:hover {\n cursor: ${({ $disabled }) => ($disabled ? 'not-allowed' : 'pointer')};\n }\n`;\n\nconst StyledCheckOutlined = styled(CheckOutlined)`\n &&& {\n position: absolute;\n right: 5px;\n top: calc(50% - 1.25rem / 2);\n font-size: 1.25rem;\n color: ${({ theme }) => theme.colors.newBlue};\n\n svg {\n fill: ${({ theme }) => theme.colors.newBlue};\n stroke: ${({ theme }) => theme.colors.newBlue};\n }\n }\n`;\n\nconst RadioGroupFormPartial = ({\n handleChange,\n name,\n options,\n answeredValue,\n disabledAnswers,\n index,\n values,\n}) => {\n const answers = useMemo(\n () =>\n Object.entries(options)\n .map(([key, value]) => ({ ...value, key }))\n .sort((a, b) => a.position - b.position),\n [options],\n );\n\n const handleRadioChange = useCallback(\n e => {\n const target = {\n answerPosition: answers.findIndex(({ key }) => key === e.target.value),\n name: e.target.name,\n questionPosition: index,\n value: e.target.value,\n };\n handleChange(e, target);\n },\n [handleChange, index, answers],\n );\n\n return (\n <Wrapper>\n <StyledRadioGroup name={name} onChange={handleRadioChange} value={answeredValue}>\n <Space direction=\"vertical\">\n {answers.map(({ key, value, position }) => (\n <Fragment key={key}>\n <InnerContainer\n $picked={key === answeredValue}\n $disabled={disabledAnswers[index].includes(position)}\n >\n <StyledRadio value={key} disabled={disabledAnswers[index].includes(position)}>\n {value} {key === answeredValue && <StyledCheckOutlined />}\n </StyledRadio>\n </InnerContainer>\n <WarningMessage\n picked={key === answeredValue}\n questionPosition={index}\n answerPosition={position}\n values={values}\n />\n </Fragment>\n ))}\n </Space>\n </StyledRadioGroup>\n <StyledErrorMessage name={name} />\n </Wrapper>\n );\n};\n\nRadioGroupFormPartial.propTypes = {\n answeredValue: PropTypes.string,\n disabledAnswers: PropTypes.object.isRequired,\n handleChange: PropTypes.func.isRequired,\n index: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n options: PropTypes.object,\n values: PropTypes.object.isRequired,\n};\n\nexport default RadioGroupFormPartial;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport RadioGroupFormPartial from './RadioGroupFormPartial';\nimport theme from '@web/styles/theme';\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\n\nconst StyledCard = styled.div`\n display: flex;\n width: 100%;\n background-color: ${theme.colors.white};\n flex-direction: column;\n`;\n\nconst Title = styled.div`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1.25rem;\n line-height: 1.25rem;\n margin-bottom: 20px;\n\n ${smallBreakpoint} {\n margin-bottom: 10px;\n font-size: 1.125rem;\n line-height: 1.25rem;\n }\n`;\n\nconst QuestionCard = ({\n handleChange,\n index,\n question: {\n answer_mappings: options,\n question: title,\n question_type: type,\n answered_value: answeredValue,\n },\n disabledAnswers,\n values,\n}) => {\n if (type !== 'multiple_choice' && type !== 'closed') {\n return null;\n }\n\n return (\n <StyledCard>\n <Title>{title}</Title>\n <RadioGroupFormPartial\n handleChange={handleChange}\n name={`question_answers[${index}].value`}\n index={index}\n options={options}\n answeredValue={answeredValue}\n disabledAnswers={disabledAnswers}\n values={values}\n />\n </StyledCard>\n );\n};\n\nQuestionCard.propTypes = {\n disabledAnswers: PropTypes.object.isRequired,\n handleChange: PropTypes.func.isRequired,\n index: PropTypes.number,\n question: PropTypes.shape({\n answer_mappings: PropTypes.object,\n answered_value: PropTypes.string,\n id: PropTypes.number,\n question: PropTypes.string,\n question_type: PropTypes.string,\n required: PropTypes.bool,\n }).isRequired,\n values: PropTypes.object.isRequired,\n};\n\nexport default QuestionCard;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { handleDisabledAnswers } from '@web/components/FanOutVotingPlan/utils';\nimport QuestionCard from './QuestionCard';\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\n\nconst Wrapper = styled.div`\n display: flex;\n margin-top: 30px;\n gap: 55px;\n flex-direction: column;\n\n ${smallBreakpoint} {\n gap: 28px;\n }\n`;\n\nconst QuestionFields = ({\n questions,\n handleChange,\n values,\n disabledAnswers,\n setDisabledAnswers,\n}) => {\n const changeHandler = useCallback(\n (e, target) => {\n handleChange(e);\n handleDisabledAnswers({ ...target, values }, setDisabledAnswers);\n },\n [handleChange, setDisabledAnswers, values],\n );\n\n return (\n <Wrapper>\n {questions.map((question, i) => (\n <QuestionCard\n key={question.id}\n index={i}\n question={{\n ...question,\n answered_value: values.question_answers[i].value,\n }}\n handleChange={changeHandler}\n disabledAnswers={disabledAnswers}\n values={values}\n />\n ))}\n </Wrapper>\n );\n};\n\nQuestionFields.propTypes = {\n disabledAnswers: PropTypes.object.isRequired,\n handleChange: PropTypes.func.isRequired,\n questions: PropTypes.arrayOf(\n PropTypes.shape({\n answer_mappings: PropTypes.object,\n id: PropTypes.number,\n position: PropTypes.number,\n question: PropTypes.string,\n question_type: PropTypes.string,\n required: PropTypes.bool,\n }),\n ).isRequired,\n setDisabledAnswers: PropTypes.func.isRequired,\n values: PropTypes.shape({\n question_answers: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n }),\n ),\n }),\n};\n\nexport default QuestionFields;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { Form, Formik } from 'formik';\nimport { useTranslation } from 'react-i18next';\n\nimport ProgressBar from '@web/components/FanOutVotingPlan/components/ProgressBar';\nimport PageTitle from '@web/components/FanOutVotingPlan/components/PageTitle';\nimport {\n getInitialQuestionValues,\n getValidationQuestionsSchema,\n} from '@web/components/FanOutVotingPlan/utils';\nimport QuestionFields from './QuestionFields';\nimport ButtonsSection from '@web/components/FanOutVotingPlan/components/ButtonsSection';\nimport { Wrapper, Content } from '../styles';\n\nconst HowWillYouVote = ({\n progress,\n first3Questions,\n currentPage: { nextButtonText, nextIcon, prevButtonText, prevIcon },\n onNextPage,\n onPreviousPage,\n setVPAnswers,\n setDisabledAnswers,\n disabledAnswers,\n VPAnswers,\n}) => {\n const { t } = useTranslation();\n const initialValues = getInitialQuestionValues(first3Questions, VPAnswers);\n const validationSchema = getValidationQuestionsSchema(first3Questions);\n\n const handlePreviousPage = useCallback(() => {\n setDisabledAnswers({ 0: [], 1: [], 2: [] });\n setVPAnswers([]);\n onPreviousPage();\n }, [setDisabledAnswers, setVPAnswers, onPreviousPage]);\n\n const onSubmit = useCallback(\n (values, { setSubmitting }) => {\n setSubmitting(true);\n const partyAnswers = values.question_answers.map(({ activity_question_id, value }) => ({\n activity_question_id,\n party: null,\n value,\n }));\n setVPAnswers(partyAnswers);\n onNextPage();\n setSubmitting(false);\n },\n [onNextPage, setVPAnswers],\n );\n\n return (\n <Wrapper>\n <Formik\n onSubmit={onSubmit}\n initialValues={initialValues}\n validationSchema={validationSchema}\n render={({ values, handleChange, handleSubmit, isSubmitting, setFieldValue }) => (\n <Form onSubmit={handleSubmit}>\n <Wrapper>\n <Content>\n <ProgressBar progress={progress} />\n <PageTitle icon={'âœï¸'} title={t('fan_out.voting_plan.how_will_you_vote.how')} />\n <QuestionFields\n questions={first3Questions}\n handleChange={handleChange}\n values={values}\n setFieldValue={setFieldValue}\n disabledAnswers={disabledAnswers}\n setDisabledAnswers={setDisabledAnswers}\n />\n </Content>\n </Wrapper>\n <ButtonsSection\n showPreviousButton={false}\n nextButtonProps={{\n disabled: isSubmitting,\n htmlType: 'submit',\n icon: nextIcon,\n text: nextButtonText,\n }}\n prevButtonProps={{\n disabled: isSubmitting,\n icon: prevIcon,\n onClick: handlePreviousPage,\n text: prevButtonText,\n }}\n />\n </Form>\n )}\n />\n </Wrapper>\n );\n};\n\nHowWillYouVote.propTypes = {\n currentPage: PropTypes.shape({\n nextButtonText: PropTypes.string,\n nextIcon: PropTypes.node,\n prevButtonText: PropTypes.string,\n prevIcon: PropTypes.node,\n }).isRequired,\n disabledAnswers: PropTypes.object.isRequired,\n first3Questions: PropTypes.array.isRequired,\n formAttributes: PropTypes.object.isRequired,\n onNextPage: PropTypes.func.isRequired,\n onPreviousPage: PropTypes.func.isRequired,\n partyQuestions: PropTypes.array.isRequired,\n progress: PropTypes.number,\n referrer: PropTypes.shape({\n fullname: PropTypes.string,\n id: PropTypes.number,\n }),\n setDisabledAnswers: PropTypes.func.isRequired,\n setVPAnswers: PropTypes.func.isRequired,\n sortedActivityQuestions: PropTypes.array.isRequired,\n VPAnswers: PropTypes.array.isRequired,\n};\n\nHowWillYouVote.defaultProps = {\n progress: 0,\n};\n\nexport default HowWillYouVote;\n","import { Radio } from 'antd';\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\n\nconst Wrapper = styled.div`\n transition: all 300ms ease-in-out;\n display: flex;\n flex-direction: row;\n flex: 1;\n`;\n\nconst StyledRadioGroup = styled(Radio.Group)`\n &&& {\n display: flex;\n flex-direction: row;\n flex: 1;\n gap: 8px;\n\n @media screen and (max-width: 1300px) {\n flex-direction: column;\n }\n }\n`;\n\nconst StyledRadio = styled(Radio)`\n &&& {\n padding: 16px;\n flex: 1;\n flex-direction: row;\n white-space: normal;\n &:hover {\n cursor: unset;\n }\n\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem;\n\n ${smallBreakpoint} {\n font-size: 0.875rem;\n line-height: 1.25rem; /* 142.857% */\n }\n\n .ant-radio-inner {\n border-color: ${({ theme }) => theme.colors.blackL42};\n }\n .ant-radio-checked .ant-radio-inner {\n border-color: ${({ theme }) => theme.colors.black} !important;\n }\n\n .ant-radio-inner:after {\n background-color: ${({ theme }) => theme.colors.black};\n width: 12px;\n height: 12px;\n margin-top: -2px;\n margin-left: -2px;\n border-radius: 12px;\n }\n }\n`;\n\nconst InnerContainer = styled.div`\n display: flex;\n flex: 1;\n border-radius: 8px;\n border: 1px solid\n ${({ $picked, theme }) => ($picked ? theme.colors.newBlue : 'rgba(35, 41, 62, 0.16)')};\n background: ${({ $picked }) =>\n $picked ? 'rgba(144, 185, 246, 0.20)' : 'rgba(255, 255, 255, 0.05)'};\n align-self: stretch;\n transition: all 300ms ease-in-out;\n\n &:hover {\n cursor: pointer;\n }\n`;\n\nconst FirstSentence = styled.span`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1rem;\n line-height: 1.5rem;\n\n ${smallBreakpoint} {\n font-size: 0.875rem;\n line-height: 1.25rem; /* 142.857% */\n }\n`;\n\nconst RadioGroupFormPartial = ({ handleChange, name, options, answeredValue }) => {\n const answers = useMemo(\n () =>\n Object.entries(options)\n // add a random sort value to the answers\n .map(([key, value]) => ({ ...value, key, sortValue: Math.random() }))\n // randomly sort the answers\n .sort((a, b) => a.sortValue - b.sortValue)\n // remove sortValue\n .map(({ sortValue, ...rest }) => rest),\n [options],\n );\n\n return (\n <Wrapper>\n <StyledRadioGroup name={name} onChange={handleChange} value={answeredValue}>\n {answers.map(({ key, value }) => {\n const [firstSentence, ...restOfSentences] = value.split('.');\n const rest = restOfSentences.join('. ');\n\n return (\n <InnerContainer key={key} $picked={key === answeredValue}>\n <StyledRadio value={key}>\n <FirstSentence>{firstSentence}.</FirstSentence>\n <br />\n {rest}\n </StyledRadio>\n </InnerContainer>\n );\n })}\n </StyledRadioGroup>\n </Wrapper>\n );\n};\n\nRadioGroupFormPartial.propTypes = {\n answeredValue: PropTypes.string,\n handleChange: PropTypes.func.isRequired,\n index: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n options: PropTypes.object,\n values: PropTypes.object.isRequired,\n};\n\nexport default RadioGroupFormPartial;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { StyledErrorMessage as ErrorMessage } from '@web/components/common/shared/FormInput';\nimport RadioGroupFormPartial from './RadioGroupFormPartial';\nimport theme from '@web/styles/theme';\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\n\nconst StyledCard = styled.div`\n display: flex;\n width: 100%;\n background-color: ${theme.colors.white};\n flex-direction: row;\n flex-wrap: wrap;\n margin-top: 11px;\n\n @media screen and (max-width: 1300px) {\n flex-direction: column;\n margin-top: 21px;\n }\n`;\n\nconst Title = styled.div`\n display: flex;\n flex: 0.25;\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1.25rem;\n line-height: 1.25rem;\n margin-bottom: 8px;\n\n ${smallBreakpoint} {\n font-size: 1.125rem;\n line-height: 1.25rem;\n }\n`;\n\nconst StyledErrorMessage = styled(ErrorMessage)`\n &&& {\n display: flex;\n margin-left: calc(20%);\n margin-top: 0px;\n\n @media screen and (max-width: 1300px) {\n margin-left: 0;\n }\n }\n`;\n\nconst QuestionCard = ({\n handleChange,\n index,\n question: {\n answer_mappings: options,\n question: title,\n question_type: type,\n answered_value: answeredValue,\n },\n values,\n}) => {\n if (type !== 'multiple_choice' && type !== 'closed') {\n return null;\n }\n\n return (\n <>\n <StyledCard>\n <Title>{title}</Title>\n <RadioGroupFormPartial\n handleChange={handleChange}\n name={`question_answers[${index}].value`}\n index={index}\n options={options}\n answeredValue={answeredValue}\n values={values}\n />\n </StyledCard>\n <StyledErrorMessage name={`question_answers[${index}].value`} />\n </>\n );\n};\n\nQuestionCard.propTypes = {\n handleChange: PropTypes.func.isRequired,\n index: PropTypes.number,\n question: PropTypes.shape({\n answer_mappings: PropTypes.object,\n answered_value: PropTypes.string,\n id: PropTypes.number,\n question: PropTypes.string,\n question_type: PropTypes.string,\n required: PropTypes.bool,\n }).isRequired,\n values: PropTypes.object.isRequired,\n};\n\nexport default QuestionCard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport QuestionCard from './QuestionCard';\nimport { smallBreakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\n\nconst Wrapper = styled.div`\n display: flex;\n margin-top: 20px;\n flex-direction: column;\n\n ${smallBreakpoint} {\n margin-top: 0;\n }\n`;\n\nconst QuestionFields = ({ questions, handleChange, values }) => {\n return (\n <Wrapper>\n {questions.map((question, i) => (\n <QuestionCard\n key={question.id}\n index={i}\n question={{\n ...question,\n answered_value: values.question_answers[i].value,\n }}\n handleChange={handleChange}\n values={values}\n />\n ))}\n </Wrapper>\n );\n};\n\nQuestionFields.propTypes = {\n handleChange: PropTypes.func.isRequired,\n questions: PropTypes.arrayOf(\n PropTypes.shape({\n answer_mappings: PropTypes.object,\n id: PropTypes.number,\n position: PropTypes.number,\n question: PropTypes.string,\n question_type: PropTypes.string,\n required: PropTypes.bool,\n }),\n ).isRequired,\n\n values: PropTypes.shape({\n question_answers: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n }),\n ),\n }),\n};\n\nexport default QuestionFields;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { Form, Formik } from 'formik';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { message } from 'antd';\n\nimport ProgressBar from '@web/components/FanOutVotingPlan/components/ProgressBar';\nimport PageTitle from '@web/components/FanOutVotingPlan/components/PageTitle';\nimport {\n getInitialQuestionValues,\n getValidationQuestionsSchema,\n handleErrorMessage,\n} from '@web/components/FanOutVotingPlan/utils';\nimport QuestionFields from './QuestionFields';\nimport ButtonsSection from '@web/components/FanOutVotingPlan/components/ButtonsSection';\nimport { activities } from '@web/services/api';\nimport { Wrapper, Content } from '../styles';\nimport { amplitudeTrack } from '@web/components/FanOut/hooks/useFanOutAmplitude';\n\nconst PageTitleDescription = styled.div`\n color: ${({ theme }) => theme.colors.blackL42};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 0.875rem;\n font-weight: 400;\n line-height: 1.25rem; /* 142.857% */\n\n display: flex;\n width: 100%;\n gap: 20px;\n flex-direction: column;\n\n span {\n font-weight: 700;\n gap: 15px;\n }\n`;\n\nconst WhichCandidatesRepresent = ({\n progress,\n partyQuestions,\n currentPage: { nextButtonText, nextIcon, prevButtonText, prevIcon },\n onNextPage,\n onPreviousPage,\n setVPAnswers,\n activity,\n referralHash,\n formVPAnswers,\n VPAnswers,\n setContactId,\n}) => {\n const { t } = useTranslation();\n\n const initialValues = getInitialQuestionValues(partyQuestions);\n const validationSchema = getValidationQuestionsSchema(partyQuestions);\n\n const onSubmit = useCallback(\n (values, { setSubmitting }) => {\n setSubmitting(true);\n const partyAnswers = values.question_answers.map(\n ({ activity_question_id, value, possible_answers }) => ({\n activity_question_id,\n party: possible_answers.find(answer => answer.key === value)?.position\n ? 'Republican'\n : 'Democrat',\n value,\n }),\n );\n const questionAnswers = [...VPAnswers, ...partyAnswers].map(\n ({ activity_question_id, value }) => ({\n activity_question_id,\n value,\n }),\n );\n\n activities\n .submitSurveyActivityForm({\n campaignSlug: activity.campaign.slug,\n formSlug: activity.survey_activity_form.slug,\n questionAnswers,\n referralHash,\n surveyFormData: formVPAnswers,\n })\n .then(({ data }) => {\n amplitudeTrack({ activity, name: 'FAN_OUT_VOTING_PLAN_FORM_SUBMISSION' });\n setVPAnswers(prevAnswers => [...prevAnswers, ...partyAnswers]);\n setContactId(data.data.contact_id);\n onNextPage();\n })\n .catch(err => message.error(handleErrorMessage(err)))\n .finally(() => setSubmitting(false));\n },\n [setVPAnswers, onNextPage, activity, referralHash, formVPAnswers, VPAnswers, setContactId],\n );\n\n return (\n <Wrapper>\n <Formik\n onSubmit={onSubmit}\n initialValues={initialValues}\n validationSchema={validationSchema}\n render={({ values, handleChange, handleSubmit, isSubmitting, setFieldValue }) => (\n <Form onSubmit={handleSubmit}>\n <Wrapper>\n <Content>\n <ProgressBar progress={progress} />\n <PageTitle\n icon={'🗳'}\n title={t('fan_out.voting_plan.which_candidates_represent.which')}\n descriptionComponent={\n <PageTitleDescription>\n <div\n dangerouslySetInnerHTML={{\n __html: t('fan_out.voting_plan.which_candidates_represent.description.0'),\n }}\n />\n <div\n dangerouslySetInnerHTML={{\n __html: t('fan_out.voting_plan.which_candidates_represent.description.1'),\n }}\n />\n </PageTitleDescription>\n }\n />\n <QuestionFields\n questions={partyQuestions}\n handleChange={handleChange}\n values={values}\n setFieldValue={setFieldValue}\n />\n </Content>\n </Wrapper>\n <ButtonsSection\n showPreviousButton={false}\n nextButtonProps={{\n disabled: isSubmitting,\n htmlType: 'submit',\n icon: nextIcon,\n text: nextButtonText,\n }}\n prevButtonProps={{\n disabled: isSubmitting,\n icon: prevIcon,\n onClick: onPreviousPage,\n text: prevButtonText,\n }}\n />\n </Form>\n )}\n />\n </Wrapper>\n );\n};\n\nWhichCandidatesRepresent.propTypes = {\n activity: PropTypes.object.isRequired,\n currentPage: PropTypes.shape({\n nextButtonText: PropTypes.string,\n nextIcon: PropTypes.node,\n prevButtonText: PropTypes.string,\n prevIcon: PropTypes.node,\n }).isRequired,\n first3Questions: PropTypes.array.isRequired,\n formAttributes: PropTypes.object.isRequired,\n formVPAnswers: PropTypes.object.isRequired,\n onNextPage: PropTypes.func.isRequired,\n onPreviousPage: PropTypes.func.isRequired,\n partyQuestions: PropTypes.array.isRequired,\n progress: PropTypes.number,\n referralHash: PropTypes.string.isRequired,\n referrer: PropTypes.shape({\n fullname: PropTypes.string,\n id: PropTypes.number,\n }),\n setContactId: PropTypes.func.isRequired,\n setVPAnswers: PropTypes.func.isRequired,\n sortedActivityQuestions: PropTypes.array.isRequired,\n VPAnswers: PropTypes.array.isRequired,\n};\n\nWhichCandidatesRepresent.defaultProps = {\n progress: 0,\n};\n\nexport default WhichCandidatesRepresent;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\n\nimport VotingPlanUnderline from '@web/components/FanOut/components/icons/VotingPlan';\nimport { capitalize } from '@web/utils/string';\nimport {\n smallBreakpoint,\n small800Breakpoint,\n} from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport { useIs800 } from '@web/components/VoterRegistration/hooks/useIsMobile';\n\nconst TextWrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin-bottom: 69px;\n\n ${smallBreakpoint} {\n margin-top: 30px;\n margin-bottom: 46px;\n }\n\n ${small800Breakpoint} {\n margin-top: 50px;\n margin-bottom: 26px;\n }\n`;\n\nconst TitleText = styled.div`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 3rem;\n line-height: 4rem;\n position: relative;\n text-align: center;\n\n ${small800Breakpoint} {\n font-size: 1.75rem;\n line-height: 2.25rem; /* 128.571% */\n }\n`;\n\nconst StyledVotingPlanUnderline = styled(VotingPlanUnderline)`\n position: absolute;\n bottom: -12px;\n left: 3px;\n overflow: hidden;\n`;\n\nconst ReferrerText = styled.div`\n margin-top: 32px;\n color: ${({ theme }) => theme.colors.blue};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1.75rem;\n line-height: 2rem; /* 114.286% */\n text-align: center;\n\n ${small800Breakpoint} {\n font-size: 1.25rem;\n line-height: 1.75rem; /* 140% */\n }\n\n ${smallBreakpoint} {\n margin-top: 24px;\n }\n`;\n\nconst TitleResults = ({ referrer, willEarnPoints }) => {\n const { t } = useTranslation();\n const isMobile = useIs800();\n\n const referrerName = useMemo(() => capitalize(referrer?.fullname || ''), [referrer]);\n\n const referrerText = useMemo(\n () =>\n willEarnPoints\n ? t('fan_out.voting_plan.results.will_earn_entries', {\n referrer: referrerName,\n })\n : t('fan_out.voting_plan.results.will_not_earn_entries', {\n referrer: referrerName,\n }),\n [referrerName, willEarnPoints, t],\n );\n\n return (\n <TextWrapper>\n <TitleText>{t('fan_out.voting_plan.results.thanks')}</TitleText>\n <TitleText>\n {t('fan_out.voting_plan.results.voting_plan')}\n <StyledVotingPlanUnderline type={'secondary'} isMobile={isMobile} />\n </TitleText>\n {willEarnPoints !== null && <ReferrerText>{referrerText}</ReferrerText>}\n </TextWrapper>\n );\n};\n\nTitleResults.propTypes = {\n referrer: PropTypes.shape({\n fullname: PropTypes.string,\n id: PropTypes.number,\n }),\n willEarnPoints: PropTypes.bool,\n};\n\nTitleResults.defaultProps = {};\n\nexport default TitleResults;\n","import React, { useMemo, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\n\nimport PageTitle from '@web/components/FanOutVotingPlan/components/PageTitle';\nimport theme from '@admin/styles/theme';\nimport { small800Breakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport { amplitudeTrack } from '@web/components/FanOut/hooks/useFanOutAmplitude';\n\nconst Wrapper = styled.div`\n display: flex;\n border-radius: 12px;\n flex-direction: column;\n background: ${({ theme }) => theme.colors.white};\n margin-bottom: 20px;\n padding: 40px;\n gap: 24px;\n border: 2px solid ${theme.colors.darkBlue};\n box-shadow: 4px 4px 0px 0px ${theme.colors.darkBlue};\n\n ${small800Breakpoint} {\n padding: 24px 20px 32px;\n border: unset;\n box-shadow: unset;\n }\n`;\n\nconst AnswersWrapper = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 8px;\n\n ${small800Breakpoint} {\n flex-direction: column;\n gap: 10px;\n }\n`;\n\nconst AnswerCard = styled.div`\n display: flex;\n padding: 12px;\n justify-content: center;\n align-items: center;\n flex: 1;\n align-self: stretch;\n border-radius: 4px;\n background: #e9f1fd;\n\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.regular};\n text-align: center;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem; /* 150% */\n`;\n\nconst LookUpText = styled.a`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.bold};\n text-align: center;\n font-size: 1rem;\n line-height: 1.25rem; /* 125% */\n text-decoration-line: underline;\n\n &:hover {\n color: ${({ theme }) => theme.colors.coral};\n }\n`;\n\nconst HowIPlanToVote = ({ VPAnswers, activity }) => {\n const { t } = useTranslation();\n\n const first3Answers = useMemo(() => VPAnswers.slice(0, 3), [VPAnswers]);\n\n const lookUpClick = useCallback(\n () => amplitudeTrack({ activity, name: 'FAN_OUT_VOTING_PLAN_LOOK_UP_POLLING_LOCATION' }),\n [activity],\n );\n\n return (\n <Wrapper>\n <PageTitle icon={'âœï¸'} title={t('fan_out.voting_plan.results.plan_to_vote')} />\n <AnswersWrapper>\n {first3Answers.map(({ value }) => (\n <AnswerCard key={value}>{value}</AnswerCard>\n ))}\n </AnswersWrapper>\n <LookUpText\n target=\"_blank\"\n href=\"https://www.vote.org/polling-place-locator/\"\n onClick={lookUpClick}\n >\n {t('fan_out.voting_plan.results.look_up')}\n </LookUpText>\n </Wrapper>\n );\n};\n\nHowIPlanToVote.propTypes = {\n activity: PropTypes.object.isRequired,\n VPAnswers: PropTypes.array.isRequired,\n};\n\nHowIPlanToVote.defaultProps = {};\n\nexport default HowIPlanToVote;\n","import React, { useState, useEffect, useCallback, Fragment } from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { createGlobalStyle } from 'styled-components';\nimport { animated, useSpring } from 'react-spring';\nimport { Collapse } from 'antd';\nimport { DownOutlined } from '@ant-design/icons';\nimport { useTranslation } from 'react-i18next';\n\nimport PageTitle from '@web/components/FanOutVotingPlan/components/PageTitle';\nimport { getTableText } from '@web/components/FanOutVotingPlan/utils';\nimport theme from '@admin/styles/theme';\nimport {\n smallBreakpoint,\n small800Breakpoint,\n} from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport { useIs800 } from '@web/components/VoterRegistration/hooks/useIsMobile';\n\nconst { Panel } = Collapse;\n\nconst Wrapper = styled.div`\n display: flex;\n border-radius: 12px;\n flex-direction: column;\n background: ${({ theme }) => theme.colors.white};\n margin-bottom: 20px;\n padding: 40px;\n gap: 28px;\n border: 2px solid ${theme.colors.darkBlue};\n box-shadow: 4px 4px 0px 0px ${theme.colors.darkBlue};\n\n ${smallBreakpoint} {\n padding: 40px 40px 30px;\n }\n\n ${small800Breakpoint} {\n padding: 24px 20px 10px;\n border: unset;\n box-shadow: unset;\n gap: 8px;\n margin-bottom: 0;\n }\n`;\n\nconst CardWrapper = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n gap: 8px;\n\n ${small800Breakpoint} {\n margin-top: 20px;\n }\n`;\n\nconst PartyCard = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n`;\n\nconst PartyColor = styled.div`\n width: 1rem;\n height: 1rem;\n border-radius: 3px;\n background: ${({ $type }) => ($type === 'Democrat' ? '#90B9F6' : '#FC9188')};\n`;\n\nconst PartyPercentage = styled.div`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 2.25rem;\n font-weight: 600;\n line-height: 2.25rem; /* 100% */\n\n ${small800Breakpoint} {\n font-size: 1.25rem;\n line-height: 1.5rem; /* 120% */\n }\n\n span {\n color: ${({ theme }) => theme.colors.blackL32};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.25rem; /* 125% */\n\n ${small800Breakpoint} {\n font-size: 0.875rem;\n }\n }\n`;\n\nconst LineWrapper = styled.div`\n display: flex;\n padding: 3px;\n gap: 3px;\n border-radius: 10px;\n border: 1px solid rgba(35, 41, 62, 0.06);\n height: 28px;\n width: 100%;\n`;\n\nconst Line = styled(animated.div)`\n width: 50%;\n height: 20px;\n border-radius: 6px;\n background: ${({ $type }) => ($type === 'Democrat' ? '#90b9f6' : '#FC9188')};\n box-shadow: 0px 4px 7px 0px\n ${({ $type }) =>\n $type === 'Democrat' ? 'rgba(87, 134, 255, 0.22)' : 'rgba(251, 118, 107, 0.22)'};\n`;\n\nconst CollapseAntdStyles = createGlobalStyle`\n &&& {\n .ant-collapse-content {\n background: ${({ theme }) => theme.colors.transparent}!important;\n border-top: 0px !important;\n padding: 0px !important;\n }\n .ant-collapse-header {\n padding: 0px !important;\n }\n .ant-collapse-content-box {\n padding: 0px !important;\n }\n }\n`;\n\nconst StyledCollapse = styled(Collapse)`\n &&& {\n margin: 16px 0;\n border-radius: 0.5rem;\n overflow: hidden;\n }\n`;\n\nconst StyledPanel = styled(Panel)`\n padding: 0;\n border: none;\n`;\n\nconst ResultsText = styled.div`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.bold};\n text-align: center;\n font-size: 1rem;\n line-height: 1.25rem; /* 125% */\n text-decoration-line: underline;\n\n &:hover {\n color: ${({ theme }) => theme.colors.coral};\n }\n\n svg {\n transition: transform 0.3s ease-in-out;\n margin: 0 0px 5px 5px;\n }\n`;\n\nconst TableWrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n`;\n\nconst DisclaimerText = styled.div`\n margin-top: 16px;\n color: ${({ theme }) => theme.colors.blackL32};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.25rem;\n\n display: flex;\n flex-direction: column;\n gap: 10px;\n\n div {\n font-family: ${({ theme }) => theme.fonts.italic};\n font-size: 0.85rem;\n line-height: 1rem;\n }\n`;\n\nconst SectionWrapper = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n gap: 8px;\n`;\n\nconst TableMainTitle = styled.div`\n display: flex;\n flex: 0.5;\n background: ${({ $type }) => ($type === 'Democrat' ? '#90b9f6' : '#FC9188')};\n box-shadow: 0px 4px 7px 0px\n ${({ $type }) =>\n $type === 'Democrat' ? 'rgba(87, 134, 255, 0.22)' : 'rgba(251, 118, 107, 0.22)'};\n border-radius: 8px;\n align-items: center;\n justify-content: center;\n\n margin-top: 16px;\n padding: 10px 0;\n\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1.25rem;\n font-weight: 600;\n line-height: 1.25rem;\n`;\n\nconst TableTitle = styled.div`\n display: flex;\n flex: 0.2;\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1.25rem;\n font-weight: 600;\n line-height: 1.25rem;\n margin-bottom: 8px;\n padding-top: 5px;\n`;\n\nconst TableCard = styled.div`\n display: flex;\n flex: 0.5;\n background: ${({ $type }) =>\n $type === 'Democrat' ? 'rgba(87, 134, 255, 0.22)' : 'rgba(251, 118, 107, 0.22)'};\n border-radius: 8px;\n flex-direction: column;\n gap: 5px;\n overflow: hidden;\n`;\n\nconst TitleWrapper = styled.div`\n display: flex;\n background: ${({ $type }) =>\n $type === 'Democrat' ? 'rgba(87, 134, 255, 0.22)' : 'rgba(251, 118, 107, 0.22)'};\n flex-direction: column;\n`;\n\nconst TitleCard = styled.div`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1.25rem;\n font-weight: 600;\n line-height: 1.25rem;\n text-align: center;\n padding: 5px 5px 0px 5px;\n`;\n\nconst DescriptionCard = styled(TitleCard)`\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.25rem;\n padding: 5px;\n\n ${small800Breakpoint} {\n font-size: 0.875rem;\n }\n`;\n\nconst ExamplesWrapper = styled.div`\n display: flex;\n flex-direction: column;\n padding-top: 5px;\n`;\n\nconst ExampleCard = styled(DescriptionCard)`\n padding: 0px 5px 5px 5px;\n font-family: ${({ theme }) => theme.fonts.italic};\n text-decoration: ${({ $title }) => ($title ? 'underline' : 'none')};\n`;\n\nconst WhoRepresents = ({ VPAnswers }) => {\n const { t } = useTranslation();\n const isMobile = useIs800();\n const [percentage, setPercentage] = useState([50, 50]);\n const [expanded, setExpanded] = useState(false);\n const democratStyle = useSpring({ width: `${percentage[0] || 0}%` });\n const republicanStyle = useSpring({ width: `${percentage[1] || 0}%` });\n\n useEffect(() => {\n // trigger animation\n setTimeout(() => {\n const democrat = VPAnswers.filter(({ party }) => party === 'Democrat').length * 10;\n const republican = VPAnswers.filter(({ party }) => party === 'Republican').length * 10;\n setPercentage([democrat, republican]);\n }, 300);\n }, [VPAnswers]);\n\n const onCollapseChange = useCallback(keys => setExpanded(!!keys.length), []);\n const tableTranslations = getTableText();\n\n return (\n <Wrapper>\n <PageTitle icon={'🗳'} title={t('fan_out.voting_plan.results.represents')} />\n <CardWrapper>\n <PartyCard>\n <PartyColor $type={'Democrat'} />\n <PartyPercentage>\n {percentage[0]}% <span>{t('fan_out.voting_plan.results.democrat')}</span>\n </PartyPercentage>\n </PartyCard>\n <PartyCard>\n <PartyColor $type={'Republican'} />\n <PartyPercentage>\n {percentage[1]}% <span>{t('fan_out.voting_plan.results.republican')}</span>\n </PartyPercentage>\n </PartyCard>\n </CardWrapper>\n <LineWrapper>\n <Line $type=\"Democrat\" style={democratStyle} />\n <Line $type=\"Republican\" style={republicanStyle} />\n </LineWrapper>\n <>\n <CollapseAntdStyles />\n <StyledCollapse ghost onChange={onCollapseChange}>\n <StyledPanel\n header={\n <ResultsText>\n {expanded\n ? t('fan_out.voting_plan.results.hide_details')\n : t('fan_out.voting_plan.results.show_details')}\n <DownOutlined rotate={expanded ? 180 : 0} />\n </ResultsText>\n }\n key={'1'}\n showArrow={false}\n >\n <>\n <TableWrapper>\n <DisclaimerText>\n {t('fan_out.voting_plan.results.we_vote')}\n <span>{t('fan_out.voting_plan.results.please_browse')}</span>\n <div>{t('fan_out.voting_plan.results.note')}</div>\n </DisclaimerText>\n <SectionWrapper>\n {!isMobile && <TableTitle />}\n <TableMainTitle $type={'Democrat'}>\n {t('fan_out.voting_plan.results.democrat')}\n </TableMainTitle>\n <TableMainTitle $type={'Republican'}>\n {t('fan_out.voting_plan.results.republican')}\n </TableMainTitle>\n </SectionWrapper>\n {tableTranslations.map(({ title, democrat, republican }) => (\n <Fragment key={title}>\n {isMobile && <TableTitle>{title}</TableTitle>}\n <SectionWrapper>\n {!isMobile && <TableTitle>{title}</TableTitle>}\n\n <TableCard $type={'Democrat'}>\n <TitleWrapper $type={'Democrat'}>\n <TitleCard>{democrat.title}</TitleCard>\n <DescriptionCard>{democrat.description}</DescriptionCard>\n </TitleWrapper>\n <ExamplesWrapper $type={'Democrat'}>\n <ExampleCard $title>{democrat.examples_title}</ExampleCard>\n {democrat.examples.map((example, d) => (\n <ExampleCard key={example + d}>• {example}</ExampleCard>\n ))}\n </ExamplesWrapper>\n </TableCard>\n\n <TableCard $type={'Republican'}>\n <TitleWrapper $type={'Republican'}>\n <TitleCard>{republican.title}</TitleCard>\n <DescriptionCard>{republican.description}</DescriptionCard>\n </TitleWrapper>\n <ExamplesWrapper $type={'Republican'}>\n <ExampleCard $title>{republican.examples_title}</ExampleCard>\n {republican.examples.map((example, r) => (\n <ExampleCard key={example + r}>• {example}</ExampleCard>\n ))}\n </ExamplesWrapper>\n </TableCard>\n </SectionWrapper>\n </Fragment>\n ))}\n </TableWrapper>\n </>\n </StyledPanel>\n </StyledCollapse>\n </>\n </Wrapper>\n );\n};\n\nWhoRepresents.propTypes = {\n VPAnswers: PropTypes.array.isRequired,\n};\n\nWhoRepresents.defaultProps = {};\n\nexport default WhoRepresents;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { message } from 'antd';\n\nimport { Wrapper, Content } from '../styles';\nimport TitleResults from './TitleResults';\nimport HowIPlanToVote from './HowIPlanToVote';\nimport WhoRepresents from './WhoRepresents';\nimport { capitalize } from '@web/utils/string';\nimport { fanOut } from '@web/services/api';\nimport { handleErrorMessage } from '@web/components/FanOutVotingPlan/utils';\nimport { small800Breakpoint } from '@web/components/VoterRegistration/newComponents/breakpoints';\n\nconst StyledContent = styled(Content)`\n background: ${({ theme }) => theme.colors.transparent};\n\n ${small800Breakpoint} {\n padding: 0;\n }\n`;\n\nconst Results = ({ referrer, VPAnswers, activity, contactId, referralHash, formVPAnswers }) => {\n const [willEarnPoints, setWillEarnPoints] = useState(null);\n const { t } = useTranslation();\n\n const fanOutSubmission = useCallback(async () => {\n fanOut\n .incrementPoints({\n activity_id: activity.id,\n campaign_id: activity.campaign.id,\n contact_id: contactId,\n email: formVPAnswers.email,\n metric: 'VotingPlan',\n phone: `+${formVPAnswers.phone}`,\n referral_hash: referralHash,\n })\n .then(({ data }) => {\n const referrerName = capitalize(referrer?.fullname || '');\n const text = data.is_points_earned\n ? t('fan_out.voting_plan.results.earned_entries', { referrer: referrerName })\n : t('fan_out.voting_plan.results.not_earned_entries', { referrer: referrerName });\n const notification = data.is_points_earned ? message.success : message.error;\n\n notification(text);\n setWillEarnPoints(!!data.is_points_earned);\n })\n .catch(err => message.error(handleErrorMessage(err)));\n }, [activity, contactId, formVPAnswers, referralHash, referrer, t]);\n\n useEffect(() => {\n fanOutSubmission();\n }, [fanOutSubmission]);\n\n return (\n <Wrapper $maxWidth={'1000px'}>\n <StyledContent>\n <TitleResults referrer={referrer} willEarnPoints={willEarnPoints} />\n <HowIPlanToVote VPAnswers={VPAnswers} activity={activity} />\n <WhoRepresents VPAnswers={VPAnswers} />\n </StyledContent>\n </Wrapper>\n );\n};\n\nResults.propTypes = {\n activity: PropTypes.object.isRequired,\n contactId: PropTypes.number.isRequired,\n currentPage: PropTypes.shape({\n nextButtonText: PropTypes.string,\n nextIcon: PropTypes.node,\n prevButtonText: PropTypes.string,\n prevIcon: PropTypes.node,\n }).isRequired,\n first3Questions: PropTypes.array.isRequired,\n formAttributes: PropTypes.object.isRequired,\n formVPAnswers: PropTypes.object.isRequired,\n onNextPage: PropTypes.func.isRequired,\n onPreviousPage: PropTypes.func.isRequired,\n partyQuestions: PropTypes.array.isRequired,\n progress: PropTypes.number,\n referralHash: PropTypes.string.isRequired,\n referrer: PropTypes.shape({\n fullname: PropTypes.string,\n id: PropTypes.number,\n }),\n setVPAnswers: PropTypes.func.isRequired,\n sortedActivityQuestions: PropTypes.array.isRequired,\n VPAnswers: PropTypes.array.isRequired,\n};\n\nResults.defaultProps = {\n progress: 0,\n};\n\nexport default Results;\n","import React, { useCallback, useState, useEffect, useMemo } from 'react';\nimport { ArrowLeftOutlined, ArrowRightOutlined, ReloadOutlined } from '@ant-design/icons';\n\nimport TellUs from '@web/components/FanOutVotingPlan/components/TellUs';\nimport Oops from '@web/components/FanOutVotingPlan/components/Oops';\nimport HowWillYouVote from '@web/components/FanOutVotingPlan/components/HowWillYouVote';\nimport WhichCandidatesRepresent from '@web/components/FanOutVotingPlan/components/WhichCandidatesRepresent';\nimport Results from '@web/components/FanOutVotingPlan/components/Results';\nimport i18n from '@web/components/i18n';\n\nconst { t } = i18n;\n\nexport const VOTING_PAGES = [\n {\n Component: Oops,\n index: 0,\n nextButtonText: t('fan_out.voting_plan.oops.try_again'),\n nextIcon: <ReloadOutlined />,\n pageName: 'OOPS',\n },\n {\n Component: TellUs,\n index: 1,\n nextButtonText: t('fan_out.voting_plan.tell_us.next'),\n nextIcon: <ArrowRightOutlined />,\n pageName: 'TELL_US',\n },\n {\n Component: HowWillYouVote,\n index: 2,\n nextButtonText: t('fan_out.voting_plan.how_will_you_vote.next'),\n nextIcon: <ArrowRightOutlined />,\n pageName: 'HOW_WILL_YOU_VOTE',\n prevButtonText: t('fan_out.voting_plan.how_will_you_vote.back'),\n prevIcon: <ArrowLeftOutlined />,\n },\n {\n Component: WhichCandidatesRepresent,\n index: 3,\n nextButtonText: t('fan_out.voting_plan.which_candidates_represent.submit'),\n pageName: 'WHICH_CANDIDATES_REPRESENT',\n prevButtonText: t('fan_out.voting_plan.which_candidates_represent.back'),\n prevIcon: <ArrowLeftOutlined />,\n },\n {\n Component: Results,\n index: 4,\n pageName: 'RESULTS',\n },\n];\n\nexport const useSurveyActivity = ({ activity }) => {\n // Form data\n const [sortedActivityQuestions, setSortedActivityQuestions] = useState([]);\n const [first3Questions, setFirst3Questions] = useState([]);\n const [partyQuestions, setPartyQuestions] = useState([]);\n const [formAttributes, setFormAttributes] = useState({});\n\n const getActivityQuestions = useCallback(() => {\n // sort by position\n const sortedQuestions = activity.activity_questions.sort((a, b) => a.position - b.position);\n setSortedActivityQuestions(sortedQuestions);\n setFormAttributes(activity.survey_activity_form);\n setFirst3Questions(sortedQuestions.slice(0, 3));\n setPartyQuestions(sortedQuestions.slice(3));\n }, [activity]);\n\n useEffect(() => {\n getActivityQuestions();\n }, [getActivityQuestions]);\n\n return {\n first3Questions,\n formAttributes,\n partyQuestions,\n sortedActivityQuestions,\n };\n};\n\nexport const useVotingPlan = () => {\n // Voting plan answers\n const [formVPAnswers, setFormVPAnswers] = useState({});\n const [VPAnswers, setVPAnswers] = useState([]);\n const [oopsType, setOopsType] = useState({ errorType: null, referrer: null });\n\n // positions of disabled answers in each question (3 questions HowWillYouVote screen)\n const [disabledAnswers, setDisabledAnswers] = useState({ 0: [], 1: [], 2: [] });\n\n // contact id for the voting plan after form submission\n const [contactId, setContactId] = useState(null);\n\n const [currentPage, setCurrentPage] = useState(VOTING_PAGES[1]);\n\n const onNextPage = useCallback(() => {\n setCurrentPage(page => VOTING_PAGES.find(({ index }) => index === page.index + 1));\n setOopsType({ errorType: null, referrer: null });\n window.scrollTo(0, 0);\n }, []);\n\n const onPreviousPage = useCallback((errorType, referrer) => {\n setCurrentPage(page => VOTING_PAGES.find(({ index }) => index === page.index - 1));\n setOopsType({ errorType, referrer });\n window.scrollTo(0, 0);\n }, []);\n\n const onBackToStart = useCallback(() => {\n setCurrentPage(VOTING_PAGES[1]);\n setOopsType({ errorType: null, referrer: null });\n window.scrollTo(0, 0);\n }, []);\n\n const progress = useMemo(() => currentPage.index / (VOTING_PAGES.length - 2), [currentPage]);\n\n return {\n contactId,\n currentPage,\n disabledAnswers,\n formVPAnswers,\n onBackToStart,\n onNextPage,\n onPreviousPage,\n oopsType,\n progress,\n setContactId,\n setCurrentPage,\n setDisabledAnswers,\n setFormVPAnswers,\n setVPAnswers,\n VPAnswers,\n };\n};\n","import React from 'react';\nimport styled, { css } from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { useLocation, useParams } from 'react-router-dom';\nimport queryString from 'query-string';\nimport { LoadingOutlined } from '@ant-design/icons';\nimport { Spin } from 'antd';\n\nimport CreateVotingPlan from '@web/components/FanOutVotingPlan/components/CreateVotingPlan';\nimport FanOutLogo from '@web/components/FanOut/components/icons/FanOutLogo';\nimport {\n small800Breakpoint,\n smallBreakpoint,\n} from '@web/components/VoterRegistration/newComponents/breakpoints';\nimport theme from '@web/styles/theme';\nimport {\n useVotingPlan,\n useSurveyActivity,\n} from '@web/components/FanOutVotingPlan/hooks/useVotingPlan';\nimport { useGetReferrer } from '@web/components/FanOut/hooks/useFanOut';\nimport { useTrackFanOut } from '@web/components/FanOut/hooks/useFanOutAmplitude';\n\nconst Wrapper = styled.div`\n display: flex;\n background: #f8f9fd;\n min-height: 100vh;\n padding: 32px;\n gap: 45px;\n justify-content: space-between;\n\n ${({ $lastPage }) =>\n $lastPage &&\n css`\n justify-content: center;\n background: radial-gradient(\n 64.5% 64.52% at 97.64% 1.3%,\n rgba(197, 55, 94, 0.2) 0%,\n rgba(197, 55, 94, 0) 100%\n ),\n radial-gradient(\n 66.22% 90.3% at 98.11% 98.85%,\n rgba(140, 205, 217, 0.2) 0%,\n rgba(140, 205, 217, 0) 100%\n ),\n radial-gradient(\n 64.49% 126.95% at 0% 100%,\n rgba(184, 59, 201, 0.2) 0%,\n rgba(184, 59, 201, 0) 100%\n ),\n radial-gradient(\n 86.75% 134.97% at 0% 0%,\n rgba(152, 204, 201, 0.2) 0%,\n rgba(152, 204, 201, 0) 100%\n ),\n radial-gradient(\n 53.76% 53.76% at 50% 46.24%,\n rgba(225, 159, 83, 0.2) 0%,\n rgba(225, 159, 83, 0) 100%\n ),\n #fff;\n `}\n\n ${smallBreakpoint} {\n padding: 20px;\n gap: 24px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n min-width: 100%;\n }\n`;\n\nconst StyledFanOutLogo = styled(FanOutLogo)`\n position: absolute;\n left: 40px;\n top: 40px;\n width: 107px;\n height: 20px;\n\n ${small800Breakpoint} {\n top: 20px;\n left: 20px;\n }\n`;\n\nconst RightWrapper = styled.div`\n display: flex;\n flex: 1;\n align-items: center;\n flex-direction: column;\n min-height: calc(100vh - 64px);\n\n ${smallBreakpoint} {\n min-height: unset;\n }\n`;\n\nconst VotingPlan = ({ activity }) => {\n const { activitySlug, campaignSlug } = useParams();\n const { search } = useLocation();\n const { referral_hash: referralHash } = queryString.parse(search);\n const votingPlanProps = useVotingPlan();\n\n const surveyProps = useSurveyActivity({ activity });\n const { referrer, referrerLoading } = useGetReferrer({\n activitySlug,\n campaignSlug,\n referralHash,\n });\n\n // Voting plan pages\n const {\n currentPage: { Component, index, pageName },\n oopsType: { errorType },\n } = votingPlanProps;\n\n useTrackFanOut({\n activity,\n name: errorType\n ? `FAN_OUT_VOTING_PLAN_${pageName}_${errorType}`.toUpperCase()\n : `FAN_OUT_VOTING_PLAN_${pageName}`,\n });\n\n if (referrerLoading) {\n return (\n <div className=\"flex-row justify-content-center mt-4\">\n <Spin indicator={<LoadingOutlined style={{ fontSize: 24 }} spin />} />\n </div>\n );\n }\n return (\n <Wrapper $lastPage={index === 4}>\n {index === 4 ? (\n <>\n <StyledFanOutLogo fill={theme.colors.trueBlack} />\n <Component\n {...votingPlanProps}\n {...surveyProps}\n referrer={referrer}\n referralHash={referralHash}\n activity={activity}\n />\n </>\n ) : (\n <>\n <CreateVotingPlan referrer={referrer} />\n <RightWrapper>\n <Component\n {...votingPlanProps}\n {...surveyProps}\n referrer={referrer}\n referralHash={referralHash}\n activity={activity}\n />\n </RightWrapper>\n </>\n )}\n </Wrapper>\n );\n};\n\nVotingPlan.propTypes = {\n activity: PropTypes.object.isRequired,\n};\n\nVotingPlan.defaultProps = {};\n\nexport default VotingPlan;\n","// https://www.figma.com/file/NFYhKfKPHOeisKckQ686Vb/Headcount?node-id=1215%3A2268\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styled, { css } from 'styled-components';\n\nexport const variants = {\n default: css`\n font-size: 1rem;\n `,\n defaultImportant: css`\n font-size: 1rem !important;\n `,\n f1: css`\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 1.375rem; // 22px;\n `,\n f2: css`\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 1.125rem; // 18px;\n `,\n f3: css`\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 1rem;\n `,\n small: css`\n font-size: 0.75rem; // 12px;\n `,\n subtitle: css`\n font-size: 0.75rem; // 12px;\n text-transform: uppercase;\n `,\n title: css`\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 1.75rem; // 28px;\n `,\n};\n\nconst StyledText = styled.p`\n color: ${({ $color, theme }) => theme.colors[$color]};\n font-family: ${({ theme }) => theme.fonts.regular};\n margin: 0; // this prevents antd margin from applying, override in your implementation\n ${({ $variant }) => $variant}\n`;\n\nfunction Text({ color, variant, ...rest }) {\n function getVariant() {\n let thisVariant;\n try {\n thisVariant = variants[variant];\n } catch (err) {\n console.error(`<Text /> error: variant ${variant} is not supported.`);\n return null;\n }\n return thisVariant;\n }\n\n const $variant = getVariant();\n\n if (!$variant) {\n return null;\n }\n return <StyledText $color={color} $variant={$variant} {...rest} />;\n}\n\nText.propTypes = {\n color: PropTypes.string, // must be one of the colors from the theme\n variant: PropTypes.oneOf(['default', 'f1', 'f2', 'f3', 'small', 'subtitle', 'title']),\n};\n\nText.defaultProps = {\n color: 'black',\n variant: 'default',\n};\n\nexport default Text;\n","// Design: https://www.figma.com/file/NFYhKfKPHOeisKckQ686Vb/Headcount?node-id=1218%3A1667\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport DotLoader from '@web/components/DotLoader';\nimport { variants as textVariants } from '../Text';\n\nconst variants = {\n colored: css`\n box-shadow: 0px 0px 24px 4px rgba(160, 160, 160, 0.42);\n color: ${({ theme }) => theme.colors.black};\n font-weight: 600;\n line-height: 150%;\n border: none;\n height: 56px;\n `,\n outlined: css`\n box-shadow: 0px 0px 24px 4px rgba(160, 160, 160, 0.42);\n color: ${({ theme }) => theme.colors.black};\n font-weight: 600;\n line-height: 150%;\n border: 1px solid black;\n `,\n primary: css`\n background-color: ${({ theme }) => theme.colors.black};\n border: 1px solid ${({ theme }) => theme.colors.black};\n color: ${({ theme }) => theme.colors.bgGray};\n `,\n secondary: css`\n background-color: transparent;\n border: 1px solid ${({ theme }) => theme.colors.black};\n color: ${({ theme }) => theme.colors.black};\n `,\n solid: css`\n box-shadow: 0px 0px 24px 4px rgba(160, 160, 160, 0.42);\n color: ${({ theme }) => theme.colors.white};\n font-weight: 600;\n line-height: 150%;\n border: 1px solid black;\n `,\n tertiary: css`\n background-color: transparent;\n border: 1px solid transparent;\n color: ${({ theme }) => theme.colors.black};\n `,\n};\n\nconst bgColors = {\n black: css`\n background: ${({ theme }) => theme.colors.black};\n `,\n green: css`\n background: ${({ theme }) => theme.colors.green};\n `,\n purple: css`\n background: ${({ theme }) => theme.colors.purple};\n `,\n teal: css`\n background: ${({ theme }) => theme.colors.teal};\n `,\n};\n\n// Sizes are -2px from the designs to account for border\nconst sizes = {\n default: css`\n height: 42px;\n `,\n large: css`\n height: 54px;\n `,\n};\n\nconst StyledButton = styled.button`\n align-items: center;\n border-radius: 12px;\n display: flex;\n justify-content: center;\n font-size: 1rem;\n padding: 0 24px;\n transition: opacity 200ms ease-out;\n :disabled {\n opacity: 0.5;\n }\n :hover {\n opacity: 0.7;\n }\n ${textVariants.f2}\n ${({ $size }) => $size}\n ${({ $variant }) => $variant}\n ${({ $bgColor }) => $bgColor}\n`;\n\nfunction Button({ children, bgColor, disabled, loading, size, variant, ...rest }) {\n const $bgColor = bgColors[bgColor];\n const $variant = variants[variant];\n const $size = sizes[size];\n return (\n <StyledButton\n $bgColor={$bgColor}\n disabled={disabled || loading}\n $size={$size}\n $variant={$variant}\n {...rest}\n >\n {loading ? <DotLoader /> : children}\n </StyledButton>\n );\n}\n\nButton.propTypes = {\n bgColor: PropTypes.oneOf(['black', 'green', 'teal', 'purple', 'white']),\n children: PropTypes.any,\n disabled: PropTypes.bool,\n loading: PropTypes.bool,\n size: PropTypes.oneOf(['default', 'large']),\n variant: PropTypes.oneOf(['colored', 'outlined', 'primary', 'secondary', 'solid', 'tertiary']),\n};\n\nButton.defaultProps = {\n bgColor: '',\n children: null,\n disabled: false,\n loading: false,\n size: 'default',\n variant: 'primary',\n};\n\nexport default Button;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst StyledHeader = styled.img`\n margin-bottom: ${({ theme }) => theme.spacing.wide};\n width: 100%;\n`;\n\nfunction Header(props) {\n if (!props.src) {\n return null;\n }\n\n if (!props.url) {\n return <StyledHeader {...props} />;\n }\n\n return (\n <a href={props.url} target=\"_blank\" rel=\"noreferrer\">\n <StyledHeader {...props} />\n </a>\n );\n}\n\nHeader.propTypes = {\n alt: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n src: PropTypes.string,\n url: PropTypes.string,\n};\n\nHeader.defaultProps = {};\n\nexport default Header;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst StyledHeroImage = styled.img`\n border-radius: 12px;\n box-shadow: 0px 0px 24px 4px rgba(160, 160, 160, 0.42);\n margin-bottom: ${({ theme }) => theme.spacing.wide};\n width: 100%;\n`;\n\nfunction HeroImage(props) {\n if (!props.src) {\n return null;\n }\n\n return <StyledHeroImage {...props} />;\n}\n\nHeroImage.propTypes = {\n alt: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n src: PropTypes.string.isRequired,\n};\n\nHeroImage.defaultProps = {};\n\nexport default HeroImage;\n","import styled from 'styled-components';\n\nconst Link = styled.a`\n &&& {\n color: ${({ theme }) => theme.colors.blue};\n }\n`;\nexport default Link;\n","import React, { useEffect, useMemo, useState } from 'react';\n\nimport { useLocation } from 'react-router-dom/cjs/react-router-dom';\nimport { useHistory } from 'react-router-dom/cjs/react-router-dom.min';\nimport styled, { css } from 'styled-components';\n\nimport i18n, { setAppLanguage } from '@web/components/i18n';\n\nconst Wrapper = styled.div`\n display: flex;\n height: 40px;\n position: absolute;\n top: 10px;\n right: 10px;\n border: solid 1px black;\n border-radius: 6px;\n`;\n\nconst StyledButton = styled.button`\n width: 50px;\n ${({ $active }) =>\n $active\n ? css`\n background-color: black;\n color: white;\n border: none;\n `\n : css`\n background-color: transparent;\n color: black;\n border: none;\n `}\n`;\n\nconst LanguageToggle = () => {\n const { search, pathname } = useLocation();\n const history = useHistory();\n const query = useMemo(() => new URLSearchParams(search), [search]);\n const defaultLanguage = useMemo(() => {\n const defaultValue = query.get('language');\n if (!['en', 'es'].includes(defaultValue)) {\n return 'en';\n }\n return defaultValue;\n }, [query]);\n\n const [activeLanguage, setActiveLanguage] = useState(defaultLanguage);\n\n useEffect(() => {\n if (i18n.language !== activeLanguage) {\n const url = new URL(window.location.href);\n url.searchParams.set('language', activeLanguage);\n history.replace(`${pathname}?${url.searchParams.toString()}`);\n setAppLanguage(activeLanguage, true);\n }\n }, [activeLanguage, history, pathname]);\n\n return (\n <Wrapper>\n <StyledButton $active={activeLanguage === 'en'} onClick={() => setActiveLanguage('en')}>\n EN\n </StyledButton>\n <StyledButton $active={activeLanguage === 'es'} onClick={() => setActiveLanguage('es')}>\n ES\n </StyledButton>\n </Wrapper>\n );\n};\n\nexport default LanguageToggle;\n","import useMedia from '@web/hooks/useMedia';\n\nfunction useIsDesktop() {\n const isDesktop = useMedia('(min-width: 1200px)');\n return isDesktop;\n}\n\nexport default useIsDesktop;\n","function useIsPartner(team) {\n return team && team.headcount_partner;\n}\n\nexport default useIsPartner;\n","import { useCallback, useEffect, useState } from 'react';\nimport { useLocation } from 'react-router-dom/cjs/react-router-dom';\nimport queryString from 'query-string';\nimport { flows } from '..';\n\nconst useRedirectRules = ({ activity, setSelectedFlow }) => {\n const [redirectUrl, setRedirectUrl] = useState(null);\n const location = useLocation();\n const {\n redirect_campaign_slug,\n redirect_activity_slug,\n register_to_vote,\n redirect_team_slug,\n ...other\n } = queryString.parse(location.search);\n\n useEffect(() => {\n if (redirect_campaign_slug && redirect_activity_slug) {\n const params = {\n ...other,\n ...(register_to_vote && { register_to_vote }),\n };\n\n const queryString = new URLSearchParams(params).toString();\n const teamPath = redirect_team_slug ? `/teams/${redirect_team_slug}` : '';\n\n setRedirectUrl(\n `/campaigns/${redirect_campaign_slug}/activities/${redirect_activity_slug}${teamPath}${\n queryString ? `?${queryString}` : ''\n }`,\n );\n }\n }, [other, redirect_activity_slug, redirect_campaign_slug, redirect_team_slug, register_to_vote]);\n\n const goToCheckRegistration = useCallback(() => {\n if (!activity?.campaign?.headcount_rct_enabled && register_to_vote === 'true') {\n setSelectedFlow(flows.CHECK_REGISTRATION);\n }\n }, [activity?.campaign?.headcount_rct_enabled, register_to_vote, setSelectedFlow]);\n\n useEffect(() => {\n goToCheckRegistration();\n }, [goToCheckRegistration]);\n\n return redirectUrl;\n};\n\nexport default useRedirectRules;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Button from '../Button';\nimport Header from '../Header';\nimport HeroImage from '../HeroImage';\nimport Link from '@web/components/Headcount/components/Link';\nimport LanguageToggle from './LanguageToggle';\n\nimport useIsDesktop from '../../hooks/useIsDesktop';\nimport useIsPartner from '../../hooks/useIsPartner';\nimport useRedirectRules from '../../hooks/useRedirectRules';\nimport { useTranslation } from 'react-i18next';\n\nimport { replaceDefaultCampaignImage } from '@web/utils/string';\nimport { trackPageViewWithDynamicIDs } from '@web/services/analytics';\nimport { useHistory } from 'react-router-dom/cjs/react-router-dom';\n\nconst StyledLink = styled.div`\n margin-top: ${({ theme }) => theme.spacing.tight};\n font-size: 0.75rem; // 12px;\n text-align: center;\n`;\n\nconst ButtonWrapper = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst StyledButton = styled(Button)`\n margin-bottom: ${({ theme }) => theme.spacing.wide};\n font-size: 1rem;\n`;\n\nconst Notice = styled.div`\n font-weight: 600;\n color: ${({ theme }) => theme.colors.textDarkGray};\n text-align: center;\n`;\n\nfunction ChooseFlow({ activity, flows, setSelectedFlow, team }) {\n const { t } = useTranslation();\n const isDesktop = useIsDesktop();\n const isPartner = useIsPartner(team);\n const cannabisRegistrationEnabled = activity?.campaign?.cannabis_registration_enabled;\n const redirectUrl = useRedirectRules({ activity, setSelectedFlow });\n const history = useHistory();\n\n function getTeamImage() {\n if (!isPartner) {\n return null;\n }\n if (isDesktop) {\n return team?.hero_img_url;\n }\n return team?.mobile_hero_img_url;\n }\n const teamImageSrc = getTeamImage();\n const logoUrl = isPartner && team.profile_img_url ? team.profile_img_url : activity.media_url;\n\n function scrollToCTAButtons() {\n if (!isDesktop) {\n document.getElementById('cta-buttons').scrollIntoView({ behavior: 'smooth' });\n }\n }\n\n function checkForRedirect(activity, setSelectedFlow) {\n if (redirectUrl) {\n history.push(redirectUrl);\n } else {\n setSelectedFlow(flows.CHECK_REGISTRATION);\n }\n }\n\n React.useEffect(() => {\n trackPageViewWithDynamicIDs({\n fbPixelId: activity?.settings?.pixel_fb_id,\n gaTrackingId: activity?.settings?.pixel_ga_id,\n gtmPixelId: activity?.settings?.pixel_gtm_id,\n snapchatPixelId: activity?.settings?.pixel_sc_id,\n });\n }, [\n activity?.settings?.pixel_fb_id,\n activity?.settings?.pixel_ga_id,\n activity?.settings?.pixel_gtm_id,\n activity?.settings?.pixel_sc_id,\n ]);\n\n // Admin can add multiple incentives to the activity, but as a short-term solution we use first incentive until find better solution\n const activityIncentive = React.useMemo(\n () =>\n activity?.activity_incentives_attributes?.length > 0\n ? activity?.activity_incentives_attributes[0]\n : null,\n [activity],\n );\n\n const headcountMtvEnabled = React.useMemo(\n () => activity?.campaign?.headcount_mtv_enabled,\n [activity?.campaign?.headcount_mtv_enabled],\n );\n\n const headcountRtcEnabled = React.useMemo(\n () => activity?.campaign?.headcount_rct_enabled,\n [activity?.campaign?.headcount_rct_enabled],\n );\n\n const noticeText = React.useMemo(() => {\n if (headcountMtvEnabled) {\n return t('check_registration.headcount.mtv.notice');\n }\n\n if (headcountRtcEnabled) {\n return t('check_registration.headcount.rct.notice');\n }\n return t('check_registration.headcount.notice');\n }, [headcountMtvEnabled, headcountRtcEnabled, t]);\n\n const noticeRedText = React.useMemo(() => {\n if (headcountMtvEnabled) {\n return t('check_registration.headcount.mtv.notice_red');\n }\n\n if (headcountRtcEnabled) {\n return t('check_registration.headcount.rct.notice_red');\n }\n return t('check_registration.headcount.notice_red');\n }, [headcountMtvEnabled, headcountRtcEnabled, t]);\n\n return (\n <>\n <LanguageToggle />\n <Header\n onClick={scrollToCTAButtons}\n alt={activity.title}\n src={logoUrl}\n url={activity?.campaign?.website_url}\n />\n {!isDesktop && !isPartner && (\n <HeroImage\n onClick={scrollToCTAButtons}\n alt={activity.title}\n src={activity?.mobile_hero_img_url}\n />\n )}\n {!isDesktop && teamImageSrc && (\n <HeroImage onClick={scrollToCTAButtons} alt={team?.name} src={teamImageSrc} />\n )}\n {!isDesktop && isPartner && (\n <HeroImage onClick={scrollToCTAButtons} alt={team?.name} src={team?.incentives_img_url} />\n )}\n {!isDesktop && !isPartner && (\n <HeroImage\n onClick={scrollToCTAButtons}\n alt={activityIncentive?.name}\n src={replaceDefaultCampaignImage(activityIncentive?.image_url)}\n />\n )}\n <ButtonWrapper id=\"cta-buttons\">\n {headcountRtcEnabled ? (\n <StyledButton onClick={() => checkForRedirect(activity, setSelectedFlow)} size=\"large\">\n {t('check_registration.headcount.rct.ctaName')}\n </StyledButton>\n ) : (\n <>\n <StyledButton\n bgColor={cannabisRegistrationEnabled ? 'black' : isPartner ? '' : 'green'}\n onClick={() => setSelectedFlow(flows.CHECK_REGISTRATION)}\n size=\"large\"\n variant={cannabisRegistrationEnabled ? 'solid' : isPartner ? 'primary' : 'colored'}\n >\n {t('check_registration.headcount.flowCheckRegistration')}\n </StyledButton>\n <StyledButton\n bgColor={cannabisRegistrationEnabled ? 'white' : isPartner ? '' : 'teal'}\n onClick={() => setSelectedFlow(flows.REGISTER_TO_VOTE)}\n size=\"large\"\n variant={cannabisRegistrationEnabled ? 'outlined' : isPartner ? 'primary' : 'colored'}\n >\n {t('check_registration.headcount.flowRegisterToVote')}\n </StyledButton>\n <StyledButton\n bgColor={cannabisRegistrationEnabled ? 'white' : isPartner ? '' : 'purple'}\n onClick={() => setSelectedFlow(flows.WANT_TO_HELP)}\n size=\"large\"\n variant={\n cannabisRegistrationEnabled ? 'outlined' : isPartner ? 'secondary' : 'colored'\n }\n >\n {t('check_registration.headcount.flowWantToHelp')}\n </StyledButton>\n </>\n )}\n </ButtonWrapper>\n {headcountRtcEnabled && <Notice style={{ fontSize: 12 }}>{noticeText}</Notice>}\n\n {!cannabisRegistrationEnabled && isPartner && (\n <>\n {!headcountRtcEnabled && (\n <>\n <Notice style={{ fontSize: 12 }}>{noticeText}</Notice>\n <Notice style={{ color: 'red', fontSize: 12 }}>{noticeRedText}</Notice>\n </>\n )}\n <StyledLink>\n <Link\n href={team?.terms_link || activity?.terms_link || activity?.campaign?.terms_link}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {t('check_registration.headcount.termsAndConditions')}\n </Link>\n </StyledLink>\n <StyledLink>\n <Link href={activity?.campaign?.privacy_link} target=\"_blank\" rel=\"noopener noreferrer\">\n {t('check_registration.headcount.privacyPolicy')}\n </Link>\n </StyledLink>\n </>\n )}\n {cannabisRegistrationEnabled && (\n <>\n <Notice>{t('check_registration.headcount.cannabis_notice')}</Notice>\n <Notice style={{ color: 'red', fontSize: 12 }}>\n {t('check_registration.headcount.notice_red')}\n </Notice>\n <StyledLink>\n <Link href={activity?.campaign?.privacy_link} target=\"_blank\" rel=\"noopener noreferrer\">\n {t('check_registration.headcount.privacyPolicy')}\n </Link>\n </StyledLink>\n </>\n )}\n </>\n );\n}\n\nChooseFlow.propTypes = {\n activity: PropTypes.shape({\n activity_incentives_attributes: PropTypes.arrayOf(\n PropTypes.shape({ image_url: PropTypes.string, name: PropTypes.string }),\n ),\n campaign: PropTypes.object.isRequired,\n hero_img_url: PropTypes.string.isRequired,\n media_url: PropTypes.string,\n mobile_hero_img_url: PropTypes.string.isRequired,\n settings: PropTypes.shape({\n pixel_fb_id: PropTypes.string,\n pixel_ga_id: PropTypes.string,\n pixel_gtm_id: PropTypes.string,\n pixel_sc_id: PropTypes.string,\n }),\n terms_link: PropTypes.string,\n title: PropTypes.string.isRequired,\n }).isRequired,\n flows: PropTypes.shape({\n CHECK_REGISTRATION: PropTypes.string.isRequired,\n REGISTER_TO_VOTE: PropTypes.string.isRequired,\n WANT_TO_HELP: PropTypes.string.isRequired,\n }).isRequired,\n setSelectedFlow: PropTypes.func.isRequired,\n team: PropTypes.shape({\n hero_img_url: PropTypes.string,\n incentives_img_url: PropTypes.string,\n mobile_hero_img_url: PropTypes.string,\n name: PropTypes.string,\n profile_img_url: PropTypes.string,\n terms_link: PropTypes.string,\n }),\n};\n\nChooseFlow.defaultProps = {\n team: null,\n};\n\nexport default ChooseFlow;\n","import { fonts } from '@web/styles/theme';\n/* eslint-disable */\nconst styles = {\n colors: {\n // grays\n bgGray: '#E5E5E5',\n bgGray2: '#B3B3B3',\n borderGray: '#D2D2D2',\n textGray: '#9C9C9C',\n textDarkGray: '#424242',\n\n black: '#000',\n blue: '#4680D9',\n green: '#00FF00',\n red: '#DF2222',\n teal: '#00FFFF',\n purple: '#FF00FF',\n white: '#fff',\n yellow: '#FFFDAB',\n },\n fonts,\n spacing: {\n tight: '.5rem',\n normal: '1rem',\n wide: '1.5rem',\n wider: '4rem',\n },\n};\n\nexport default styles;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst StyledSideHeroImage = styled.img`\n border-radius: ${({ rounded }) => (rounded ? '12px' : '')};\n box-shadow: ${({ boxShadow }) => (boxShadow ? '0px 0px 24px 4px rgba(160, 160, 160, 0.42)' : '')};\n margin-bottom: ${({ margin, theme }) => (margin ? theme.spacing.wide : '')};\n max-width: ${({ maxWidth }) => maxWidth};\n width: 100%;\n`;\n\nfunction SideHeroImage(props) {\n if (!props.src) {\n return null;\n }\n\n return <StyledSideHeroImage {...props} />;\n}\n\nSideHeroImage.propTypes = {\n alt: PropTypes.string.isRequired,\n boxShadow: PropTypes.bool,\n margin: PropTypes.bool,\n maxWidth: PropTypes.string,\n rounded: PropTypes.bool,\n src: PropTypes.string.isRequired,\n url: PropTypes.string,\n};\n\nSideHeroImage.defaultProps = {\n boxShadow: false,\n margin: false,\n maxWidth: '720px',\n rounded: false,\n};\n\nexport default SideHeroImage;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { ThemeProvider } from 'styled-components';\n\nimport headcountTheme from '@web/components/Headcount/theme';\nimport StyledSideHeroImage from '../SideHeroImage';\nimport useIsPartner from '../../hooks/useIsPartner';\n\nimport { replaceDefaultCampaignImage } from '@web/utils/string';\n\nconst StyledLayout = styled.div`\n align-items: center;\n background-color: ${({ backgroundColor, theme }) => backgroundColor || theme.colors.bgGray};\n display: flex;\n min-height: 100vh;\n`;\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: row;\n flex: 1;\n height: 100%;\n margin-left: auto;\n margin-right: auto;\n max-width: 1440px;\n`;\n\nconst LeftSide = styled.div`\n align-items: center;\n display: flex;\n flex-direction: column;\n justify-content: center;\n width: 50%;\n`;\n\nconst RightSideCentered = styled.div`\n align-items: center;\n display: flex;\n width: 50%;\n`;\n\nconst RightSideTop = styled.div`\n display: flex;\n padding-bottom: ${({ theme }) => theme.spacing.wider};\n padding-top: ${({ theme }) => theme.spacing.wider};\n width: 50%;\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n margin: 0 auto;\n max-width: 500px;\n width: 100%;\n`;\n\nfunction HeadcountLayoutDesktop({\n activity,\n backgroundColor,\n children,\n chooseFlow,\n team,\n ...rest\n}) {\n const isPartner = useIsPartner(team);\n\n // Admin can add multiple incentives to the activity, but as a short-term solution we use first incentive until find better solution\n const activityIncentive = React.useMemo(\n () =>\n activity?.activity_incentives_attributes?.length > 0\n ? activity?.activity_incentives_attributes[0]\n : null,\n [activity],\n );\n\n return (\n <ThemeProvider theme={headcountTheme}>\n <meta name=\"theme-color\" content={backgroundColor || headcountTheme.colors.bgGray} />\n <StyledLayout backgroundColor={backgroundColor} {...rest}>\n <Wrapper>\n <LeftSide>\n {!isPartner && (\n <>\n <StyledSideHeroImage\n alt={activity?.title}\n maxWidth=\"720px\"\n margin\n src={activity?.hero_img_url}\n />\n\n <StyledSideHeroImage\n alt={activityIncentive?.name}\n maxWidth=\"500px\"\n rounded\n src={replaceDefaultCampaignImage(activityIncentive?.image_url)}\n />\n </>\n )}\n\n {isPartner && (\n <>\n <StyledSideHeroImage\n alt={team?.name}\n boxShadow\n margin\n maxWidth=\"500px\"\n rounded\n src={team?.hero_img_url}\n />\n <StyledSideHeroImage\n alt={team?.name}\n maxWidth=\"500px\"\n rounded\n src={team?.incentives_img_url}\n />\n </>\n )}\n </LeftSide>\n {chooseFlow && (\n <RightSideCentered>\n <Container>{children}</Container>\n </RightSideCentered>\n )}\n {!chooseFlow && (\n <RightSideTop>\n <Container>{children}</Container>\n </RightSideTop>\n )}\n </Wrapper>\n </StyledLayout>\n </ThemeProvider>\n );\n}\n\nHeadcountLayoutDesktop.propTypes = {\n activity: PropTypes.object.isRequired,\n backgroundColor: PropTypes.string,\n children: PropTypes.any.isRequired,\n chooseFlow: PropTypes.bool.isRequired,\n team: PropTypes.object,\n};\n\nHeadcountLayoutDesktop.defaultProps = {};\n\nexport default HeadcountLayoutDesktop;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { ThemeProvider } from 'styled-components';\n\nimport headcountTheme from '@web/components/Headcount/theme';\nimport { media } from '@web/styles/theme';\n\nconst StyledLayout = styled.div`\n align-items: center;\n background-color: ${({ backgroundColor, theme }) => backgroundColor || theme.colors.bgGray};\n display: flex;\n min-height: 100vh;\n flex-direction: column;\n padding: ${({ theme }) => `3rem ${theme.spacing.wide} 3rem`};\n ${media.ns} {\n padding: ${({ theme }) => `${theme.spacing.wider} ${theme.spacing.wide} 6rem`};\n }\n`;\n\nconst Container = styled.div`\n margin: 0 auto;\n max-width: 500px;\n width: 100%;\n flex: 1;\n flex-direction: column;\n display: flex;\n`;\n\nfunction HeadcountLayoutMobile({ backgroundColor, children, ...rest }) {\n return (\n <ThemeProvider theme={headcountTheme}>\n <meta name=\"theme-color\" content={backgroundColor || headcountTheme.colors.bgGray} />\n <StyledLayout backgroundColor={backgroundColor} {...rest}>\n <Container>{children}</Container>\n </StyledLayout>\n </ThemeProvider>\n );\n}\n\nHeadcountLayoutMobile.propTypes = {\n backgroundColor: PropTypes.string,\n children: PropTypes.any.isRequired,\n};\n\nHeadcountLayoutMobile.defaultProps = {};\n\nexport default HeadcountLayoutMobile;\n","import * as React from 'react';\nimport styled from 'styled-components';\n\nimport Text from '@web/components/Headcount/components/Text';\n\nconst ErrorTextWrapper = styled.div`\n line-height: 1; // antd override\n margin-top: 0.25rem;\n`;\n\nfunction ErrorText(props) {\n return (\n <ErrorTextWrapper>\n <Text as=\"span\" color=\"red\" variant=\"small\" {...props} />\n </ErrorTextWrapper>\n );\n}\n\nErrorText.propTypes = {};\n\nErrorText.defaultProps = {};\n\nexport default ErrorText;\n","import styled, { css } from 'styled-components';\nimport { variants as textVariants } from '../Text';\n\n// For simpler imports\nexport { default as ErrorText } from './ErrorText';\n\nexport const Label = styled.label`\n margin-bottom: 0.4rem;\n ${textVariants.defaultImportant}\n`;\n\nexport const InputWrapper = styled.div`\n display: flex;\n margin-top: ${({ theme }) => theme.spacing.normal};\n flex-direction: column;\n`;\n\nexport const inputStyle = css`\n // fix address autocomplete field background color for iPhones\n background: ${({ theme }) => theme.colors.white};\n\n &&& {\n align-items: center;\n border: 1px solid\n ${({ $hasError, theme }) => ($hasError ? theme.colors.red : theme.colors.borderGray)};\n border-radius: 8px;\n color: ${({ $hasError, theme }) => ($hasError ? theme.colors.red : theme.colors.black)};\n display: flex;\n height: 38px;\n outline: 0;\n padding: 0 ${({ theme }) => theme.spacing.normal};\n\n // font style\n ${textVariants.default}\n\n ::placeholder {\n color: ${({ theme }) => theme.colors.textGray};\n }\n\n :focus {\n border: 1px solid\n ${({ $hasError, theme }) => ($hasError ? theme.colors.red : theme.colors.black)};\n box-shadow: none; // required because antd applies a blue outline\n outline: 0;\n }\n }\n`;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Autocomplete from 'react-google-autocomplete';\nimport { ErrorText, InputWrapper, Label, inputStyle } from './sharedStyles';\n\nimport { connect, getIn } from 'formik';\nimport parseAddress from '@web/utils/parseAddress';\n\nconst StyledAutocomplete = styled(Autocomplete)`\n ${inputStyle}\n`;\n\nfunction AddressInput({ formik, label, name, onChange, placeholder, ...rest }) {\n // MTS - Hardcoding 'address' in getIn because going through all of the locations where we'd\n // need to change address to searchAddress would be extremely error prone and not worth the\n // risk.\n // Reference: https://github.com/outvote/web-app/issues/8580#issuecomment-1184488355\n const error = getIn(formik.errors, 'address');\n const touched = getIn(formik.touched, 'address');\n const hasError = touched && error;\n\n const selectPlace = place => {\n const { street_name, street_number, ...parsedAddress } = parseAddress(place);\n onChange(parsedAddress);\n };\n\n const handleValueChange = event => {\n if (event.target.value === '') {\n onChange({\n address: '',\n city: '',\n county_name: '',\n state_abbrev: '',\n zip_code: '',\n });\n }\n };\n\n const options = {\n componentRestrictions: { country: 'us' },\n types: ['address'],\n };\n\n return (\n <InputWrapper>\n <Label htmlFor={name}>{label}</Label>\n <StyledAutocomplete\n autoComplete={'off'}\n apiKey={process.env.REACT_APP_GOOGLE_MAPS_API}\n defaultValue={''}\n $hasError={hasError}\n id={name}\n name={name}\n onChange={handleValueChange}\n onPlaceSelected={selectPlace}\n options={options}\n placeholder={placeholder ? placeholder : label}\n {...rest}\n />\n {hasError && <ErrorText>{error}</ErrorText>}\n </InputWrapper>\n );\n}\n\nAddressInput.propTypes = {\n formik: PropTypes.shape({\n errors: PropTypes.any.isRequired,\n touched: PropTypes.any.isRequired,\n }).isRequired,\n label: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n placeholder: PropTypes.string,\n};\n\nAddressInput.defaultProps = {\n placeholder: null,\n};\n\nexport default connect(AddressInput);\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Text from '@web/components/Headcount/components/Text';\n\nconst ContentWrapper = styled.div`\n margin-top: 2rem;\n`;\n\nconst StyledButtonRow = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nfunction ButtonRow({ children, error }) {\n return (\n <ContentWrapper>\n {error && (\n <Text color=\"red\" variant=\"f3\" style={{ marginBottom: '0.5rem' }}>\n {error}\n </Text>\n )}\n <StyledButtonRow>{children}</StyledButtonRow>\n </ContentWrapper>\n );\n}\n\nButtonRow.propTypes = {\n children: PropTypes.any.isRequired,\n error: PropTypes.string,\n};\n\nButtonRow.defaultProps = {\n error: null,\n};\n\nexport default ButtonRow;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { connect, Field, getIn } from 'formik';\nimport { ErrorText, InputWrapper, Label, inputStyle } from './sharedStyles';\n\nexport const StyledInput = styled(Field)`\n ${inputStyle}\n`;\n\nfunction Input({ formik, label, name, placeholder, ...rest }) {\n const error = getIn(formik.errors, name);\n const touched = getIn(formik.touched, name);\n const hasError = touched && error;\n return (\n <InputWrapper>\n <Label htmlFor={name}>{label}</Label>\n <StyledInput\n $hasError={hasError}\n id={name}\n name={name}\n placeholder={placeholder ? placeholder : label}\n {...rest}\n />\n {hasError && <ErrorText children={error} />}\n </InputWrapper>\n );\n}\n\nInput.propTypes = {\n formik: PropTypes.shape({\n errors: PropTypes.any.isRequired,\n touched: PropTypes.any.isRequired,\n }).isRequired,\n label: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n placeholder: PropTypes.string,\n};\n\nInput.defaultProps = {\n placeholder: null,\n};\n\nexport default connect(Input);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { connect, Field, getIn } from 'formik';\nimport { ErrorText, InputWrapper, Label, inputStyle } from '../sharedStyles';\nimport InputMask from 'react-input-mask';\n\nexport const StyledInput = styled(Field)`\n ${inputStyle}\n`;\n\nconst CustomInputMask = props => (\n <InputMask {...props}>{inputProps => <StyledInput {...inputProps} />}</InputMask>\n);\n\nfunction MaskedInput({ formik, label, name, placeholder, ...rest }) {\n const error = getIn(formik.errors, name);\n const touched = getIn(formik.touched, name);\n const hasError = touched && error;\n return (\n <InputWrapper>\n <Label htmlFor={name}>{label}</Label>\n <CustomInputMask\n $hasError={hasError}\n id={name}\n mask=\"99/99/9999\"\n name={name}\n placeholder={placeholder ? placeholder : label}\n {...rest}\n />\n {hasError && <ErrorText children={error} />}\n </InputWrapper>\n );\n}\n\nMaskedInput.propTypes = {\n formik: PropTypes.shape({\n errors: PropTypes.any.isRequired,\n touched: PropTypes.any.isRequired,\n }).isRequired,\n label: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n placeholder: PropTypes.string,\n};\n\nMaskedInput.defaultProps = {\n placeholder: null,\n};\n\nexport default connect(MaskedInput);\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport theme from '@web/components/Headcount/theme';\n\nfunction CheckboxIcon({ checked, hasError, ...rest }) {\n const checkboxColor = hasError ? theme.colors.red : theme.colors.textGray;\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...rest}\n >\n <rect x=\"0.5\" y=\"0.5\" width=\"15\" height=\"15\" rx=\"2.5\" fill=\"white\" />\n {checked && (\n <path\n d=\"M12.2656 4.98438C12.5703 5.26562 12.5703 5.75781 12.2656 6.03906L6.26562 12.0391C5.98438 12.3438 5.49219 12.3438 5.21094 12.0391L2.21094 9.03906C1.90625 8.75781 1.90625 8.26562 2.21094 7.98438C2.49219 7.67969 2.98438 7.67969 3.26562 7.98438L5.72656 10.4453L11.2109 4.98438C11.4922 4.67969 11.9844 4.67969 12.2656 4.98438Z\"\n fill=\"black\"\n />\n )}\n <rect\n x=\"0.5\"\n y=\"0.5\"\n width=\"15\"\n height=\"15\"\n rx=\"2.5\"\n stroke={checkboxColor}\n strokeWidth={hasError ? 2 : 1}\n />\n </svg>\n );\n}\n\nCheckboxIcon.propTypes = {\n checked: PropTypes.bool.isRequired,\n hasError: PropTypes.bool.isRequired,\n};\n\nCheckboxIcon.defaultProps = {};\n\nexport default CheckboxIcon;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport CheckboxIcon from './CheckboxIcon';\nimport { connect, getIn } from 'formik';\nimport ErrorText from '@web/components/Headcount/components/Input/ErrorText';\nimport { Field } from 'formik';\nimport Text from '@web/components/Headcount/components/Text';\n\nconst CheckboxWrapper = styled.label`\n display: grid;\n grid-template-columns: 16px 1fr;\n grid-gap: 0 ${({ theme }) => theme.spacing.tight};\n padding-top: 2px;\n margin-bottom: 0;\n margin-top: ${({ theme }) => theme.spacing.tight};\n svg {\n transform: scale(1.2);\n }\n`;\n\nconst HiddenInput = styled(Field)`\n display: none;\n`;\n\nconst Content = styled.span`\n transform: translateY(-5px);\n`;\n\nfunction Checkbox({ children, checked, formik, name, onClick, ...rest }) {\n const error = getIn(formik.errors, name);\n const touched = getIn(formik.touched, name);\n const hasError = Boolean(touched && error);\n\n return (\n <>\n <CheckboxWrapper htmlFor={name} onClick={onClick} {...rest}>\n <HiddenInput name={name} type=\"checkbox\" />\n <CheckboxIcon checked={checked} hasError={hasError} style={{ cursor: 'pointer' }} />\n <Content>\n <Text as=\"span\" color=\"textDarkGray\" variant=\"small\">\n {children}\n </Text>\n </Content>\n </CheckboxWrapper>\n {hasError && <ErrorText>{error}</ErrorText>}\n </>\n );\n}\n\nCheckbox.propTypes = {\n checked: PropTypes.bool.isRequired,\n children: PropTypes.any.isRequired,\n formik: PropTypes.shape({\n errors: PropTypes.any.isRequired,\n touched: PropTypes.any.isRequired,\n }).isRequired,\n name: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n};\n\nCheckbox.defaultProps = {};\n\nexport default connect(Checkbox);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Link from '@web/components/Headcount/components/Link';\nimport Text from '@web/components/Headcount/components/Text';\n\nimport { useTranslation } from 'react-i18next';\n\nconst StyledTermsAndConditions = styled.div`\n margin-top: ${({ theme }) => theme.spacing.tight};\n`;\n\nconst StyledLink = styled.div`\n margin-top: ${({ theme }) => theme.spacing.tight};\n font-size: 0.75rem; // 12px;\n`;\n\nfunction TermsAndConditions({ activity, campaign, team }) {\n const { t } = useTranslation();\n const cannabisRegistrationEnabled = activity?.campaign?.cannabis_registration_enabled;\n\n function getTerms() {\n if (team?.terms) {\n return {\n terms: team.terms,\n termsLink: team?.terms_link || activity?.terms_link || campaign?.terms_link,\n };\n }\n if (activity?.terms) {\n return {\n terms: activity.terms,\n termsLink: null,\n };\n }\n return {\n terms: campaign.terms,\n termsLink: null,\n };\n }\n\n function replaceURLsWithLinks(terms) {\n var urlRegex = /(https?:\\/\\/[^\\s]+)/g;\n\n return terms?.replace(urlRegex, function (url) {\n return '<a href=\"' + url + '\">' + url.replace('http://', '').replace('https://', '') + '</a>';\n });\n }\n\n const terms = getTerms();\n const termsText = replaceURLsWithLinks(terms.terms);\n\n if (cannabisRegistrationEnabled) {\n terms.termsLink = null;\n }\n\n return (\n <StyledTermsAndConditions>\n <Text\n as=\"span\"\n color=\"textDarkGray\"\n dangerouslySetInnerHTML={{ __html: termsText }}\n variant=\"small\"\n ></Text>\n {terms?.termsLink && (\n <StyledLink>\n <Link href={terms.termsLink} target=\"_blank\" rel=\"noopener noreferrer\">\n {t('check_registration.headcount.termsAndConditions')}\n </Link>\n </StyledLink>\n )}\n </StyledTermsAndConditions>\n );\n}\n\nTermsAndConditions.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n cannabis_registration_enabled: PropTypes.bool,\n }),\n terms: PropTypes.string,\n terms_link: PropTypes.string,\n }),\n campaign: PropTypes.shape({\n terms: PropTypes.string,\n terms_link: PropTypes.string,\n }).isRequired,\n team: PropTypes.shape({\n terms: PropTypes.string,\n terms_link: PropTypes.string,\n }),\n};\n\nexport default TermsAndConditions;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\n\nimport Checkbox from '@web/components/Headcount/components/Input/Checkbox';\nimport TermsAndConditions from '@web/components/Headcount/components/FormComponents/TermsAndConditions';\n\nconst StyledOptIns = styled.div`\n margin-top: ${({ theme }) => theme.spacing.wide};\n`;\n\nfunction OptIns({ activity, setFieldValue, team, values }) {\n const { t } = useTranslation();\n\n const headcountRtcEnabled = React.useMemo(\n () => activity?.campaign?.headcount_rct_enabled,\n [activity?.campaign?.headcount_rct_enabled],\n );\n\n return (\n <StyledOptIns>\n <Checkbox\n checked={values?.smsOptIn}\n name=\"smsOptIn\"\n onClick={() => setFieldValue('smsOptIn', !values?.smsOptIn)}\n >\n {headcountRtcEnabled\n ? t('check_registration.headcount.rct.smsOptIn')\n : t('check_registration.headcount.smsOptIn')}\n </Checkbox>\n <Checkbox\n checked={values?.emailOptIn}\n name=\"emailOptIn\"\n onClick={() => setFieldValue('emailOptIn', !values?.emailOptIn)}\n >\n {headcountRtcEnabled\n ? t('check_registration.headcount.rct.emailOptIn')\n : t('check_registration.headcount.emailOptIn')}\n </Checkbox>\n <TermsAndConditions activity={activity} campaign={activity.campaign} team={team} />\n </StyledOptIns>\n );\n}\n\nOptIns.propTypes = {\n activity: PropTypes.object.isRequired,\n setFieldValue: PropTypes.func.isRequired,\n team: PropTypes.object,\n values: PropTypes.object.isRequired,\n};\n\nOptIns.defaultProps = {};\n\nexport default OptIns;\n","import * as React from 'react';\nimport * as yup from 'yup';\nimport dayjs from 'dayjs';\n\nimport {\n dateFormat,\n phoneRegExp,\n} from '@web/components/VoterRegistration/components/common/utils/schema';\nimport { useTranslation } from 'react-i18next';\n\nexport const ContactFormSchema = t =>\n yup.object().shape({\n address: yup.string().required(t('idvoters.validation.address')),\n dateOfBirth: yup\n .date()\n .typeError(t('idvoters.validation.valid_dob'))\n .required(t('idvoters.validation.dob'))\n .min(dayjs().subtract(120, 'year'), t('idvoters.validation.valid_dob'))\n .max(dayjs().subtract(15, 'year'), t('idvoters.validation.max_date', { age: 16 })),\n email: yup\n .string()\n .email(t('check_registration.invalid_email'))\n .required(t('idvoters.validation.emailRequired')),\n firstName: yup.string().required(t('idvoters.validation.firstname')),\n lastName: yup.string().required(t('idvoters.validation.lastname')),\n phone: yup\n .string()\n .matches(phoneRegExp, t('check_registration.invalid_phone'))\n .required(t('idvoters.validation.phoneRequired')),\n });\n\nexport const ReferralFormSchema = t =>\n yup.object().shape({\n address: yup.string().required(t('idvoters.validation.address')),\n dateOfBirth: yup\n .date()\n .typeError(t('idvoters.validation.valid_dob'))\n .required(t('idvoters.validation.dob'))\n .min(dayjs().subtract(120, 'year'), t('idvoters.validation.valid_dob'))\n .max(dayjs(), t('idvoters.validation.no_future_date')),\n email: yup\n .string()\n .email(t('check_registration.invalid_email'))\n .required(t('idvoters.validation.emailRequired')),\n firstName: yup.string().required(t('idvoters.validation.firstname')),\n lastName: yup.string().required(t('idvoters.validation.lastname')),\n phone: yup\n .string()\n .matches(phoneRegExp, t('check_registration.invalid_phone'))\n .required(t('idvoters.validation.phoneRequired')),\n });\n\nexport const updateAddressFormFields = t =>\n yup.object().shape({\n address: yup.string().required(t('idvoters.validation.address')),\n });\n\nexport const normalFlowFields = t =>\n yup.object().shape({\n showOnLeaderboard: yup.bool(),\n smsOptIn: yup.bool(),\n terms: yup\n .bool()\n .required(t('idvoters.validation.terms'))\n .oneOf([true], t('idvoters.validation.terms')),\n });\n\nexport const headcountFields = yup.object().shape({\n emailOptIn: yup.bool(),\n smsOptIn: yup.bool(),\n});\n\n// Convert \"YYYY-MM-DD\" to \"MM/DD/YYYY\"\nfunction getDateValue(date) {\n if (date) {\n return dayjs(date).format('MM/DD/YYYY');\n }\n return '';\n}\n\nfunction useContactForm(initialContact = {}) {\n const [contact, setContact] = React.useState(initialContact);\n const { t } = useTranslation();\n\n const contactFormInitialValues = {\n address: contact?.address || '',\n city: contact?.city || '',\n countyName: contact?.county_name || '',\n dateOfBirth: getDateValue(contact?.date_of_birth),\n email: contact?.email || '',\n firstName: contact?.first_name || '',\n lastName: contact?.last_name || '',\n phone: contact?.phone || '',\n stateAbbrev: contact?.state_abbrev || '',\n unitNumber: contact?.unit_number || '',\n zipCode: contact?.zip_code || '',\n };\n\n const updateAddressFormInitialValues = {\n address: contact?.address || '',\n city: contact?.city || '',\n countyName: contact?.county_name || '',\n stateAbbrev: contact?.state_abbrev || '',\n stateId: contact?.stateId || null,\n unitNumber: contact?.unit_number || '',\n zipCode: contact?.zip_code || '',\n };\n\n const headcountValues = {\n emailOptIn: true,\n smsOptIn: false,\n termsAndConditions: true,\n };\n\n const normalFlowValues = {\n showOnLeaderboard: true,\n smsOptIn: true,\n terms: true,\n };\n\n return {\n contact,\n dateFormat,\n initialValues: {\n contactForm: { ...contactFormInitialValues, ...normalFlowValues },\n contactFormHeadcount: { ...contactFormInitialValues, ...headcountValues },\n updateAddressForm: updateAddressFormInitialValues,\n },\n schemas: {\n contactForm: ContactFormSchema(t).concat(normalFlowFields(t)),\n contactFormHeadcount: ContactFormSchema(t).concat(headcountFields),\n referralFormHeadcount: ReferralFormSchema(t),\n updateAddressForm: updateAddressFormFields(t),\n },\n setContact,\n };\n}\n\nexport default useContactForm;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport AddressInput from '@web/components/Headcount/components/Input/AddressInput';\nimport Button from '@web/components/Headcount/components/Button';\nimport ButtonRow from '../ButtonRow';\nimport { Form } from 'formik-antd';\nimport { Formik } from 'formik';\nimport Input from '@web/components/Headcount/components/Input';\nimport MaskedInput from '@web/components/Headcount/components/Input/MaskedInput';\nimport OptIns from '@web/components/Headcount/components/OptIns';\nimport Text from '@web/components/Headcount/components/Text';\n\nimport { setContactFormResult } from '@web/reducers/voterRegistration';\nimport useContactForm from '@web/components/Headcount/hooks/useContactForm';\n// import { flows } from '@web/components/Headcount';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport useVoterRegistrationApi from '@web/components/Headcount/hooks/useVoterRegistrationApi';\nimport pxToRem from '@web/utils/pxToRem';\nimport { trackEventViewWithDynamicIDs } from '@web/services/analytics';\n\nconst StyledText = styled(Text)`\n margin-bottom: ${({ theme }) => theme.spacing.wide};\n line-height: 1.5;\n`;\n\nconst ThanksMessage = styled(Text)`\n font-size: ${pxToRem(32)};\n text-align: center;\n`;\n\nfunction ContactForm({\n activity,\n backToStart,\n contactFormTitle,\n contactFormSchema,\n nextPage,\n registrationStatus,\n setRootFlow,\n team,\n}) {\n const [isSubmitted, setIsSubmitted] = React.useState(false);\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const state = useSelector(state => state.voterRegistration);\n const { initialValues } = useContactForm(state.contactFormResult);\n const { handleError, submitContactForm } = useVoterRegistrationApi(activity, team);\n const [apiError, setApiError] = React.useState(null);\n const isHeadcountRctEnabled = React.useMemo(\n () => activity?.campaign?.headcount_rct_enabled,\n [activity?.campaign?.headcount_rct_enabled],\n );\n\n function handleSubmit(values, { setSubmitting }) {\n setApiError(null);\n setSubmitting(true);\n values.registrationStatus = registrationStatus;\n\n submitContactForm(values)\n .then(({ data }) => {\n setIsSubmitted(true);\n dispatch(setContactFormResult({ activity, contact: data }));\n trackEventViewWithDynamicIDs({\n actionName: 'headcount_form_filled',\n categoryName: 'Headcount Form Filled',\n fbPixelId: activity?.settings?.pixel_fb_id,\n gaTrackingId: activity?.settings?.pixel_ga_id,\n gtmPixelId: activity?.settings?.pixel_gtm_id,\n snapchatPixelId: activity?.settings?.pixel_sc_id,\n });\n // Special case to enable when GA has a runoff\n // Redirect to GA Runoff page directly for matching campaigns and if the submitted address is from GA\n // if (data.state_abbrev === 'GA' && shouldShowGARunoffPage(activity?.campaign)) {\n // setRootFlow(flows.GA_RUNOFF_PAGE);\n // } else { nextPage(); }\n if (!isHeadcountRctEnabled) {\n nextPage();\n }\n })\n .catch(err => {\n const errorMessage = handleError(err);\n setApiError(errorMessage);\n })\n .finally(() => {\n setSubmitting(false);\n });\n }\n\n function handleAddressChange(address, setFieldValue) {\n setFieldValue('address', address.address);\n setFieldValue('city', address.city);\n setFieldValue('zipCode', address.zip_code);\n setFieldValue('countyName', address.county_name);\n setFieldValue('stateAbbrev', address.state_abbrev);\n }\n\n const handleDateChange = ({ target: { value } }, setFieldValue) => {\n setFieldValue('dateOfBirth', value);\n };\n\n function getDefaultAddress(values) {\n if (values?.address) {\n return `${values.address}, ${values.city}, ${values.stateAbbrev}, USA`;\n }\n }\n\n const cannabisRegistrationEnabled = React.useMemo(\n () => activity?.campaign?.cannabis_registration_enabled,\n [activity?.campaign?.cannabis_registration_enabled],\n );\n\n const isHeadcountMtvEnabled = React.useMemo(\n () => activity?.campaign?.headcount_mtv_enabled,\n [activity?.campaign?.headcount_mtv_enabled],\n );\n\n initialValues.contactFormHeadcount.smsOptIn =\n !!cannabisRegistrationEnabled || !!isHeadcountMtvEnabled;\n\n return (\n <Formik\n initialValues={initialValues.contactFormHeadcount}\n onSubmit={handleSubmit}\n validationSchema={contactFormSchema}\n render={({ errors, isSubmitting, isValid, setFieldValue, touched, values, submitCount }) => {\n const showCompleted = isSubmitted && isHeadcountRctEnabled;\n\n return (\n <>\n {showCompleted ? (\n <>\n <ThanksMessage>{t('check_registration.headcount.rct.thanksMessage')}</ThanksMessage>\n </>\n ) : (\n <Form>\n <StyledText dangerouslySetInnerHTML={{ __html: contactFormTitle }} variant=\"f2\" />\n <Input\n autoComplete=\"email\"\n label={t('idvoters.labels.email')}\n name=\"email\"\n type=\"email\"\n />\n <Input\n autoComplete=\"tel\"\n label={t('idvoters.labels.phone')}\n name=\"phone\"\n type=\"tel\"\n />\n <Input\n autoComplete=\"given-name\"\n label={t('idvoters.labels.firstname')}\n name=\"firstName\"\n />\n <Input\n autoComplete=\"family-name\"\n label={t('idvoters.labels.lastname')}\n name=\"lastName\"\n />\n <MaskedInput\n label={t('idvoters.labels.date_of_birth')}\n name=\"dateOfBirth\"\n onChange={event => handleDateChange(event, setFieldValue)}\n placeholder=\"MM/DD/YYYY\"\n autoComplete=\"bday\"\n value={values?.dateOfBirth}\n type=\"tel\"\n />\n <AddressInput\n label={t('idvoters.labels.address')}\n name=\"searchAddress\"\n onChange={address => handleAddressChange(address, setFieldValue)}\n type=\"search\"\n defaultValue={getDefaultAddress(values)}\n />\n <Input label={t('idvoters.labels.unitNumber')} name=\"unitNumber\" />\n <OptIns\n activity={activity}\n setFieldValue={setFieldValue}\n team={team}\n values={values}\n />\n <ButtonRow error={apiError}>\n <Button\n onClick={backToStart}\n style={{ paddingLeft: 0 }}\n type=\"button\"\n variant=\"tertiary\"\n >\n {t('common.back')}\n </Button>\n <Button loading={isSubmitting} type=\"submit\">\n {t('common.submit')}\n </Button>\n </ButtonRow>\n </Form>\n )}\n </>\n );\n }}\n />\n );\n}\n\nContactForm.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.object.isRequired,\n settings: PropTypes.shape({\n pixel_fb_id: PropTypes.string,\n pixel_ga_id: PropTypes.string,\n pixel_gtm_id: PropTypes.string,\n pixel_sc_id: PropTypes.string,\n }),\n }).isRequired,\n backToStart: PropTypes.func.isRequired,\n contactFormSchema: PropTypes.object.isRequired,\n contactFormTitle: PropTypes.string.isRequired,\n flow: PropTypes.string,\n nextPage: PropTypes.func.isRequired,\n registrationStatus: PropTypes.string,\n setRootFlow: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nContactForm.defaultProps = {\n team: null,\n};\n\nexport default ContactForm;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { animated, useSpring } from 'react-spring';\n\nimport useIsPartner from '@web/components/Headcount/hooks/useIsPartner';\nimport { useTranslation } from 'react-i18next';\n\nconst Wrapper = styled.div`\n background-color: #b4b4b4;\n border-radius: ${({ $height, $isMtv }) => ($isMtv ? 4 : $height / 2)}px;\n border: ${({ $isMtv }) => ($isMtv ? 'solid 1px black' : 'unset')};\n display: flex;\n height: ${({ $height }) => $height}px;\n overflow: hidden;\n`;\n\nconst StyledProgressBar = styled(animated.div)`\n background-color: ${({ $isCannabis, $isPartner, theme }) =>\n $isCannabis ? theme.colors.yellow : $isPartner ? theme.colors.yellow : theme.colors.teal};\n border-radius: ${({ $height, $isMtv }) => ($isMtv ? 4 : $height / 2)}px;\n height: ${({ $height }) => $height}px;\n`;\n\nconst HowToFinishWrapper = styled.div`\n border: 2px solid black;\n border-radius: 4px;\n width: 43%;\n text-align: center;\n margin-left: ${({ $position }) => `calc(${$position}% - 21.5%)`};\n margin-top: 16px;\n position: relative;\n font-size: 12px;\n padding: 6px 10px;\n color: black;\n line-height: 12px;\n\n &:before {\n content: '';\n height: ${({ $height }) => `calc(${$height / 2}px + 16px)`};\n width: 2px;\n position: absolute;\n transform: translate(0, 0);\n left: 50%;\n bottom: 100%;\n background: black;\n }\n`;\n\nfunction ProgressBar({ height, progress, team, activity, numberOfPages }) {\n const { t } = useTranslation();\n\n const width = Math.ceil(progress * 100);\n const style = useSpring({\n width: `${width || 0}%`,\n });\n const isPartner = useIsPartner(team);\n const isCannabis = React.useMemo(\n () => activity?.campaign?.cannabis_registration_enabled,\n [activity?.campaign?.cannabis_registration_enabled],\n );\n const headcountMtvEnabled = React.useMemo(\n () => activity.campaign.headcount_mtv_enabled,\n [activity.campaign.headcount_mtv_enabled],\n );\n\n const progressBarHeight = React.useMemo(\n () => (headcountMtvEnabled ? 24 : height),\n [headcountMtvEnabled, height],\n );\n\n const lastStepProgress = React.useMemo(\n () => (100 / (numberOfPages + 1)) * numberOfPages,\n [numberOfPages],\n );\n\n const showHowToFinishSection = React.useMemo(\n () => headcountMtvEnabled && ~~(progress * 100) === ~~lastStepProgress,\n [lastStepProgress, headcountMtvEnabled, progress],\n );\n\n const errorMsg = `<ProgressBar /> progress prop requires a range between 0 and 1, received: ${progress}`;\n if (progress < 0 || progress > 1) {\n console.error(errorMsg);\n return null;\n }\n\n return (\n <>\n <Wrapper $isMtv={headcountMtvEnabled} $height={progressBarHeight}>\n <StyledProgressBar\n $height={progressBarHeight}\n style={style}\n $isCannabis={isCannabis}\n $isPartner={isPartner}\n $isMtv={headcountMtvEnabled}\n />\n </Wrapper>\n {showHowToFinishSection && (\n <HowToFinishWrapper $height={progressBarHeight} $position={lastStepProgress}>\n {t('check_registration.headcount.mtv.almostThere')}\n </HowToFinishWrapper>\n )}\n </>\n );\n}\n\nProgressBar.propTypes = {\n activity: PropTypes.object,\n height: PropTypes.number,\n numberOfPages: PropTypes.number.isRequired,\n progress: PropTypes.number.isRequired,\n team: PropTypes.object,\n};\n\nProgressBar.defaultProps = {\n height: 6,\n};\n\nexport default ProgressBar;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Header from '../Header';\nimport ProgressBar from '../ProgressBar';\n\nimport useIsPartner from '../../hooks/useIsPartner';\n\nconst StyledHeaderAndProgress = styled.div`\n margin: ${({ theme }) => theme.spacing.wide} 0;\n`;\n\nconst HeaderWrapper = styled.div`\n margin-bottom: ${({ theme }) => theme.spacing.normal};\n`;\n\nfunction HeaderAndProgress({ activity, progress, team, numberOfPages }) {\n const isPartner = useIsPartner(team);\n const imageSrc = isPartner && team.profile_img_url ? team.profile_img_url : activity.media_url;\n\n const isHeadcountRctEnabled = React.useMemo(\n () => activity?.campaign?.headcount_rct_enabled,\n [activity?.campaign?.headcount_rct_enabled],\n );\n\n return (\n <StyledHeaderAndProgress>\n <HeaderWrapper>\n <Header alt={activity.title} src={imageSrc} url={activity?.campaign?.website_url} />\n </HeaderWrapper>\n {!isHeadcountRctEnabled && (\n <ProgressBar\n progress={progress}\n team={team}\n numberOfPages={numberOfPages}\n activity={activity}\n />\n )}\n </StyledHeaderAndProgress>\n );\n}\n\nHeaderAndProgress.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.object.isRequired,\n hero_img_url: PropTypes.string,\n media_url: PropTypes.string,\n mobile_hero_img_url: PropTypes.string,\n title: PropTypes.string.isRequired,\n }).isRequired,\n numberOfPages: PropTypes.number.isRequired,\n progress: PropTypes.number.isRequired,\n team: PropTypes.shape({\n profile_img_url: PropTypes.string,\n }),\n};\n\nHeaderAndProgress.defaultProps = {};\n\nexport default HeaderAndProgress;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Button from '@web/components/Headcount/components/Button';\n\nimport { useTranslation } from 'react-i18next';\n\nconst StyledBackToStart = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 2rem;\n`;\n\nfunction BackToStart({ onClick }) {\n const { t } = useTranslation();\n return (\n <StyledBackToStart>\n <Button variant=\"secondary\" onClick={onClick}>\n {t('check_registration.headcount.startOver')}\n </Button>\n </StyledBackToStart>\n );\n}\n\nBackToStart.propTypes = {\n onClick: PropTypes.func.isRequired,\n};\n\nBackToStart.defaultProps = {};\n\nexport default BackToStart;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '@web/components/Headcount/components/Button';\n\nimport theme from '@web/components/Headcount/theme';\n\nfunction ExternalButtonLink({ href, ...rest }) {\n return (\n <Button\n as=\"a\"\n href={href}\n rel=\"noopener noreferrer\"\n style={{ color: theme.colors.bgGray, textDecoration: 'none' }}\n target=\"_blank\"\n {...rest}\n />\n );\n}\n\nExternalButtonLink.propTypes = {\n href: PropTypes.string.isRequired,\n};\n\nExternalButtonLink.defaultProps = {};\n\nexport default ExternalButtonLink;\n","import styled from 'styled-components';\n\nconst SIZE = 40;\n\nconst IconWrapper = styled.div`\n align-items: center;\n background-color: ${({ theme }) => theme.colors.black};\n border: none;\n border-radius: ${SIZE / 2}px;\n cursor: pointer;\n display: flex;\n height: ${SIZE}px;\n justify-content: center;\n margin-left: ${({ theme }) => theme.spacing.tight};\n transition: opacity 200ms ease-out;\n width: ${SIZE}px;\n :hover {\n opacity: 0.7;\n }\n`;\n\nexport default IconWrapper;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction CopyIcon(props) {\n return (\n <svg viewBox=\"0 0 19 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M14.2031 3.625V0.25H10.2656C9.31641 0.25 8.57812 1.02344 8.57812 1.9375V12.0625C8.57812 13.0117 9.31641 13.75 10.2656 13.75H17.0156C17.9297 13.75 18.7031 13.0117 18.7031 12.0625V4.75H15.3281C14.6953 4.75 14.2031 4.25781 14.2031 3.625ZM15.3281 0.25V3.625H18.7031L15.3281 0.25ZM7.45312 12.625V4.75H2.39062C1.44141 4.75 0.703125 5.52344 0.703125 6.4375V16.5625C0.703125 17.5117 1.44141 18.25 2.39062 18.25H9.14062C10.0547 18.25 10.8281 17.5117 10.8281 16.5625V14.875H9.70312C8.4375 14.875 7.45312 13.8906 7.45312 12.625Z\"\n fill=\"#E5E5E5\"\n />\n </svg>\n );\n}\n\nCopyIcon.propTypes = {\n height: PropTypes.number,\n};\n\nCopyIcon.defaultProps = {\n height: 19,\n};\n\nexport default CopyIcon;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ShareIcon(props) {\n return (\n <svg viewBox=\"0 0 17 19\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M14.0679 12.625V14.875C14.0679 15.5078 13.5405 16 12.9429 16H3.94287C3.31006 16 2.81787 15.5078 2.81787 14.875V12.625C2.81787 12.0273 2.29053 11.5 1.69287 11.5C1.06006 11.5 0.567871 12.0273 0.567871 12.625V14.875C0.567871 16.7734 2.04443 18.25 3.94287 18.25H12.9429C14.8062 18.25 16.3179 16.7734 16.3179 14.875V12.625C16.3179 12.0273 15.7905 11.5 15.1929 11.5C14.5601 11.5 14.0679 12.0273 14.0679 12.625ZM7.63428 0.601562L3.13428 5.10156C2.67725 5.52344 2.67725 6.26172 3.13428 6.68359C3.55615 7.14062 4.29443 7.14062 4.71631 6.68359L7.31787 4.11719V11.5C7.31787 12.1328 7.81006 12.625 8.44287 12.625C9.04053 12.625 9.56787 12.1328 9.56787 11.5V4.11719L12.1343 6.68359C12.5562 7.14062 13.2944 7.14062 13.7163 6.68359C14.1733 6.26172 14.1733 5.52344 13.7163 5.10156L9.21631 0.601562C8.79443 0.144531 8.05615 0.144531 7.63428 0.601562Z\"\n fill=\"#E5E5E5\"\n />\n </svg>\n );\n}\n\nShareIcon.propTypes = {\n height: PropTypes.number,\n};\n\nShareIcon.defaultProps = {\n height: 17,\n};\n\nexport default ShareIcon;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { track } from '@web/services/analytics';\nimport { useLocation } from 'react-router-dom/cjs/react-router-dom';\n\nimport Link from '../Link';\nimport Clipboard from 'react-clipboard.js';\nimport IconWrapper from './IconWrapper';\nimport CopyIcon from './CopyIcon';\nimport { message } from 'antd';\nimport ShareIcon from './ShareIcon';\nimport Text, { variants as textVariants } from '../Text';\n\nimport sendError from '@web/utils/sendError';\nimport { useTranslation } from 'react-i18next';\n\nimport useIsPartner from '../../hooks/useIsPartner';\n\n// This does not share the same input styles as Input\nconst LinkInput = styled.input`\n align-items: center;\n background-color: ${({ theme }) => theme.colors.white};\n border: none;\n border-radius: 3px;\n color: ${({ theme }) => theme.colors.black};\n display: flex;\n flex: 1;\n height: 40px;\n outline: 0;\n padding: ${({ theme }) => theme.spacing.normal};\n ${textVariants.normal}\n`;\n\nconst ShareSection = styled.div`\n align-items: center;\n display: flex;\n margin-bottom: ${({ $isHeadcount, theme }) => ($isHeadcount ? theme.spacing.wide : 0)};\n margin-top: ${({ $isHeadcount, theme }) => (!$isHeadcount ? theme.spacing.wide : 0)};\n`;\n\nconst StyledShareLink = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst StyledLink = styled.div`\n margin-top: ${({ theme }) => theme.spacing.tight};\n font-size: 0.75rem; // 12px;\n text-align: center;\n`;\n\nfunction ShareLink({ activity, referralLink, team }) {\n const { t } = useTranslation();\n const isPartner = useIsPartner(team);\n const { search } = useLocation();\n // share button will only be present for mobile devices\n const showShareButton = navigator?.share;\n const queryParams = new URLSearchParams(search);\n const activeLanguage = queryParams.get('language');\n referralLink = referralLink + (activeLanguage ? `?language=${activeLanguage}` : '');\n\n const headcountMtvEnabled = React.useMemo(\n () => activity?.campaign?.headcount_mtv_enabled,\n [activity?.campaign?.headcount_mtv_enabled],\n );\n\n const handleShare = React.useCallback(() => {\n const shareData = {\n text: isPartner ? team?.action_page_description : activity.description,\n title: isPartner ? team?.action_page_title : activity.title,\n url: referralLink,\n };\n if (navigator?.canShare && navigator.canShare(shareData) && navigator.share) {\n navigator.share(shareData).catch(err => {\n if (err.toString().includes('AbortError')) {\n // MTS - The share api throws this error when a user decides not to share.\n // It isn't a real error.\n return null;\n }\n\n sendError('Voter Registration: User encountered error while sharing', { err });\n });\n }\n }, [\n activity.description,\n activity.title,\n isPartner,\n referralLink,\n team?.action_page_description,\n team?.action_page_title,\n ]);\n\n const renderShare = React.useMemo(() => {\n return (\n <ShareSection $isHeadcount={headcountMtvEnabled}>\n <LinkInput readOnly value={referralLink} />\n\n <Clipboard\n component=\"span\"\n data-clipboard-text={referralLink}\n onSuccess={() => {\n message.info(t('common.copied_to_clipboard'));\n track('HEADCOUNT_COPY_SHARE_LINK', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n }}\n >\n <IconWrapper aria-label=\"Copy link\" role=\"button\">\n <CopyIcon />\n </IconWrapper>\n </Clipboard>\n\n {showShareButton && (\n <>\n {/* This was a \"button\" but Safari did not render the svg correctly */}\n <IconWrapper aria-label=\"Share\" onClick={handleShare} role=\"button\">\n <ShareIcon />\n </IconWrapper>\n </>\n )}\n </ShareSection>\n );\n }, [\n activity?.campaign?.id,\n activity?.campaign?.name,\n activity?.id,\n activity?.title,\n activity?.type,\n handleShare,\n headcountMtvEnabled,\n referralLink,\n showShareButton,\n t,\n team?.id,\n team?.name,\n ]);\n\n if (!referralLink) {\n console.error('Error <ShareLink /> : must pass referralLink as a prop');\n return null;\n }\n\n const antdOverrides = {\n lineHeight: 1,\n margin: 0,\n textAlign: headcountMtvEnabled ? 'center' : 'unset',\n whiteSpace: headcountMtvEnabled ? 'break-spaces' : 'unset',\n };\n return (\n <StyledShareLink style={{ marginBottom: headcountMtvEnabled ? 16 : 0 }}>\n {headcountMtvEnabled && renderShare}\n {!headcountMtvEnabled ? (\n <Text color=\"black\" style={antdOverrides} variant=\"f2\">\n {t('check_registration.headcount.shareLink')}\n </Text>\n ) : (\n <>\n <Text\n color=\"black\"\n dangerouslySetInnerHTML={{\n __html: t('check_registration.headcount.mtvShareLink.share'),\n }}\n style={{ ...antdOverrides, fontFamily: 'BasicSans-Regular' }}\n variant=\"f3\"\n ></Text>\n <br />\n <Text color=\"red\" style={antdOverrides} variant=\"f3\">\n {t('check_registration.headcount.mtvShareLink.share_red')}\n </Text>\n </>\n )}\n {!headcountMtvEnabled && renderShare}\n {headcountMtvEnabled && (\n <>\n {!headcountMtvEnabled && (\n <Text variant=\"small\" color=\"black\" style={{ marginTop: 10, textAlign: 'center' }}>\n {t('check_registration.headcount.mtvShareLink.warning')}\n </Text>\n )}\n <StyledLink>\n <Link\n href={team?.terms_link || activity?.terms_link || activity?.campaign?.terms_link}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {t('check_registration.headcount.termsAndConditions')}\n </Link>\n </StyledLink>\n </>\n )}\n </StyledShareLink>\n );\n}\n\nShareLink.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n headcount_mtv_enabled: PropTypes.bool,\n id: PropTypes.number,\n name: PropTypes.string,\n slug: PropTypes.string.isRequired,\n terms_link: PropTypes.string,\n }).isRequired,\n description: PropTypes.string.isRequired,\n id: PropTypes.number,\n slug: PropTypes.string.isRequired,\n terms_link: PropTypes.string,\n title: PropTypes.string.isRequired,\n type: PropTypes.string,\n }).isRequired,\n referralLink: PropTypes.string.isRequired,\n team: PropTypes.object,\n};\n\nShareLink.defaultProps = {};\n\nexport default ShareLink;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Text from '@web/components/Headcount/components/Text';\n\nconst Column = styled.div`\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: center;\n`;\n\nconst StyledVoterBox = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.black};\n border-radius: 12px;\n display: flex;\n margin: 2rem 0 ${({ theme }) => theme.spacing.wide};\n padding: ${({ theme }) => theme.spacing.normal};\n\n ${Column}:last-of-type {\n align-items: flex-end;\n }\n`;\n\nconst Label = styled.span`\n background-color: ${({ $bgColor, theme }) => theme.colors[$bgColor]};\n border-radius: 3px;\n padding: 0.25rem;\n`;\n\nconst Name = styled(Text)`\n line-height: 1.5;\n margin-bottom: ${({ theme }) => theme.spacing.tight};\n`;\n\nconst AddressLine = styled(Text).attrs(() => ({ variant: 'subtitle' }))`\n &&& {\n font-family: ${({ theme }) => theme.fonts.bold};\n text-transform: uppercase;\n }\n`;\n\nfunction VoterBox({ address, label, voterName }) {\n return (\n <StyledVoterBox>\n <Column>\n <Name>{voterName}</Name>\n <AddressLine>{address.line1}</AddressLine>\n {address.line2 && <AddressLine>{address.line2}</AddressLine>}\n <AddressLine>{address.line3}</AddressLine>\n </Column>\n <Column>\n <Label $bgColor={label?.bgColor || 'bgGray2'}>\n <Text as=\"span\" variant=\"f3\">\n {label.text}\n </Text>\n </Label>\n </Column>\n </StyledVoterBox>\n );\n}\n\nVoterBox.propTypes = {\n address: PropTypes.shape({\n line1: PropTypes.string.isRequired,\n line2: PropTypes.string,\n line3: PropTypes.string.isRequired,\n }).isRequired,\n label: PropTypes.shape({\n // I tried to add a default in defaultProps by it wasn't picked up\n bgColor: PropTypes.string,\n text: PropTypes.string.isRequired,\n }).isRequired,\n voterName: PropTypes.string.isRequired,\n};\n\nVoterBox.defaultProps = {};\n\nexport default VoterBox;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport calendarTealImage from './calendar-teal.png';\nimport calendarYellowImage from './calendar-yellow.png';\nimport calendarGreenImage from './calendar-green.png';\n\nfunction getColor(color) {\n switch (color) {\n case 'teal':\n return calendarTealImage;\n case 'green':\n return calendarGreenImage;\n default:\n return calendarYellowImage;\n }\n}\n\n// MTS - These exist like this for easy conversion into an svg icon which are currently\n// being requested.\nfunction CalendarIcon(props) {\n return <img alt=\"Calendar Icon\" src={getColor(props.color)} {...props} />;\n}\n\nCalendarIcon.propTypes = {\n color: PropTypes.oneOf(['teal', 'yellow', 'green']),\n};\n\nCalendarIcon.defaultProps = {\n color: 'teal',\n};\n\nexport default CalendarIcon;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport clipboardTealImage from './clipboard-teal.png';\nimport clipboardYellowImage from './clipboard-yellow.png';\nimport clipboardGreenImage from './clipboard-green.png';\n\nfunction getColor(color) {\n switch (color) {\n case 'teal':\n return clipboardTealImage;\n case 'green':\n return clipboardGreenImage;\n default:\n return clipboardYellowImage;\n }\n}\n\n// MTS - These exist like this for easy conversion into an svg icon which are currently\n// being requested.\nfunction ClipboardIcon(props) {\n return <img alt=\"Clipboard Icon\" src={getColor(props.color)} {...props} />;\n}\n\nClipboardIcon.propTypes = {\n color: PropTypes.oneOf(['teal', 'yellow', 'green']),\n};\n\nClipboardIcon.defaultProps = {\n color: 'teal',\n};\n\nexport default ClipboardIcon;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport checkmarkTealImage from './checkmark-teal.png';\nimport checkmarkYellowImage from './checkmark-yellow.png';\nimport checkmarkGreenImage from './checkmark-green.png';\n\nfunction getColor(color) {\n switch (color) {\n case 'teal':\n return checkmarkTealImage;\n case 'green':\n return checkmarkGreenImage;\n default:\n return checkmarkYellowImage;\n }\n}\n// MTS - These exist like this for easy conversion into an svg icon which are currently\n// being requested.\nfunction CheckmarkIcon(props) {\n return <img alt=\"Checkmark Icon\" src={getColor(props.color)} {...props} />;\n}\n\nCheckmarkIcon.propTypes = {\n color: PropTypes.oneOf(['teal', 'yellow', 'green']),\n};\n\nCheckmarkIcon.defaultProps = {\n color: 'teal',\n};\nexport default CheckmarkIcon;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport envelopeTealImage from './envelope-teal.png';\nimport envelopeYellowImage from './envelope-yellow.png';\nimport envelopeGreenImage from './envelope-green.png';\n\nfunction getColor(color) {\n switch (color) {\n case 'teal':\n return envelopeTealImage;\n case 'green':\n return envelopeGreenImage;\n default:\n return envelopeYellowImage;\n }\n}\n\n// MTS - These exist like this for easy conversion into an svg icon which are currently\n// being requested.\nfunction EnvelopeIcon(props) {\n return <img alt=\"Envelope Icon\" src={getColor(props.color)} {...props} />;\n}\n\nEnvelopeIcon.propTypes = {\n color: PropTypes.oneOf(['teal', 'yellow', 'green']),\n};\n\nEnvelopeIcon.defaultProps = {\n color: 'teal',\n};\n\nexport default EnvelopeIcon;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport dayjs from 'dayjs';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\n\nimport CalendarIcon from '@web/components/Headcount/components/icons/CalendarIcon';\nimport ClipboardIcon from '@web/components/Headcount/components/icons/ClipboardIcon';\nimport CheckmarkIcon from '@web/components/Headcount/components/icons/CheckmarkIcon';\nimport EnvelopeIcon from '@web/components/Headcount/components/icons/EnvelopeIcon';\nimport Text from '@web/components/Headcount/components/Text';\n\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport localeData from 'dayjs/plugin/localeData';\nimport sendError from '@web/utils/sendError';\nimport i18n from '@web/components/i18n';\nimport 'dayjs/locale/es';\nimport moment from 'moment';\n\n// MTS - This is required due to a strange bug that will show up in Firefox\n// and mobile versions of Chrome.\ndayjs.extend(customParseFormat);\ndayjs.extend(localeData);\n\n// To keep the 2nd item in the row aligned when image widths are different\nconst IconArea = styled.div`\n width: 3rem;\n`;\n\nconst StyledDateItem = styled.li`\n align-items: center;\n display: flex;\n margin-bottom: ${({ theme }) => theme.spacing.wide};\n`;\n\nfunction DateItem({ color, date, type }) {\n let formattedDate;\n const { t } = useTranslation();\n\n try {\n const currentLocale = moment.locale();\n dayjs.locale(i18n.language);\n formattedDate = dayjs(date, 'MM-DD-YY').format(\"MMM D, 'YY\");\n formattedDate = formattedDate.charAt(0).toUpperCase() + formattedDate.slice(1).toLowerCase();\n dayjs.locale(currentLocale);\n } catch (err) {\n sendError(`Voter Registration: Error formatting date: ${date}`, err);\n }\n\n function getTypeDetails() {\n const iconStyle = { height: '2rem', marginRight: '1rem' };\n switch (type) {\n case 'lastDayVBM':\n return {\n icon: <EnvelopeIcon color={color} style={iconStyle} />,\n text: t('check_registration.headcount.iconLabels.lastDayVBM'),\n };\n case 'lastDayAbsenteeBallot':\n return {\n icon: <EnvelopeIcon color={color} style={iconStyle} />,\n text: t('check_registration.headcount.iconLabels.lastDayAbsenteeBallot'),\n };\n case 'earlyVotingStart':\n return {\n icon: <CalendarIcon color={color} style={iconStyle} />,\n text: t('check_registration.headcount.iconLabels.earlyVotingStart'),\n };\n case 'lastRegDay':\n return {\n icon: <ClipboardIcon color={color} style={iconStyle} />,\n text: t('check_registration.headcount.iconLabels.lastRegDay'),\n };\n case 'electionDay':\n return {\n icon: <CheckmarkIcon color={color} style={iconStyle} />,\n text: t('check_registration.headcount.iconLabels.electionDay'),\n };\n default:\n return null;\n }\n }\n\n const typeDetails = getTypeDetails();\n\n if (!date || !formattedDate || !typeDetails) {\n return null;\n }\n\n return (\n <StyledDateItem>\n <IconArea>{typeDetails.icon}</IconArea>\n <Text style={{ flex: 1 }}>{typeDetails.text}</Text>\n <Text variant=\"f3\">{formattedDate}</Text>\n </StyledDateItem>\n );\n}\n\nDateItem.propTypes = {\n color: PropTypes.string,\n date: PropTypes.string.isRequired,\n type: PropTypes.oneOf([\n 'earlyVotingStart',\n 'electionDay',\n 'lastRegDay',\n 'lastDayVBM',\n 'lastDayAbsenteeBallot',\n ]).isRequired,\n};\n\nDateItem.defaultProps = {};\n\nexport default DateItem;\n","/* eslint-disable */\n// MTS - We will move this up in scope if it is needed elsewhere.\nconst stateAbbrMap = {\n AL: 'Alabama',\n AK: 'Alaska',\n AZ: 'Arizona',\n AR: 'Arkansas',\n CA: 'California',\n CO: 'Colorado',\n CT: 'Connecticut',\n DE: 'Delaware',\n DC: 'District Of Columbia',\n FL: 'Florida',\n GA: 'Georgia',\n HI: 'Hawaii',\n ID: 'Idaho',\n IL: 'Illinois',\n IN: 'Indiana',\n IA: 'Iowa',\n KS: 'Kansas',\n KY: 'Kentucky',\n LA: 'Louisiana',\n ME: 'Maine',\n MD: 'Maryland',\n MA: 'Massachusetts',\n MI: 'Michigan',\n MN: 'Minnesota',\n MS: 'Mississippi',\n MO: 'Missouri',\n MT: 'Montana',\n NE: 'Nebraska',\n NV: 'Nevada',\n NH: 'New Hampshire',\n NJ: 'New Jersey',\n NM: 'New Mexico',\n NY: 'New York',\n NC: 'North Carolina',\n ND: 'North Dakota',\n OH: 'Ohio',\n OK: 'Oklahoma',\n OR: 'Oregon',\n PA: 'Pennsylvania',\n RI: 'Rhode Island',\n SC: 'South Carolina',\n SD: 'South Dakota',\n TN: 'Tennessee',\n TX: 'Texas',\n UT: 'Utah',\n VT: 'Vermont',\n VA: 'Virginia',\n WA: 'Washington',\n WV: 'West Virginia',\n WI: 'Wisconsin',\n WY: 'Wyoming',\n};\n\nexport default stateAbbrMap;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { track } from '@web/services/analytics';\n\nimport dayjs from 'dayjs';\nimport styled from 'styled-components';\n\nimport DateItem from './DateItem';\nimport Link from '@web/components/Headcount/components/Link';\nimport Text from '@web/components/Headcount/components/Text';\n\nimport useIsPartner from '../../hooks/useIsPartner';\n\nimport stateAbbrMap from './stateAbbrMap';\nimport { useTranslation } from 'react-i18next';\n\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\ndayjs.extend(customParseFormat);\n\nconst DateList = styled.ul`\n margin: ${({ theme }) => theme.spacing.wide} 0 0;\n padding: 0;\n`;\n\nconst StyledLink = styled(Link)`\n margin: 1rem 0;\n`;\n\nconst StyledVotingDates = styled.div`\n margin: 2rem 0;\n`;\n\nfunction VotingDates({ stateAbbreviation, activity, team, voteByMail, votingInfo }) {\n const { t } = useTranslation();\n const isPartner = useIsPartner(team);\n const isCannabis = activity?.campaign?.cannabis_registration_enabled;\n\n let lastRegDayVBM;\n let lastRegDayOnline;\n let earlyVotingStart;\n let electionDayDate;\n let isPrimary;\n\n if (\n votingInfo?.primary_election_date &&\n dayjs().isAfter(dayjs(votingInfo?.primary_election_date, 'MM-DD-YY'))\n ) {\n isPrimary = false;\n lastRegDayVBM = votingInfo?.general_vbm_request_deadline;\n lastRegDayOnline = votingInfo?.online_reg_deadline;\n earlyVotingStart = votingInfo?.early_vote_start;\n electionDayDate = votingInfo?.general_election_date;\n } else {\n isPrimary = true;\n lastRegDayVBM = votingInfo?.primary_vbm_request_deadline;\n lastRegDayOnline = votingInfo?.online_primary_reg_deadline;\n earlyVotingStart = votingInfo?.primary_early_vote_start;\n electionDayDate = votingInfo?.primary_election_date;\n }\n\n const trackClick = async () => {\n track('HEADCOUNT_VOTING_DATES_SEE_MORE', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n };\n\n function getStateName() {\n let fullStateName;\n try {\n fullStateName = stateAbbrMap[stateAbbreviation?.toUpperCase()];\n } catch (err) {\n fullStateName = stateAbbreviation;\n }\n return fullStateName;\n }\n\n function getColor() {\n if (isCannabis) {\n return 'yellow';\n }\n if (isPartner) {\n return 'yellow';\n }\n return 'teal';\n }\n\n const stateName = getStateName();\n const stateWithHyphens = stateName?.toLowerCase()?.split(' ')?.join('-');\n const additionalInfoLink = `https://www.headcount.org/state/${stateWithHyphens}/?utm_source=impactive`;\n const color = getColor();\n\n return (\n <StyledVotingDates>\n <Text variant=\"f2\">\n {t('check_registration.headcount.votingDatesTitle', {\n election: isPrimary ? 'Primary election' : 'General election',\n state: stateName,\n })}\n </Text>\n <DateList>\n {(voteByMail || !lastRegDayOnline) && (\n <DateItem color={color} date={lastRegDayVBM} type=\"lastDayVBM\" />\n )}\n {!voteByMail && lastRegDayOnline && (\n <DateItem color={color} date={lastRegDayOnline} type=\"lastRegDay\" />\n )}\n <DateItem color={color} date={earlyVotingStart} type=\"earlyVotingStart\" />\n <DateItem color={color} date={electionDayDate} type=\"electionDay\" />\n </DateList>\n\n {votingInfo?.polling_place_locator && (\n <div>\n <StyledLink\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={votingInfo?.polling_place_locator}\n >\n <Text as=\"span\" color=\"blue\" variant=\"f3\">\n {t('check_registration.headcount.findYourPolling')}\n </Text>\n </StyledLink>\n </div>\n )}\n\n <div onClick={trackClick} style={{ marginTop: 20 }}>\n <StyledLink href={additionalInfoLink} target=\"_blank\" rel=\"noopener noreferrer\">\n <Text as=\"span\" color=\"blue\" variant=\"f3\">\n {t('check_registration.headcount.votingDatesMoreInfo', {\n info: 'voting',\n state: stateName,\n })}\n </Text>\n </StyledLink>\n </div>\n\n {votingInfo?.county_election_info && (\n <div style={{ marginTop: 20 }}>\n <StyledLink\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n href={votingInfo?.county_election_info}\n >\n <Text as=\"span\" color=\"blue\" variant=\"f3\">\n {t('check_registration.headcount.lookUpCountry')}\n </Text>\n </StyledLink>\n </div>\n )}\n </StyledVotingDates>\n );\n}\n\nVotingDates.propTypes = {\n activity: PropTypes.object,\n stateAbbreviation: PropTypes.string.isRequired,\n team: PropTypes.object,\n voteByMail: PropTypes.bool,\n votingInfo: PropTypes.shape({\n county_election_info: PropTypes.string,\n early_vote_start: PropTypes.string,\n general_election_date: PropTypes.string.isRequired,\n general_vbm_request_deadline: PropTypes.string,\n online_primary_reg_deadline: PropTypes.string,\n online_reg_deadline: PropTypes.string,\n polling_place_locator: PropTypes.string,\n primary_early_vote_start: PropTypes.string,\n primary_election_date: PropTypes.string,\n primary_vbm_request_deadline: PropTypes.string,\n }).isRequired,\n};\n\nVotingDates.defaultProps = {};\n\nexport default VotingDates;\n","import * as React from 'react';\nimport axios from 'axios';\n\nimport { useSelector } from 'react-redux';\nimport useVoterRegistrationApi from '@web/components/Headcount/hooks/useVoterRegistrationApi';\n\nfunction useFetchVoterRecord(activity) {\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n const contactId = contactFormResult?.id;\n const encodeId = contactFormResult?.encode_id;\n const [error, setError] = React.useState(false);\n const [loading, setLoading] = React.useState(true);\n const { handleError } = useVoterRegistrationApi(activity);\n const [voterRecord, setVoterRecord] = React.useState(null);\n\n React.useEffect(() => {\n if (activity && contactId && encodeId) {\n axios\n .post(`/api/v2/client/voter_registrations/${contactId}/my_record`, {\n activity_id: activity?.id,\n campaign_id: activity?.campaign?.id,\n h: encodeId,\n })\n .then(({ data }) => {\n setVoterRecord(data);\n })\n .catch(err => {\n const errorMessage = handleError(err);\n setError(errorMessage);\n })\n .finally(() => {\n setLoading(false);\n });\n }\n // eslint-disable-next-line\n }, []);\n\n return { error, loading, voterRecord };\n}\n\nexport default useFetchVoterRecord;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { track } from '@web/services/analytics';\n\nimport DotLoader from '@web/components/DotLoader';\nimport BackToStart from '@web/components/Headcount/components/BackToStart';\nimport ExternalButtonLink from '@web/components/Headcount/components/ExternalButtonLink';\nimport ShareLink from '@web/components/Headcount/components/ShareLink';\nimport Text from '@web/components/Headcount/components/Text';\nimport VoterBox from '@web/components/Headcount/components/VoterBox';\nimport VotingDates from '@web/components/Headcount/components/VotingDates';\nimport HeroImage from '@web/components/Headcount/components/HeroImage';\n\nimport useFetchVoterRecord from '@web/components/Headcount/hooks/useFetchVoterRecord';\nimport useIsDesktop from '@web/components/Headcount/hooks/useIsDesktop';\nimport useIsPartner from '@web/components/Headcount/hooks/useIsPartner';\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { activities } from '@web/services/api';\n\nfunction RegisterToVoteResult({ activity, backToStart, team }) {\n const { contactFormResult, hasStateId } = useSelector(state => state.voterRegistration);\n const { error, loading, voterRecord } = useFetchVoterRecord(activity);\n const { t } = useTranslation();\n const isDesktop = useIsDesktop();\n const isPartner = useIsPartner(team);\n const cannabisRegistrationEnabled = React.useMemo(\n () => activity?.campaign?.cannabis_registration_enabled,\n [activity?.campaign?.cannabis_registration_enabled],\n );\n\n const headcountMtvEnabled = React.useMemo(\n () => activity.campaign.headcount_mtv_enabled,\n [activity.campaign.headcount_mtv_enabled],\n );\n\n let title = t('check_registration.headcount.followLink');\n if (isPartner) {\n title = t('check_registration.headcount.partnerFollowLink');\n }\n if (cannabisRegistrationEnabled) {\n title = t('check_registration.headcount.cannabisFollowLink');\n }\n\n track('HEADCOUNT_VIEW_REGISTER_TO_VOTE', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n\n const trackOfLinkClick = React.useCallback(\n url => {\n activities.trackExternalLinkClick({\n activityId: activity?.id,\n activitySlug: activity?.slug,\n campaignId: activity?.campaign?.id,\n contactId: contactFormResult?.id,\n url,\n });\n },\n [activity?.campaign?.id, activity?.id, activity?.slug, contactFormResult?.id],\n );\n\n if (loading) {\n return <DotLoader centered color=\"black\" />;\n }\n\n if (error) {\n return (\n <Text color=\"red\" variant=\"f3\">\n {error}\n </Text>\n );\n }\n\n const stateAbbreviation = voterRecord?.state_abbrev;\n\n const regParams = new URLSearchParams({\n apartment: contactFormResult?.unit_number,\n campaign: 'impactive',\n city: contactFormResult?.city,\n date_of_birth_day: parseInt(contactFormResult?.date_of_birth.split('-')[2]),\n date_of_birth_month: parseInt(contactFormResult?.date_of_birth.split('-')[1]),\n date_of_birth_year: parseInt(contactFormResult?.date_of_birth.split('-')[0]),\n email: contactFormResult?.email,\n first_name: contactFormResult?.first_name,\n last_name: contactFormResult?.last_name,\n phone_number: contactFormResult?.phone.replace('+1', ''),\n state: contactFormResult?.state_abbrev,\n street_address: contactFormResult?.address,\n zip_5: contactFormResult?.zip_code,\n });\n\n const registrationLink =\n !hasStateId || !voterRecord?.voting_info?.online_reg_link\n ? `https://www.headcount.org/registertovote/?${regParams.toString()}`\n : voterRecord?.voting_info?.online_reg_link;\n\n const trackClick = async () => {\n trackOfLinkClick(registrationLink);\n track('HEADCOUNT_CLICK_REGISTRATION_LINK', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n automatic_vbm: contactFormResult?.automatic_vbm,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n can_register_online: contactFormResult?.can_register_online,\n can_vbm: contactFormResult?.can_vbm,\n can_vbm_online: contactFormResult?.can_vbm_online,\n contact_id: contactFormResult?.id,\n has_state_identification: contactFormResult?.has_state_identification,\n registration_status: contactFormResult?.registration_status,\n state_abbrev: contactFormResult?.state_abbrev,\n team_id: team?.id,\n team_name: team?.name,\n });\n };\n\n const address = {\n line1: `${voterRecord?.address}`,\n line2: `${voterRecord.unit_number}`,\n line3: `${voterRecord?.city}, ${stateAbbreviation.toUpperCase()} ${voterRecord?.zip_code}`,\n };\n\n return (\n <>\n {headcountMtvEnabled && (\n <ShareLink\n activity={activity}\n referralLink={contactFormResult?.referral_link}\n team={team}\n />\n )}\n <Text variant=\"f2\">{title}</Text>\n <VoterBox\n address={address}\n label={{ text: t('check_registration.headcount.statusNotRegistered') }}\n voterName={contactFormResult?.fullname}\n />\n {registrationLink && stateAbbreviation !== 'ND' && (\n <ExternalButtonLink href={registrationLink} onClick={trackClick}>\n {t('voting_information.register_to_vote')}\n </ExternalButtonLink>\n )}\n {stateAbbreviation === 'ND' && (\n <p>{'No voter registration required. Go to your polling site with a valid ID.'}</p>\n )}\n <VotingDates\n stateAbbreviation={stateAbbreviation}\n team={team}\n activity={activity}\n votingInfo={voterRecord?.voting_info}\n />\n {!isDesktop && isPartner && !headcountMtvEnabled && (\n <HeroImage alt={team?.name} src={team?.incentives_img_url} />\n )}\n {!headcountMtvEnabled && (\n <ShareLink\n activity={activity}\n referralLink={contactFormResult?.referral_link}\n team={team}\n />\n )}\n <BackToStart onClick={backToStart} />\n </>\n );\n}\n\nRegisterToVoteResult.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n cannabis_registration_enabled: PropTypes.bool,\n headcount_mtv_enabled: PropTypes.string,\n id: PropTypes.number.isRequired,\n name: PropTypes.string,\n }).isRequired,\n description: PropTypes.string.isRequired,\n id: PropTypes.number.isRequired,\n slug: PropTypes.string,\n title: PropTypes.string.isRequired,\n type: PropTypes.string,\n }).isRequired,\n backToStart: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nRegisterToVoteResult.defaultProps = {};\n\nexport default RegisterToVoteResult;\n","import * as React from 'react';\n// import PropTypes from 'prop-types';\n\nfunction CircledCheckmarkIcon() {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M0 12C0 5.39062 5.34375 0 12 0C18.6094 0 24 5.39062 24 12C24 18.6562 18.6094 24 12 24C5.34375 24 0 18.6562 0 12ZM17.3906 9.9375C17.9062 9.42188 17.9062 8.625 17.3906 8.10938C16.875 7.59375 16.0781 7.59375 15.5625 8.10938L10.5 13.1719L8.39062 11.1094C7.875 10.5938 7.07812 10.5938 6.5625 11.1094C6.04688 11.625 6.04688 12.4219 6.5625 12.9375L9.5625 15.9375C10.0781 16.4531 10.875 16.4531 11.3906 15.9375L17.3906 9.9375Z\"\n fill=\"white\"\n />\n </svg>\n );\n}\n\nCircledCheckmarkIcon.propTypes = {};\n\nCircledCheckmarkIcon.defaultProps = {};\n\nexport default CircledCheckmarkIcon;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Text from '@web/components/Headcount/components/Text';\nimport CircledCheckmarkIcon from '@web/components/Headcount/components/icons/CircledCheckmarkIcon';\n\nimport { useTranslation } from 'react-i18next';\n\nconst BannerWrapper = styled.div`\n position: relative;\n width: 100%;\n`;\n\nconst AbsoluteWrapper = styled.div`\n animation: 0.5s ease-out 0.5s 1 slideInFromTop forwards,\n 0.5s ease-out 10s 1 slideOutToTop forwards;\n display: flex;\n flex-direction: row;\n justify-content: center;\n opacity: 0;\n position: absolute;\n top: -120px;\n width: 100%;\n\n @keyframes slideInFromTop {\n 0% {\n transform: translateY(-200%);\n }\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n @keyframes slideOutToTop {\n 0% {\n opacity: 1;\n visibility: visible;\n }\n 99% {\n height: auto;\n visibility: visible;\n }\n 100% {\n height: 0;\n opacity: 0;\n visibility: hidden;\n }\n }\n`;\n\nconst StyledBanner = styled.div`\n align-items: center;\n background: rgba(0, 0, 0, 0.88);\n border-radius: 12px;\n color: #ffffff;\n display: flex;\n flex-direction: column;\n font-weight: 600;\n gap: 8px;\n height: auto;\n justify-content: center;\n padding: 16px 24px;\n text-align: center;\n width: 342px;\n`;\n\nconst StyledText = styled(Text)`\n line-height: 1.2;\n`;\n\nfunction Banner({ activity }) {\n const { t } = useTranslation();\n\n const isCannabis = React.useMemo(\n () => activity?.campaign?.cannabis_registration_enabled,\n [activity?.campaign.cannabis_registration_enabled],\n );\n\n const isHeadcountMtvEnabled = React.useMemo(\n () => activity?.campaign?.headcount_mtv_enabled,\n [activity?.campaign?.headcount_mtv_enabled],\n );\n const isHeadcountRctEnabled = React.useMemo(\n () => activity?.campaign?.headcount_rct_enabled,\n [activity?.campaign?.headcount_rct_enabled],\n );\n\n if (isHeadcountMtvEnabled || isHeadcountRctEnabled) return null;\n\n return (\n <BannerWrapper>\n <AbsoluteWrapper>\n <StyledBanner>\n <StyledText color=\"white\" variant=\"f2\">\n {isCannabis\n ? t('check_registration.headcount.cannabisBanner')\n : t('check_registration.headcount.banner')}\n </StyledText>\n <CircledCheckmarkIcon />\n </StyledBanner>\n </AbsoluteWrapper>\n </BannerWrapper>\n );\n}\n\nBanner.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n cannabis_registration_enabled: PropTypes.bool,\n headcount_mtv_enabled: PropTypes.bool,\n headcount_rct_enabled: PropTypes.bool,\n }),\n }),\n};\n\nBanner.defaultProps = {};\n\nexport default Banner;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { track } from '@web/services/analytics';\nimport styled from 'styled-components';\n\nimport { media } from '@web/styles/theme';\nimport Banner from '@web/components/Headcount/components/Banner';\nimport Button from '@web/components/Headcount/components/Button';\nimport Text from '@web/components/Headcount/components/Text';\n\nimport { setHasStateId } from '@web/reducers/voterRegistration';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport useIsPartner from '@web/components/Headcount/hooks/useIsPartner';\nimport useVoterRegistrationApi from '@web/components/Headcount/hooks/useVoterRegistrationApi';\n\nconst StyledText = styled(Text)`\n margin-bottom: ${({ theme }) => theme.spacing.wide};\n line-height: 1.5;\n`;\n\nconst ButtonWrapper = styled.div`\n display: flex;\n flex-direction: column;\n margin-top: ${({ theme }) => theme.spacing.normal};\n\n button:first-of-type {\n margin-bottom: ${({ theme }) => theme.spacing.normal};\n }\n`;\n\nconst BackButtonWrapper = styled.div`\n display: flex;\n flex: 1;\n align-items: flex-end;\n\n ${media.ns} {\n display: block;\n margin-top: ${({ theme }) => theme.spacing.wide};\n }\n`;\n\nconst ErrorWrapper = styled.div`\n margin-top: ${({ theme }) => theme.spacing.wide};\n`;\n\nfunction StateIdQuestion({ activity, nextPage, previousPage, team, showBanner }) {\n const dispatch = useDispatch();\n const { hasStateId } = useSelector(state => state.voterRegistration);\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n const { t } = useTranslation();\n const { handleError, submitContactStateIdUpdate } = useVoterRegistrationApi(activity);\n const isPartner = useIsPartner(team);\n\n const [apiError, setApiError] = React.useState(null);\n\n track('HEADCOUNT_VIEW_STATE_ID_QUESTION', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n\n function handleButtonClick(value) {\n track('HEADCOUNT_ANSWERED_STATE_ID_QUESTION', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n value: value,\n });\n\n setApiError(null);\n\n submitContactStateIdUpdate(contactFormResult, value)\n .then(({ data }) => {\n dispatch(setHasStateId(value));\n nextPage();\n })\n .catch(err => {\n const errorMessage = handleError(err);\n setApiError(errorMessage);\n });\n }\n\n function getButtonVariant(buttonType) {\n // We do three checks here: null, true, and false\n // hasStateId will only not be null if someone navigates\n // back to this component.\n if (hasStateId === null) {\n return 'secondary';\n }\n if (buttonType === 'yes' && hasStateId) {\n return 'primary';\n }\n // MTS - We must use false here or else null will give us a false positive\n if (buttonType === 'no' && hasStateId === false) {\n return 'primary';\n }\n return 'secondary';\n }\n\n return (\n <>\n {isPartner && showBanner && <Banner activity={activity} />}\n <StyledText variant=\"f2\">{t('check_registration.headcount.idQuestion')}</StyledText>\n <StyledText>{t('check_registration.headcount.idDesc')}</StyledText>\n <ButtonWrapper>\n <Button onClick={() => handleButtonClick(true)} variant={getButtonVariant('yes')}>\n {t('common.yes')}\n </Button>\n <Button onClick={() => handleButtonClick(false)} variant={getButtonVariant('no')}>\n {t('common.no')}\n </Button>\n\n {apiError && (\n <ErrorWrapper>\n <Text color=\"red\" variant=\"f3\" style={{ marginBottom: '0.5rem' }}>\n {apiError}\n </Text>\n </ErrorWrapper>\n )}\n </ButtonWrapper>\n <BackButtonWrapper>\n <Button onClick={previousPage} style={{ paddingLeft: 0 }} type=\"button\" variant=\"tertiary\">\n {t('common.back')}\n </Button>\n </BackButtonWrapper>\n </>\n );\n}\n\nStateIdQuestion.propTypes = {\n activity: PropTypes.object.isRequired,\n nextPage: PropTypes.func.isRequired,\n previousPage: PropTypes.func.isRequired,\n showBanner: PropTypes.bool,\n team: PropTypes.object,\n};\n\nStateIdQuestion.defaultProps = {};\n\nexport default StateIdQuestion;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { track } from '@web/services/analytics';\nimport styled from 'styled-components';\n\nimport Button from '@web/components/Headcount/components/Button';\nimport Text from '@web/components/Headcount/components/Text';\nimport AddressInput from '@web/components/Headcount/components/Input/AddressInput';\nimport { Form } from 'formik-antd';\nimport { Formik } from 'formik';\nimport Input from '@web/components/Headcount/components/Input';\n\nimport { setStateIdWithAddressForm } from '@web/reducers/voterRegistration';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport useContactForm from '@web/components/Headcount/hooks/useContactForm';\nimport useVoterRegistrationApi from '@web/components/Headcount/hooks/useVoterRegistrationApi';\n\nconst StyledText = styled(Text)`\n margin-bottom: ${({ theme }) => theme.spacing.wide};\n line-height: 1.5;\n`;\n\nconst AddressWrapper = styled.div`\n margin-bottom: ${({ theme }) => theme.spacing.wide};\n`;\n\nconst ButtonWrapper = styled.div`\n display: flex;\n flex-direction: column;\n margin-top: 2rem;\n\n button:first-of-type {\n margin-bottom: ${({ theme }) => theme.spacing.normal};\n }\n`;\n\nconst ErrorWrapper = styled.div`\n margin-top: ${({ theme }) => theme.spacing.wide};\n`;\n\nfunction StateIdQuestionWithAddress({ activity, nextPage, team }) {\n const dispatch = useDispatch();\n const { hasStateId } = useSelector(state => state.voterRegistration);\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n const { t } = useTranslation();\n const { initialValues, schemas } = useContactForm();\n const { handleError, submitContactUpdate } = useVoterRegistrationApi(activity);\n const [apiError, setApiError] = React.useState(null);\n\n track('HEADCOUNT_VIEW_STATE_ID_QUESTION_WITH_ADDRESS', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n\n function sendRequest(values, setSubmitting) {\n setApiError(null);\n setSubmitting(true);\n\n track('HEADCOUNT_ANSWERED_STATE_ID_QUESTION_WITH_ADDRESS', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n value: values.stateId,\n });\n\n submitContactUpdate(contactFormResult, values)\n .then(({ data }) => {\n dispatch(\n setStateIdWithAddressForm({\n contact: data,\n hasStateId: data.has_state_identification,\n voter: {\n addressLine1: data.address,\n addressLine2: `${data.city}, ${data.state_abbrev}`,\n ageRange: data.voterfile['vb.voterbase_age'],\n name: `${data.first_name} ${data.last_name}`.toLowerCase(),\n voterbaseId: data.voterfile.voterbase_id,\n zip: data.zip_code,\n },\n }),\n );\n\n nextPage();\n })\n .catch(err => {\n const errorMessage = handleError(err);\n setApiError(errorMessage);\n })\n .finally(() => {\n setSubmitting(false);\n });\n }\n\n function handleButtonClick(values, setSubmitting, validateForm, setTouched) {\n validateForm().then(errors => {\n if (Object.keys(errors).length === 0) {\n sendRequest(values, setSubmitting);\n } else {\n setTouched(errors);\n }\n });\n }\n\n function getButtonVariant(buttonType) {\n // We do three checks here: null, true, and false\n // hasStateId will only not be null if someone navigates\n // back to this component.\n if (hasStateId === null) {\n return 'secondary';\n }\n if (buttonType === 'yes' && hasStateId) {\n return 'primary';\n }\n // MTS - We must use false here or else null will give us a false positive\n if (buttonType === 'no' && hasStateId === false) {\n return 'primary';\n }\n return 'secondary';\n }\n\n function handleAddressChange(address, setFieldValue) {\n setFieldValue('address', address.address);\n setFieldValue('city', address.city);\n setFieldValue('zipCode', address.zip_code);\n setFieldValue('countyName', address.county_name);\n setFieldValue('stateAbbrev', address.state_abbrev);\n }\n\n return (\n <Formik\n initialValues={initialValues.updateAddressForm}\n validationSchema={schemas.updateAddressForm}\n render={({\n isSubmitting,\n setFieldValue,\n setSubmitting,\n setTouched,\n validateForm,\n values,\n }) => (\n <Form>\n <AddressWrapper>\n <StyledText variant=\"f2\">\n {t('check_registration.headcount.enterVoteFromAddress')}\n </StyledText>\n <AddressInput\n label={t('idvoters.labels.address')}\n name=\"searchAddress\"\n onChange={address => handleAddressChange(address, setFieldValue)}\n type=\"search\"\n />\n <Input label={t('idvoters.labels.unitNumber')} name=\"unitNumber\" />\n </AddressWrapper>\n\n <StyledText variant=\"f2\">{t('check_registration.headcount.idQuestion')}</StyledText>\n <StyledText>{t('check_registration.headcount.idDesc')}</StyledText>\n <ButtonWrapper>\n <Button\n loading={isSubmitting}\n onClick={() => {\n handleButtonClick(\n { ...values, stateId: true },\n setSubmitting,\n validateForm,\n setTouched,\n );\n }}\n type=\"button\"\n variant={getButtonVariant('yes')}\n >\n {t('common.yes')}\n </Button>\n <Button\n loading={isSubmitting}\n onClick={() =>\n handleButtonClick(\n { ...values, stateId: false },\n setSubmitting,\n validateForm,\n setTouched,\n )\n }\n type=\"button\"\n variant={getButtonVariant('no')}\n >\n {t('common.no')}\n </Button>\n\n {apiError && (\n <ErrorWrapper>\n <Text color=\"red\" variant=\"f3\" style={{ marginBottom: '0.5rem' }}>\n {apiError}\n </Text>\n </ErrorWrapper>\n )}\n </ButtonWrapper>\n </Form>\n )}\n />\n );\n}\n\nStateIdQuestionWithAddress.propTypes = {\n activity: PropTypes.object.isRequired,\n nextPage: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nStateIdQuestionWithAddress.defaultProps = {};\n\nexport default StateIdQuestionWithAddress;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Text from '@web/components/Headcount/components/Text';\n\nconst StyledListItem = styled.li`\n align-items: center;\n display: flex;\n margin-left: ${({ theme }) => theme.spacing.tight};\n margin-top: ${({ theme }) => theme.spacing.wide};\n`;\n\nconst IconArea = styled.div`\n display: flex;\n justify-content: center;\n margin-right: ${({ theme }) => theme.spacing.normal};\n width: 22px;\n`;\n\nfunction ListItem({ children, icon }) {\n return (\n <StyledListItem>\n <IconArea>\n <svg height=\"19\" viewBox={icon.viewBox} fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d={icon.d} fill=\"black\" />\n </svg>\n </IconArea>\n <Text variant=\"f2\">{children}</Text>\n </StyledListItem>\n );\n}\n\nListItem.propTypes = {\n children: PropTypes.any.isRequired,\n icon: PropTypes.shape({\n d: PropTypes.string.isRequired,\n viewBox: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nListItem.defaultProps = {};\n\nexport default ListItem;\n","const icons = {\n ballotBox: {\n d: 'M0.875 16.5625C0.875 17.5117 1.61328 18.25 2.5625 18.25H19.4375C20.3516 18.25 21.125 17.5117 21.125 16.5625V12.625H0.875V16.5625ZM16.625 1.09375C16.625 0.636719 16.2383 0.25 15.7812 0.25H6.21875C5.72656 0.25 5.375 0.636719 5.375 1.09375V8.125H16.625V1.09375ZM20 5.875H17.75V8.125C17.75 8.75781 17.2227 9.25 16.625 9.25H5.375C4.74219 9.25 4.25 8.75781 4.25 8.125V5.875H2C1.36719 5.875 0.875 6.40234 0.875 7V11.5H21.0898H21.125V7C21.125 6.40234 20.5977 5.875 20 5.875Z',\n viewBox: '0 0 22 19',\n },\n house: {\n d: 'M21.0898 9.25C21.0898 9.88281 20.5625 10.375 19.9648 10.375H18.8398L18.875 16C18.875 16.1055 18.875 16.2109 18.875 16.2812V16.8438C18.875 17.6523 18.2422 18.25 17.4688 18.25H16.9062C16.8359 18.25 16.8008 18.25 16.7656 18.25C16.7305 18.25 16.6602 18.25 16.625 18.25H14.6562C13.8477 18.25 13.25 17.6523 13.25 16.8438V13.75C13.25 13.1523 12.7227 12.625 12.125 12.625H9.875C9.24219 12.625 8.75 13.1523 8.75 13.75V16.8438C8.75 17.6523 8.11719 18.25 7.34375 18.25H5.375C5.30469 18.25 5.26953 18.25 5.19922 18.25C5.16406 18.25 5.12891 18.25 5.09375 18.25H4.53125C3.72266 18.25 3.125 17.6523 3.125 16.8438V12.9062C3.125 12.9062 3.125 12.8711 3.125 12.8359V10.375H2C1.36719 10.375 0.875 9.88281 0.875 9.25C0.875 8.93359 0.980469 8.65234 1.22656 8.40625L10.2266 0.566406C10.4727 0.320312 10.7539 0.25 11 0.25C11.2461 0.25 11.5273 0.355469 11.7383 0.53125L20.7031 8.40625C20.9844 8.65234 21.125 8.93359 21.0898 9.25Z',\n viewBox: '0 0 22 19',\n },\n person: {\n d: 'M8 9.25C10.4609 9.25 12.5 7.24609 12.5 4.75C12.5 2.28906 10.4609 0.25 8 0.25C5.50391 0.25 3.5 2.28906 3.5 4.75C3.5 7.24609 5.50391 9.25 8 9.25ZM9.75781 10.9375H6.20703C2.83203 10.9375 0.125 13.6797 0.125 17.0547C0.125 17.7227 0.652344 18.25 1.32031 18.25H14.6445C15.3125 18.25 15.875 17.7227 15.875 17.0547C15.875 13.6797 13.1328 10.9375 9.75781 10.9375Z',\n viewBox: '0 0 16 19',\n },\n stopwatch: {\n d: 'M9.6875 0.25C10.2852 0.25 10.8125 0.777344 10.8125 1.375C10.8125 2.00781 10.2852 2.5 9.6875 2.5H9.125V3.73047C10.4258 3.94141 11.6211 4.46875 12.6055 5.27734L13.3789 4.53906C13.8008 4.08203 14.5391 4.08203 14.9609 4.53906C15.418 4.96094 15.418 5.69922 14.9609 6.12109L14.1172 6.96484C14.8555 8.125 15.3125 9.49609 15.3125 10.9375C15.3125 14.9805 12.0078 18.25 8 18.25C3.95703 18.25 0.6875 14.9805 0.6875 10.9375C0.6875 7.28125 3.35938 4.25781 6.875 3.73047V2.5H6.3125C5.67969 2.5 5.1875 2.00781 5.1875 1.375C5.1875 0.777344 5.67969 0.25 6.3125 0.25H9.6875ZM8.84375 7C8.84375 6.54297 8.45703 6.15625 8 6.15625C7.50781 6.15625 7.15625 6.54297 7.15625 7V11.5C7.15625 11.9922 7.50781 12.3438 8 12.3438C8.45703 12.3438 8.84375 11.9922 8.84375 11.5V7Z',\n viewBox: '0 0 16 19',\n },\n};\n\nexport default icons;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { track } from '@web/services/analytics';\nimport styled from 'styled-components';\n\nimport Button from '@web/components/Headcount/components/Button';\nimport ListItem from './ListItem';\nimport Text from '@web/components/Headcount/components/Text';\nimport Banner from '@web/components/Headcount/components/Banner';\nimport useIsPartner from '@web/components/Headcount/hooks/useIsPartner';\n\nimport icons from './icons';\nimport { useTranslation } from 'react-i18next';\n\nconst ReasonList = styled.ul`\n margin: 0;\n padding: 0;\n margin-bottom: ${({ theme }) => theme.spacing.wide};\n`;\n\nconst ButtonArea = styled.div`\n align-items: flex-end;\n display: flex;\n flex-direction: column;\n margin-top: ${({ theme }) => theme.spacing.wider};\n`;\n\nconst LastButton = styled(Button)`\n margin-top: ${({ theme }) => theme.spacing.normal};\n`;\n\nfunction NotRegistered({ backToStart, nextPage, team, activity, showBanner, setShowBanner }) {\n const { t } = useTranslation();\n const isPartner = useIsPartner(team);\n const cannabisRegistrationEnabled = activity?.campaign?.cannabis_registration_enabled;\n\n let cta_text = t('check_registration.headcount.notRegistered.cta');\n if (isPartner) {\n cta_text = t('check_registration.headcount.notRegistered.partnerCta');\n }\n if (cannabisRegistrationEnabled) {\n cta_text = t('check_registration.headcount.notRegistered.cannabisCta');\n }\n\n const handleRegisterToVote = React.useCallback(() => {\n setShowBanner(false);\n nextPage();\n }, [nextPage, setShowBanner]);\n\n track('HEADCOUNT_VIEW_NOT_REGISTERED', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n\n return (\n <>\n <Text variant=\"f2\">{t('check_registration.headcount.notRegistered.title')}</Text>\n {isPartner && showBanner && <Banner activity={activity} />}\n <ReasonList>\n <ListItem icon={icons.ballotBox}>\n {t('check_registration.headcount.notRegistered.reason1')}\n </ListItem>\n <ListItem icon={icons.person}>\n {t('check_registration.headcount.notRegistered.reason2')}\n </ListItem>\n <ListItem icon={icons.house}>\n {t('check_registration.headcount.notRegistered.reason3')}\n </ListItem>\n <ListItem icon={icons.stopwatch}>\n {t('check_registration.headcount.notRegistered.reason4')}\n </ListItem>\n </ReasonList>\n <Text variant=\"f2\">{cta_text}</Text>\n <ButtonArea>\n <Button onClick={handleRegisterToVote}>{t('voting_information.register_to_vote')}</Button>\n <LastButton onClick={backToStart} variant=\"secondary\">\n {t('check_registration.headcount.notRegistered.searchAgain')}\n </LastButton>\n </ButtonArea>\n </>\n );\n}\n\nNotRegistered.propTypes = {\n activity: PropTypes.object,\n backToStart: PropTypes.func.isRequired,\n nextPage: PropTypes.func.isRequired,\n setShowBanner: PropTypes.func.isRequired,\n showBanner: PropTypes.bool,\n team: PropTypes.object,\n};\n\nNotRegistered.defaultProps = {};\n\nexport default NotRegistered;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Text from '@web/components/Headcount/components/Text';\n\nconst StyledListItem = styled.li`\n margin-top: ${({ theme }) => theme.spacing.normal};\n`;\n\nfunction ListItem({ children, shouldDangerouslySet }) {\n return (\n <StyledListItem>\n {shouldDangerouslySet ? (\n <Text as=\"span\" color=\"black\" variant=\"f3\" dangerouslySetInnerHTML={{ __html: children }} />\n ) : (\n <Text as=\"span\" color=\"black\" variant=\"f3\">\n {children}\n </Text>\n )}\n </StyledListItem>\n );\n}\n\nListItem.propTypes = {\n children: PropTypes.any.isRequired,\n shouldDangerouslySet: PropTypes.bool,\n};\n\nListItem.defaultProps = { shouldDangerouslySet: false };\n\nexport default ListItem;\n","export const excuseVBMStates = [\n 'AL',\n 'AR',\n 'CT',\n 'DE',\n 'IN',\n 'KY',\n 'LA',\n 'MS',\n 'MO',\n 'NH',\n 'SC',\n 'TN',\n 'TX',\n 'WV',\n];\n\nexport const automaticVBMStates = ['WA', 'OR', 'CA', 'UT', 'NV', 'CO', 'HI', 'VT', 'DC'];\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { track } from '@web/services/analytics';\nimport styled from 'styled-components';\n\nimport Button from '@web/components/Headcount/components/Button';\nimport ListItem from './ListItem';\nimport Text from '@web/components/Headcount/components/Text';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport { setContactFormResult } from '@web/reducers/voterRegistration';\nimport useVoterRegistrationApi from '@web/components/Headcount/hooks/useVoterRegistrationApi';\n\nimport sendError from '@web/utils/sendError';\nimport { useTranslation } from 'react-i18next';\nimport { automaticVBMStates, excuseVBMStates } from '../helpers';\n\nconst Address = styled.div`\n margin: ${({ theme }) => theme.spacing.wide} 0;\n p {\n font-family: ${({ theme }) => theme.fonts.semibold};\n line-height: 1.4;\n }\n`;\n\nconst List = styled.ul`\n &&& {\n padding-left: ${({ theme }) => theme.spacing.wide};\n }\n color: ${({ theme }) => theme.colors.black};\n display: flex;\n flex-direction: column;\n margin-bottom: 2rem;\n`;\n\nconst ButtonArea = styled.div`\n display: grid;\n grid-gap: ${({ theme }) => theme.spacing.normal} 0px;\n grid-template-rows: 1fr 1fr 1fr;\n`;\n\nfunction RegisteredLocation({\n activity,\n team,\n nextPage,\n updateAddress,\n voteByMail,\n voteFromAddress,\n}) {\n const dispatch = useDispatch();\n const { contactFormResult, selectedVoter } = useSelector(state => state.voterRegistration);\n const { t } = useTranslation();\n const { submitContactUpdate } = useVoterRegistrationApi(activity);\n\n track('HEADCOUNT_VIEW_REGISTERED_LOCATION', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n\n const trackClick = async event_name => {\n track(event_name, {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n automatic_vbm: contactFormResult?.automatic_vbm,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n can_register_online: contactFormResult?.can_register_online,\n can_vbm: contactFormResult?.can_vbm,\n can_vbm_online: contactFormResult?.can_vbm_online,\n contact_id: contactFormResult?.id,\n has_state_identification: contactFormResult?.has_state_identification,\n registration_status: contactFormResult?.registration_status,\n state_abbrev: contactFormResult?.state_abbrev,\n team_id: team?.id,\n team_name: team?.name,\n });\n };\n\n function handleVoteFromAddress() {\n trackClick('HEADCOUNT_VOTE_FROM_ADDRESS');\n // Update address in backend\n submitContactUpdate(contactFormResult, {\n address: selectedVoter?.addressLine1,\n city: selectedVoter?.city,\n stateAbbrev: selectedVoter?.state,\n zipCode: selectedVoter?.zip,\n })\n .then(({ data }) => {\n dispatch(setContactFormResult({ activity, contact: data }));\n })\n .catch(err => {\n sendError('HC Voter Registration: User encountered error while updating their address', {\n err,\n });\n })\n .finally(() => {\n voteFromAddress();\n nextPage();\n });\n }\n\n function handleUpdateAddress() {\n trackClick('HEADCOUNT_UPDATE_ADDRESS');\n updateAddress();\n nextPage();\n }\n\n function handleVoteByMail() {\n trackClick('HEADCOUNT_VOTE_BY_MAIL');\n voteByMail();\n nextPage();\n }\n\n const isExcuseVBMState = React.useMemo(\n () => excuseVBMStates.includes(contactFormResult?.state_abbrev),\n [contactFormResult?.state_abbrev],\n );\n\n const isAutomaticVBMState = React.useMemo(\n () => automaticVBMStates.includes(contactFormResult?.state_abbrev),\n [contactFormResult?.state_abbrev],\n );\n\n const vbmListItem = React.useCallback(\n specificString => (\n <ListItem>\n {t(`check_registration.headcount.registeredLocation.${specificString ?? 'listItem3'}`)}\n </ListItem>\n ),\n [t],\n );\n\n const showVBMAsMain = React.useMemo(\n () => contactFormResult?.can_vbm && !isExcuseVBMState && !isAutomaticVBMState,\n [contactFormResult?.can_vbm, isExcuseVBMState, isAutomaticVBMState],\n );\n\n return (\n <>\n <Text variant=\"f2\">{t('check_registration.headcount.registeredLocation.title')}</Text>\n <Address>\n <Text>{selectedVoter?.addressLine1}</Text>\n <Text>\n {selectedVoter?.addressLine2} {selectedVoter?.zip}\n </Text>\n </Address>\n <Text\n dangerouslySetInnerHTML={{\n __html: t('check_registration.headcount.registeredLocation.listTitle', {\n state: t(`states.${contactFormResult?.state_abbrev}`),\n }),\n }}\n />\n\n <List>\n {showVBMAsMain && vbmListItem()}\n {isAutomaticVBMState && vbmListItem('automaticVbmItem')}\n <ListItem>{t('check_registration.headcount.registeredLocation.listItem1')}</ListItem>\n\n <ListItem shouldDangerouslySet={isAutomaticVBMState}>\n {t(\n `check_registration.headcount.registeredLocation.${\n isAutomaticVBMState ? 'automaticVbmRequestBallotItem' : 'listItem2'\n }`,\n )}\n </ListItem>\n\n {isExcuseVBMState && vbmListItem('excuseVbmItem')}\n </List>\n <ButtonArea>\n {showVBMAsMain && (\n <Button variant=\"primary\" onClick={handleVoteByMail}>\n {t('check_registration.headcount.registeredLocation.button3')}\n </Button>\n )}\n <Button variant={showVBMAsMain ? 'secondary' : 'primary'} onClick={handleVoteFromAddress}>\n {t(\n `check_registration.headcount.registeredLocation.${\n isAutomaticVBMState ? 'automaticVbmButton' : 'button1'\n }`,\n )}\n </Button>\n <Button variant=\"secondary\" onClick={handleUpdateAddress}>\n {t('check_registration.headcount.registeredLocation.button2')}\n </Button>\n {isExcuseVBMState && (\n <Button variant=\"secondary\" onClick={handleVoteByMail}>\n {t('check_registration.headcount.registeredLocation.button3')}\n </Button>\n )}\n </ButtonArea>\n </>\n );\n}\n\nRegisteredLocation.propTypes = {\n activity: PropTypes.object.isRequired,\n nextPage: PropTypes.func.isRequired,\n team: PropTypes.object,\n updateAddress: PropTypes.func.isRequired,\n voteByMail: PropTypes.func.isRequired,\n voteFromAddress: PropTypes.func.isRequired,\n};\n\nRegisteredLocation.defaultProps = {};\n\nexport default RegisteredLocation;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport Text from '@web/components/Headcount/components/Text';\n\nimport { useTranslation } from 'react-i18next';\n\nconst StyledVoterItem = styled.li`\n border: 1px solid ${({ theme }) => theme.colors.black};\n border-radius: 0.75rem;\n display: flex;\n height: 6rem;\n margin-top: ${({ theme }) => theme.spacing.wide};\n padding: ${({ theme }) => theme.spacing.normal};\n cursor: pointer;\n`;\n\nconst SelectButton = styled.div`\n align-self: center;\n color: ${({ theme }) => theme.colors.blue};\n padding-right: 0;\n font-weight: 900;\n cursor: pointer;\n`;\n\nconst Left = styled.div`\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: space-between;\n`;\n\nconst Name = styled(Text)`\n text-transform: capitalize;\n`;\n\nconst Subtitle = styled(Text).attrs({ variant: 'subtitle' })`\n line-height: 1.2;\n`;\n\nconst Bottom = styled.div``;\n\nfunction VoterItem({ onSelect, ...voter }) {\n const { t } = useTranslation();\n const { addressLine2, ageRange, name } = voter;\n return (\n <StyledVoterItem onClick={() => onSelect(voter)}>\n <Left>\n <Name>{name}</Name>\n <Bottom>\n <Subtitle>{addressLine2}</Subtitle>\n {ageRange && (\n <Subtitle>\n {t('check_registration.headcount.ageRange')}\n {ageRange}\n </Subtitle>\n )}\n </Bottom>\n </Left>\n <SelectButton variant=\"tertiary\">{t('add_report.buttons.select')}</SelectButton>\n </StyledVoterItem>\n );\n}\n\nVoterItem.propTypes = {\n addressLine2: PropTypes.string.isRequired,\n ageRange: PropTypes.string,\n name: PropTypes.string.isRequired,\n onSelect: PropTypes.func.isRequired,\n};\n\nVoterItem.defaultProps = {\n ageRange: null,\n};\n\nexport default VoterItem;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { track } from '@web/services/analytics';\nimport axios from 'axios';\nimport styled from 'styled-components';\n\nimport Banner from '@web/components/Headcount/components/Banner';\nimport Button from '@web/components/Headcount/components/Button';\nimport DotLoader from '@web/components/DotLoader';\nimport Text from '@web/components/Headcount/components/Text';\nimport VoterItem from './VoterItem';\n\nimport { setSelectedVoter } from '@web/reducers/voterRegistration';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport useIsPartner from '@web/components/Headcount/hooks/useIsPartner';\nimport useVoterRegistrationApi from '@web/components/Headcount/hooks/useVoterRegistrationApi';\n\nconst Row = styled.div`\n display: flex;\n flex-direction: row;\n margin-top: ${({ theme }) => theme.spacing.wider};\n`;\n\nconst NoneOfThese = styled.div`\n margin-left: auto;\n`;\n\nconst StyledSelectVoter = styled.div``;\n\nconst VoterList = styled.ul`\n margin: 0;\n padding: 0;\n`;\n\nfunction SelectVoter({ activity, nextPage, notRegistered, previousPage, team }) {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n // eslint-disable-next-line\n const [error, setError] = React.useState(null);\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n const { handleError } = useVoterRegistrationApi(activity);\n const [loading, setLoading] = React.useState(true);\n const [voters, setVoters] = React.useState([]);\n const isPartner = useIsPartner(team);\n\n track('HEADCOUNT_VIEW_SELECT_VOTER', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n\n const trackNotFound = async () => {\n track('HEADCOUNT_NOT_FOUND', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n };\n\n function handleNotRegistered(showBanner) {\n trackNotFound();\n notRegistered(showBanner);\n }\n\n React.useEffect(() => {\n fetchVoters();\n // eslint-disable-next-line\n }, []);\n\n function fetchVoters() {\n axios\n .post(`/api/v2/client/voter_registrations/${contactFormResult?.id}/possible_voters`, {\n activity_id: activity.id,\n campaign_id: activity.campaign.id,\n h: contactFormResult.encode_id,\n })\n .then(({ data }) => {\n setVoters(data);\n // MTS - If we don't get any results then we switch to the\n // \"Not Registered\" flow.\n if (data.length === 0) {\n handleNotRegistered(true);\n }\n })\n .catch(err => {\n const errorMessage = handleError(err);\n setError(errorMessage);\n })\n .then(() => {\n setLoading(false);\n });\n }\n\n function handleSelect(voter) {\n setLoading(true);\n axios\n .patch(`/api/v2/client/voter_registrations/${contactFormResult?.id}/set_voter`, {\n activity_id: activity.id,\n campaign_id: activity.campaign.id,\n h: contactFormResult?.encode_id,\n voter_id: voter.voterbaseId,\n })\n .then(({ data }) => {\n dispatch(setSelectedVoter(voter));\n nextPage();\n })\n .catch(err => {\n const errorMessage = handleError(err);\n setError(errorMessage);\n })\n .finally(() => {\n setLoading(false);\n });\n }\n\n function getVoterProps(voter) {\n const firstName = voter?.['vb.tsmart_first_name'];\n const lastName = voter?.['vb.tsmart_last_name'];\n const city = voter?.['vb.tsmart_city'];\n const state = voter?.['vb.tsmart_state'];\n const ageRange = voter?.['vb.voterbase_age'];\n const addressLine1 = voter?.['vb.tsmart_full_address'];\n const voterbaseId = voter?.['voterbase_id'];\n const zip = voter?.['vb.tsmart_zip'];\n\n return {\n addressLine1,\n addressLine2: `${city}, ${state}`,\n ageRange,\n city: city,\n // MTS - .toLowerCase() required for css text-transform to work\n name: `${firstName} ${lastName}`.toLowerCase(),\n state: state,\n voterbaseId,\n zip,\n };\n }\n\n if (loading) {\n return <DotLoader centered color=\"black\" />;\n }\n\n if (error) {\n return (\n <Text color=\"red\" variant=\"f3\">\n {error}\n </Text>\n );\n }\n\n const titleKey = voters.length === 1 ? 'titleForOne' : 'titleForMany';\n\n return (\n <StyledSelectVoter>\n {isPartner && <Banner activity={activity} />}\n <Text variant=\"f2\">\n {t(`check_registration.headcount.selectVoter.${titleKey}`, { count: voters.length })}\n </Text>\n <VoterList>\n {voters.map((voter, i) => (\n <VoterItem key={i} onSelect={handleSelect} {...getVoterProps(voter)} />\n ))}\n </VoterList>\n <Row>\n <Button onClick={previousPage} style={{ paddingLeft: 0 }} type=\"button\" variant=\"tertiary\">\n {t('common.back')}\n </Button>\n <NoneOfThese>\n <Button onClick={() => handleNotRegistered(false)} variant=\"secondary\">\n {t('check_registration.headcount.selectVoter.noneOfThese')}\n </Button>\n </NoneOfThese>\n </Row>\n </StyledSelectVoter>\n );\n}\n\nSelectVoter.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n cannabis_registration_enabled: PropTypes.bool,\n id: PropTypes.number.isRequired,\n name: PropTypes.string,\n }),\n id: PropTypes.number.isRequired,\n title: PropTypes.string,\n type: PropTypes.string,\n }),\n nextPage: PropTypes.func.isRequired,\n notRegistered: PropTypes.func.isRequired,\n previousPage: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nSelectVoter.defaultProps = {};\n\nexport default SelectVoter;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { track } from '@web/services/analytics';\n\nimport DotLoader from '@web/components/DotLoader';\nimport BackToStart from '@web/components/Headcount/components/BackToStart';\nimport ExternalButtonLink from '@web/components/Headcount/components/ExternalButtonLink';\nimport ShareLink from '@web/components/Headcount/components/ShareLink';\nimport Text from '@web/components/Headcount/components/Text';\nimport VoterBox from '@web/components/Headcount/components/VoterBox';\nimport VotingDates from '@web/components/Headcount/components/VotingDates';\nimport HeroImage from '@web/components/Headcount/components/HeroImage';\n\nimport useIsDesktop from '@web/components/Headcount/hooks/useIsDesktop';\nimport useIsPartner from '@web/components/Headcount/hooks/useIsPartner';\nimport useFetchVoterRecord from '@web/components/Headcount/hooks/useFetchVoterRecord';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nfunction UpdateAddressResult({ activity, backToStart, team }) {\n const { contactFormResult, hasStateId, selectedVoter } = useSelector(\n state => state.voterRegistration,\n );\n const { error, loading, voterRecord } = useFetchVoterRecord(activity);\n const { t } = useTranslation();\n const isDesktop = useIsDesktop();\n const isPartner = useIsPartner(team);\n const cannabisRegistrationEnabled = React.useMemo(\n () => activity?.campaign?.cannabis_registration_enabled,\n [activity?.campaign?.cannabis_registration_enabled],\n );\n\n const headcountMtvEnabled = React.useMemo(\n () => activity.campaign.headcount_mtv_enabled,\n [activity.campaign.headcount_mtv_enabled],\n );\n\n track('HEADCOUNT_VIEW_UPDATE_ADDRESS', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n\n let title;\n title = hasStateId\n ? t('check_registration.headcount.updateAddress.title')\n : t('check_registration.headcount.useSSN');\n if (isPartner) {\n title = hasStateId\n ? t('check_registration.headcount.updateAddress.partnerTitle')\n : t('check_registration.headcount.partnerUseSSN');\n }\n if (cannabisRegistrationEnabled) {\n title = hasStateId\n ? t('check_registration.headcount.updateAddress.cannabisTitle')\n : t('check_registration.headcount.cannabisUseSSN');\n }\n\n if (loading) {\n return <DotLoader centered color=\"black\" />;\n }\n\n if (error) {\n return (\n <Text color=\"red\" variant=\"f3\">\n {error}\n </Text>\n );\n }\n\n const stateAbbreviation = selectedVoter?.addressLine2?.split(',')[1].trim();\n\n const address = {\n // MTS - The voter database concats the first 2 address lines into\n // addressLine1, therefore the \"unit/apt\" will always be part of line 1\n line1: selectedVoter?.addressLine1,\n line2: null,\n line3: `${selectedVoter?.addressLine2} ${selectedVoter?.zip}`,\n };\n\n const regParams = new URLSearchParams({\n apartment: contactFormResult?.unit_number,\n campaign: 'impactive',\n city: contactFormResult?.city,\n date_of_birth_day: parseInt(contactFormResult?.date_of_birth.split('-')[2]),\n date_of_birth_month: parseInt(contactFormResult?.date_of_birth.split('-')[1]),\n date_of_birth_year: parseInt(contactFormResult?.date_of_birth.split('-')[0]),\n email: contactFormResult?.email,\n first_name: contactFormResult?.first_name,\n last_name: contactFormResult?.last_name,\n phone_number: contactFormResult?.phone.replace('+1', ''),\n state: contactFormResult?.state_abbrev,\n street_address: contactFormResult?.address,\n zip_5: contactFormResult?.zip_code,\n });\n\n const registrationLink =\n !hasStateId || !voterRecord?.voting_info?.online_reg_link\n ? `https://www.headcount.org/registertovote/?${regParams.toString()}`\n : voterRecord?.voting_info?.online_reg_link;\n\n const trackClick = async () => {\n track('HEADCOUNT_CLICK_REGISTRATION_LINK', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n automatic_vbm: contactFormResult?.automatic_vbm,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n can_register_online: contactFormResult?.can_register_online,\n can_vbm: contactFormResult?.can_vbm,\n can_vbm_online: contactFormResult?.can_vbm_online,\n contact_id: contactFormResult?.id,\n has_state_identification: contactFormResult?.has_state_identification,\n registration_status: contactFormResult?.registration_status,\n state_abbrev: contactFormResult?.state_abbrev,\n team_id: team?.id,\n team_name: team?.name,\n });\n };\n\n return (\n <>\n {headcountMtvEnabled && (\n <ShareLink\n activity={activity}\n referralLink={contactFormResult?.referral_link}\n team={team}\n />\n )}\n <Text variant=\"f2\">{title}</Text>\n <VoterBox\n address={address}\n label={{ text: t('check_registration.headcount.updateAddress.labelText') }}\n voterName={contactFormResult?.fullname}\n />\n {registrationLink && (\n <ExternalButtonLink href={registrationLink} onClick={trackClick}>\n {t('check_registration.headcount.updateAddress.buttonLinkText')}\n </ExternalButtonLink>\n )}\n <VotingDates\n stateAbbreviation={stateAbbreviation}\n team={team}\n activity={activity}\n votingInfo={voterRecord?.voting_info}\n />\n {!isDesktop && isPartner && !headcountMtvEnabled && (\n <HeroImage alt={team?.name} src={team?.incentives_img_url} />\n )}\n {!headcountMtvEnabled && (\n <ShareLink\n activity={activity}\n referralLink={contactFormResult?.referral_link}\n team={team}\n />\n )}\n <BackToStart onClick={backToStart} />\n </>\n );\n}\n\nUpdateAddressResult.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n cannabis_registration_enabled: PropTypes.bool,\n headcount_mtv_enabled: PropTypes.bool,\n id: PropTypes.number.isRequired,\n name: PropTypes.string,\n }).isRequired,\n description: PropTypes.string.isRequired,\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n type: PropTypes.string,\n }).isRequired,\n backToStart: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nUpdateAddressResult.defaultProps = {};\n\nexport default UpdateAddressResult;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { track } from '@web/services/analytics';\n\nimport DotLoader from '@web/components/DotLoader';\nimport BackToStart from '@web/components/Headcount/components/BackToStart';\nimport ShareLink from '@web/components/Headcount/components/ShareLink';\nimport Text from '@web/components/Headcount/components/Text';\nimport VoterBox from '@web/components/Headcount/components/VoterBox';\nimport VotingDates from '@web/components/Headcount/components/VotingDates';\nimport HeroImage from '@web/components/Headcount/components/HeroImage';\n\nimport useIsDesktop from '@web/components/Headcount/hooks/useIsDesktop';\nimport useIsPartner from '@web/components/Headcount/hooks/useIsPartner';\nimport useFetchVoterRecord from '@web/components/Headcount/hooks/useFetchVoterRecord';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { automaticVBMStates } from '../helpers';\n\nfunction VoteFromAddressResult({ activity, backToStart, team }) {\n const { contactFormResult, selectedVoter } = useSelector(state => state.voterRegistration);\n const { error, loading, voterRecord } = useFetchVoterRecord(activity);\n const { t } = useTranslation();\n const isDesktop = useIsDesktop();\n const isPartner = useIsPartner(team);\n\n const headcountMtvEnabled = React.useMemo(\n () => activity.campaign.headcount_mtv_enabled,\n [activity.campaign.headcount_mtv_enabled],\n );\n\n track('HEADCOUNT_VIEW_VOTE_FROM_ADDRESS', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n\n const isAutomaticVBMState = React.useMemo(\n () => automaticVBMStates.includes(contactFormResult?.state_abbrev),\n [contactFormResult?.state_abbrev],\n );\n\n const title = React.useMemo(\n () =>\n t(\n isAutomaticVBMState\n ? 'check_registration.headcount.voteByMail.automaticVBMTitle'\n : 'check_registration.headcount.voteFromAddress.title',\n { state: t(`states.${contactFormResult?.state_abbrev}`) },\n ),\n [contactFormResult?.state_abbrev, isAutomaticVBMState, t],\n );\n\n if (loading) {\n return <DotLoader centered color=\"black\" />;\n }\n\n if (error) {\n return (\n <Text color=\"red\" variant=\"f3\">\n {error}\n </Text>\n );\n }\n\n const stateAbbreviation = selectedVoter?.addressLine2?.split(',')[1].trim();\n\n const address = {\n line1: selectedVoter?.addressLine1,\n // MTS - The voter database concats the first 2 address lines into\n // addressLine1, therefore the \"unit/apt\" will always be part of line 1\n line2: null,\n line3: `${selectedVoter?.addressLine2} ${selectedVoter?.zip}`,\n };\n\n return (\n <>\n {headcountMtvEnabled && (\n <ShareLink\n activity={activity}\n referralLink={contactFormResult?.referral_link}\n team={team}\n />\n )}\n <Text\n variant=\"f2\"\n dangerouslySetInnerHTML={{\n __html: title,\n }}\n />\n\n <VoterBox\n address={address}\n label={{ bgColor: 'green', text: t('check_registration.headcount.statusRegistered') }}\n voterName={contactFormResult?.fullname}\n />\n <VotingDates\n stateAbbreviation={stateAbbreviation}\n activity={activity}\n team={team}\n votingInfo={voterRecord?.voting_info}\n />\n {!isDesktop && isPartner && !headcountMtvEnabled && (\n <HeroImage alt={team?.name} src={team?.incentives_img_url} />\n )}\n {!headcountMtvEnabled && (\n <ShareLink\n activity={activity}\n referralLink={contactFormResult?.referral_link}\n team={team}\n />\n )}\n <BackToStart onClick={backToStart} />\n </>\n );\n}\n\nVoteFromAddressResult.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n headcount_mtv_enabled: PropTypes.bool,\n id: PropTypes.number.isRequired,\n name: PropTypes.string,\n }).isRequired,\n description: PropTypes.string.isRequired,\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n type: PropTypes.string,\n }).isRequired,\n backToStart: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nVoteFromAddressResult.defaultProps = {};\n\nexport default VoteFromAddressResult;\n","import * as React from 'react';\n\nfunction usePageNavigation(numberOfPages, isHeadcountMtv) {\n const [currentPage, setCurrentPage] = React.useState(0);\n\n // Scroll to the top of the page each time currentPage changes.\n React.useEffect(() => {\n window?.scrollTo?.(0, 0);\n // eslint-disable-next-line\n }, [currentPage]);\n\n function nextPage() {\n const next = currentPage + 1;\n if (next > numberOfPages - 1) {\n return;\n }\n setCurrentPage(next);\n }\n\n function previousPage() {\n const next = currentPage - 1;\n if (next < 0) {\n return;\n }\n setCurrentPage(next);\n }\n\n // For Headcount MTV we have to add 1 more step to show that users have to share link to finish it completely\n const progress = React.useMemo(\n () =>\n isHeadcountMtv ? (currentPage + 1) / (numberOfPages + 1) : (currentPage + 1) / numberOfPages,\n [currentPage, isHeadcountMtv, numberOfPages],\n );\n\n return {\n currentPage,\n nextPage,\n numberOfPages,\n previousPage,\n progress,\n setCurrentPage,\n };\n}\n\nexport default usePageNavigation;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { track } from '@web/services/analytics';\n\nimport BackToStart from '@web/components/Headcount/components/BackToStart';\nimport DotLoader from '@web/components/DotLoader';\nimport ExternalButtonLink from '@web/components/Headcount/components/ExternalButtonLink';\nimport HeroImage from '@web/components/Headcount/components/HeroImage';\nimport ShareLink from '@web/components/Headcount/components/ShareLink';\nimport Text from '@web/components/Headcount/components/Text';\nimport VoterBox from '@web/components/Headcount/components/VoterBox';\nimport VotingDates from '@web/components/Headcount/components/VotingDates';\n\nimport useIsDesktop from '@web/components/Headcount/hooks/useIsDesktop';\nimport useIsPartner from '@web/components/Headcount/hooks/useIsPartner';\nimport useFetchVoterRecord from '@web/components/Headcount/hooks/useFetchVoterRecord';\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { automaticVBMStates, excuseVBMStates } from '../helpers';\n\nfunction VoteByMailResult({ activity, backToStart, team }) {\n const { contactFormResult, selectedVoter } = useSelector(state => state.voterRegistration);\n const { error, loading, voterRecord } = useFetchVoterRecord(activity);\n const { t } = useTranslation();\n const isDesktop = useIsDesktop();\n const isPartner = useIsPartner(team);\n\n const headcountMtvEnabled = React.useMemo(\n () => activity.campaign.headcount_mtv_enabled,\n [activity.campaign.headcount_mtv_enabled],\n );\n\n const isExcuseVBMState = React.useMemo(\n () => excuseVBMStates.includes(contactFormResult?.state_abbrev),\n [contactFormResult?.state_abbrev],\n );\n\n const isAutomaticVBMState = React.useMemo(\n () => automaticVBMStates.includes(contactFormResult?.state_abbrev),\n [contactFormResult?.state_abbrev],\n );\n\n const title = React.useMemo(\n () =>\n t(\n `check_registration.headcount.voteByMail.${\n isExcuseVBMState ? 'excuseVBMTitle' : isAutomaticVBMState ? 'automaticVBMTitle' : 'title'\n }`,\n { state: t(`states.${contactFormResult?.state_abbrev}`) },\n ),\n [contactFormResult?.state_abbrev, isExcuseVBMState, isAutomaticVBMState, t],\n );\n\n track('HEADCOUNT_VIEW_VOTE_BY_MAIL_RESULT', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n\n const trackClick = async () => {\n track('HEADCOUNT_CLICK_REQUEST_BALLOT', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n automatic_vbm: contactFormResult?.automatic_vbm,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n can_register_online: contactFormResult?.can_register_online,\n can_vbm: contactFormResult?.can_vbm,\n can_vbm_online: contactFormResult?.can_vbm_online,\n contact_id: contactFormResult?.id,\n has_state_identification: contactFormResult?.has_state_identification,\n registration_status: contactFormResult?.registration_status,\n state_abbrev: contactFormResult?.state_abbrev,\n team_id: team?.id,\n team_name: team?.name,\n });\n };\n\n if (loading) {\n return <DotLoader centered color=\"black\" />;\n }\n\n if (error) {\n return (\n <Text color=\"red\" variant=\"f3\">\n {error}\n </Text>\n );\n }\n\n const stateAbbreviation = selectedVoter?.addressLine2?.split(',')[1].trim();\n\n const address = {\n // MTS - The voter database concats the first 2 address lines into\n // addressLine1, therefore the \"unit/apt\" will always be part of line 1\n line1: selectedVoter?.addressLine1,\n line2: null,\n line3: `${selectedVoter?.addressLine2} ${selectedVoter?.zip}`,\n };\n\n const regParams = new URLSearchParams({\n apartment: contactFormResult?.unit_number,\n campaign: 'impactive',\n city: contactFormResult?.city,\n date_of_birth_day: parseInt(contactFormResult?.date_of_birth.split('-')[2]),\n date_of_birth_month: parseInt(contactFormResult?.date_of_birth.split('-')[1]),\n date_of_birth_year: parseInt(contactFormResult?.date_of_birth.split('-')[0]),\n email: contactFormResult?.email,\n first_name: contactFormResult?.first_name,\n last_name: contactFormResult?.last_name,\n phone_number: contactFormResult?.phone.replace('+1', ''),\n state: contactFormResult?.state_abbrev,\n street_address: contactFormResult?.address,\n zip_5: contactFormResult?.zip_code,\n });\n\n return (\n <>\n {headcountMtvEnabled && (\n <ShareLink\n activity={activity}\n referralLink={contactFormResult?.referral_link}\n team={team}\n />\n )}\n <Text\n variant=\"f2\"\n dangerouslySetInnerHTML={{\n __html: title,\n }}\n />\n <VoterBox\n address={address}\n label={{ bgColor: 'green', text: t('check_registration.headcount.statusRegistered') }}\n voterName={contactFormResult?.fullname}\n />\n <ExternalButtonLink\n href={`https://www.headcount.org/request-your-ballot/?${regParams.toString()}`}\n onClick={trackClick}\n >\n {t('check_registration.headcount.voteByMail.buttonLinkText')}\n </ExternalButtonLink>\n <VotingDates\n stateAbbreviation={stateAbbreviation}\n team={team}\n activity={activity}\n voteByMail\n votingInfo={voterRecord?.voting_info}\n />\n {!isDesktop && isPartner && !headcountMtvEnabled && (\n <HeroImage alt={team?.name} src={team?.incentives_img_url} />\n )}\n {!headcountMtvEnabled && (\n <ShareLink\n activity={activity}\n referralLink={contactFormResult?.referral_link}\n team={team}\n />\n )}\n <BackToStart onClick={backToStart} />\n </>\n );\n}\n\nVoteByMailResult.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n headcount_mtv_enabled: PropTypes.bool,\n id: PropTypes.number.isRequired,\n name: PropTypes.string,\n }).isRequired,\n description: PropTypes.string.isRequired,\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n type: PropTypes.string,\n }).isRequired,\n backToStart: PropTypes.func.isRequired,\n hasStateId: PropTypes.bool.isRequired,\n team: PropTypes.object,\n};\n\nVoteByMailResult.defaultProps = {};\n\nexport default VoteByMailResult;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport ContactForm from '@web/components/Headcount/components/FormComponents/ContactForm';\nimport HeaderAndProgress from '@web/components/Headcount/components/HeaderAndProgress';\nimport RegisterToVoteResult from '@web/components/Headcount/flows/RegisterToVote/pages/RegisterToVoteResult';\nimport StateIdQuestion from '@web/components/Headcount/flows/RegisterToVote/pages/StateIdQuestion';\nimport StateIdQuestionWithAddress from '@web/components/Headcount/flows/RegisterToVote/pages/StateIdQuestionWithAddress';\nimport NotRegistered from '@web/components/Headcount/flows/CheckRegistration/pages/NotRegistered';\nimport RegisteredLocation from './pages/RegisteredLocation';\nimport SelectVoter from './pages/SelectVoter';\nimport UpdateAddressResult from './pages/UpdateAddressResult';\nimport VoteFromAddressResult from './pages/VoteFromAddressResult';\n\nimport { useDispatch } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport { init as voterRegistrationInit } from '@web/reducers/voterRegistration';\nimport useContactForm from '@web/components/Headcount/hooks/useContactForm';\nimport useIsPartner from '@web/components/Headcount/hooks/useIsPartner';\nimport usePageNavigation from '@web/components/Headcount/hooks/usePageNavigation';\nimport VoteByMailResult from './pages/VoteByMailResult';\n\n// This ensures the progress bar will perform correctly\nconst Placeholder = () => <div />;\n\nconst baseFlow = [ContactForm, SelectVoter, RegisteredLocation, Placeholder];\n// We replace SelectVoter with NotRegistered if we do not receive any results from\n// the possible_voters endpoint.\nconst notRegisteredFlow = [ContactForm, NotRegistered, StateIdQuestion, RegisterToVoteResult];\nconst updateAddressFlow = [\n ContactForm,\n SelectVoter,\n RegisteredLocation,\n StateIdQuestionWithAddress,\n UpdateAddressResult,\n];\nconst voteByMailFlow = [ContactForm, SelectVoter, RegisteredLocation, VoteByMailResult];\nconst voteFromAddressFlow = [ContactForm, SelectVoter, RegisteredLocation, VoteFromAddressResult];\n\nfunction CheckRegistration({ activity, backToStart, setRootFlow, team }) {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const { schemas } = useContactForm();\n const [selectedFlow, setSelectedFlow] = React.useState(baseFlow);\n const [showBanner, setShowBanner] = React.useState(true);\n\n const headcountMtvEnabled = React.useMemo(\n () => activity?.campaign?.headcount_mtv_enabled,\n [activity?.campaign?.headcount_mtv_enabled],\n );\n\n const pageNavigation = usePageNavigation(selectedFlow.length, headcountMtvEnabled);\n const { currentPage } = pageNavigation;\n const isPartner = useIsPartner(team);\n const cannabisRegistrationEnabled = React.useMemo(\n () => activity?.campaign?.cannabis_registration_enabled,\n [activity?.campaign?.cannabis_registration_enabled],\n );\n const headcountRtcEnabled = React.useMemo(\n () => activity?.campaign?.headcount_rct_enabled,\n [activity?.campaign?.headcount_rct_enabled],\n );\n\n React.useEffect(() => {\n if (currentPage === 0) {\n setShowBanner(true);\n dispatch(voterRegistrationInit());\n }\n }, [currentPage, dispatch]);\n\n function notRegistered(showBanner) {\n setSelectedFlow(notRegisteredFlow);\n setShowBanner(showBanner);\n }\n\n function voteFromAddress() {\n setSelectedFlow(voteFromAddressFlow);\n }\n\n function updateAddress() {\n setSelectedFlow(updateAddressFlow);\n }\n\n function voteByMail() {\n setSelectedFlow(voteByMailFlow);\n }\n\n function contactFormTitle() {\n if (headcountRtcEnabled) {\n return t('check_registration.headcount.rct.formTitle');\n }\n\n if (headcountMtvEnabled) {\n return t('check_registration.headcount.mtvSubtitle.checkRegistration');\n }\n if (cannabisRegistrationEnabled) {\n return t('check_registration.headcount.cannabisSubtitle.checkRegistration');\n }\n if (isPartner) {\n return t('check_registration.headcount.partnerSubtitle.checkRegistration');\n }\n\n return t('check_registration.headcount.subtitle.getReadyToVote');\n }\n\n const pageProps = {\n activity,\n backToStart,\n contactFormSchema: schemas.contactFormHeadcount,\n contactFormTitle: contactFormTitle(),\n notRegistered,\n registrationStatus: 'Unregistered',\n setRootFlow,\n setShowBanner,\n showBanner,\n team,\n updateAddress,\n voteByMail,\n voteFromAddress,\n ...pageNavigation,\n };\n\n const CurrentPage = selectedFlow[currentPage];\n return (\n <>\n <HeaderAndProgress\n activity={activity}\n progress={pageNavigation.progress}\n numberOfPages={pageNavigation.numberOfPages}\n team={team}\n />\n <CurrentPage {...pageProps} />\n </>\n );\n}\n\nCheckRegistration.propTypes = {\n activity: PropTypes.object.isRequired,\n backToStart: PropTypes.func.isRequired,\n setRootFlow: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nCheckRegistration.defaultProps = {\n team: null,\n};\n\nexport default CheckRegistration;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport ContactForm from '@web/components/Headcount/components/FormComponents/ContactForm';\nimport HeaderAndProgress from '@web/components/Headcount/components/HeaderAndProgress';\nimport RegisterToVoteResult from './pages/RegisterToVoteResult';\nimport StateIdQuestion from './pages/StateIdQuestion';\n\nimport usePageNavigation from '../../hooks/usePageNavigation';\nimport useContactForm from '@web/components/Headcount/hooks/useContactForm';\nimport useIsPartner from '@web/components/Headcount/hooks/useIsPartner';\n\nimport { useTranslation } from 'react-i18next';\n\nfunction RegisterToVote({ activity, backToStart, setRootFlow, team }) {\n const { t } = useTranslation();\n const { schemas } = useContactForm();\n const pages = [ContactForm, StateIdQuestion, RegisterToVoteResult];\n const headcountMtvEnabled = React.useMemo(\n () => activity?.campaign?.headcount_mtv_enabled,\n [activity?.campaign?.headcount_mtv_enabled],\n );\n const pageNavigation = usePageNavigation(pages.length, headcountMtvEnabled);\n const { currentPage, progress, numberOfPages } = pageNavigation;\n const isPartner = useIsPartner(team);\n const cannabisRegistrationEnabled = React.useMemo(\n () => activity?.campaign?.cannabis_registration_enabled,\n [activity?.campaign?.cannabis_registration_enabled],\n );\n\n function contactFormTitle() {\n if (headcountMtvEnabled) {\n return t('check_registration.headcount.mtvSubtitle.registerToVote');\n }\n if (cannabisRegistrationEnabled) {\n return t('check_registration.headcount.cannabisSubtitle.registerToVote');\n }\n if (isPartner) {\n return t('check_registration.headcount.partnerSubtitle.registerToVote');\n }\n\n return t('check_registration.headcount.subtitle.getReadyToVote');\n }\n\n const pageProps = {\n activity,\n backToStart,\n contactFormSchema: schemas.contactFormHeadcount,\n contactFormTitle: contactFormTitle(),\n setRootFlow,\n team,\n ...pageNavigation,\n };\n\n const CurrentPage = pages[currentPage];\n return (\n <>\n <HeaderAndProgress\n activity={activity}\n progress={progress}\n numberOfPages={numberOfPages}\n team={team}\n />\n <CurrentPage {...pageProps} />\n </>\n );\n}\n\nRegisterToVote.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n cannabis_registration_enabled: PropTypes.string.isRequired,\n headcount_mtv_enabled: PropTypes.string,\n }),\n title: PropTypes.string.isRequired,\n }).isRequired,\n backToStart: PropTypes.func.isRequired,\n setRootFlow: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nRegisterToVote.defaultProps = {\n team: null,\n};\n\nexport default RegisterToVote;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { track } from '@web/services/analytics';\nimport styled from 'styled-components';\n\nimport Banner from '@web/components/Headcount/components/Banner';\nimport Button from '@web/components/Headcount/components/Button';\nimport HeroImage from '@web/components/Headcount/components/HeroImage';\nimport ShareLink from '@web/components/Headcount/components/ShareLink';\nimport VotingDates from '@web/components/Headcount/components/VotingDates';\n\nimport useIsDesktop from '@web/components/Headcount/hooks/useIsDesktop';\nimport useIsPartner from '@web/components/Headcount/hooks/useIsPartner';\n\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nconst Center = styled.div`\n display: flex;\n justify-content: center;\n margin-top: ${({ $withMargin }) => ($withMargin ? '2rem' : '0')};\n`;\n\nfunction ReferralShowLink({ activity, backToStart, team }) {\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n const { t } = useTranslation();\n const isDesktop = useIsDesktop();\n const isPartner = useIsPartner(team);\n\n track('HEADCOUNT_VIEW_WANT_TO_HELP', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n\n const headcountMtvEnabled = React.useMemo(\n () => activity.campaign.headcount_mtv_enabled,\n [activity.campaign.headcount_mtv_enabled],\n );\n\n return (\n <>\n {headcountMtvEnabled && (\n <ShareLink\n activity={activity}\n referralLink={contactFormResult?.referral_link}\n team={team}\n />\n )}\n {isPartner && <Banner activity={activity} />}\n <VotingDates\n stateAbbreviation={contactFormResult?.state_abbrev}\n team={team}\n votingInfo={contactFormResult?.voting_info}\n />\n {!isDesktop && isPartner && !headcountMtvEnabled && (\n <HeroImage alt={team?.name} src={team?.incentives_img_url} />\n )}\n {!headcountMtvEnabled && (\n <ShareLink\n activity={activity}\n referralLink={contactFormResult?.referral_link}\n team={team}\n />\n )}\n <Center $withMargin={!headcountMtvEnabled}>\n <Button variant=\"secondary\" onClick={backToStart}>\n {t('check_registration.headcount.startOver')}\n </Button>\n </Center>\n </>\n );\n}\n\nReferralShowLink.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n cannabis_registration_enabled: PropTypes.bool,\n headcount_mtv_enabled: PropTypes.string,\n id: PropTypes.number.isRequired,\n name: PropTypes.string,\n }),\n description: PropTypes.string.isRequired,\n id: PropTypes.number,\n title: PropTypes.string,\n type: PropTypes.string,\n }).isRequired,\n backToStart: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nReferralShowLink.defaultProps = {};\n\nexport default ReferralShowLink;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n\nimport HeaderAndProgress from '@web/components/Headcount/components/HeaderAndProgress';\nimport ContactForm from '@web/components/Headcount/components/FormComponents/ContactForm';\nimport ReferralShowLink from './pages/ReferralShowLink';\n\nimport usePageNavigation from '@web/components/Headcount/hooks/usePageNavigation';\nimport useContactForm from '@web/components/Headcount/hooks/useContactForm';\nimport useIsPartner from '@web/components/Headcount/hooks/useIsPartner';\n\nimport { useTranslation } from 'react-i18next';\n\nfunction WantToHelp({ activity, backToStart, setRootFlow, team }) {\n const { t } = useTranslation();\n const { schemas } = useContactForm();\n const pages = [ContactForm, ReferralShowLink];\n const headcountMtvEnabled = React.useMemo(\n () => activity?.campaign?.headcount_mtv_enabled,\n [activity?.campaign?.headcount_mtv_enabled],\n );\n const { currentPage, progress, setCurrentPage, numberOfPages } = usePageNavigation(\n pages.length,\n headcountMtvEnabled,\n );\n const isPartner = useIsPartner(team);\n const cannabisRegistrationEnabled = React.useMemo(\n () => activity?.campaign?.cannabis_registration_enabled,\n [activity?.campaign?.cannabis_registration_enabled],\n );\n\n function contactFormTitle() {\n if (headcountMtvEnabled) {\n return t('check_registration.headcount.mtvSubtitle.wantToHelp');\n }\n if (cannabisRegistrationEnabled) {\n return t('check_registration.headcount.cannabisSubtitle.wantToHelp');\n }\n if (isPartner) {\n return t('check_registration.headcount.partnerSubtitle.wantToHelp');\n }\n\n return t('check_registration.headcount.subtitle.getElectionDetails');\n }\n\n const pageProps = {\n activity,\n backToStart,\n contactFormSchema: schemas.referralFormHeadcount,\n contactFormTitle: contactFormTitle(),\n nextPage: () => setCurrentPage(1),\n registrationStatus: 'Unable to Vote',\n setRootFlow,\n team,\n };\n\n const CurrentPage = pages[currentPage];\n return (\n <>\n <HeaderAndProgress\n activity={activity}\n progress={progress}\n numberOfPages={numberOfPages}\n team={team}\n />\n <CurrentPage {...pageProps} />\n </>\n );\n}\n\nWantToHelp.propTypes = {\n activity: PropTypes.object.isRequired,\n backToStart: PropTypes.func.isRequired,\n setRootFlow: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nWantToHelp.defaultProps = {\n team: null,\n};\n\nexport default WantToHelp;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport Button from '@web/components/Headcount/components/Button';\n\nconst StyledHref = styled.a`\n :link {\n text-decoration: none;\n }\n`;\n\nconst StlyedButton = styled(Button)`\n width: 100%;\n`;\n\nfunction LinkButton({ href, ...rest }) {\n return (\n <StyledHref target=\"_blank\" rel=\"noopener noreferrer\" href={href}>\n <StlyedButton {...rest} />\n </StyledHref>\n );\n}\n\nLinkButton.propTypes = {\n children: PropTypes.node.isRequired,\n href: PropTypes.string.isRequired,\n};\n\nexport default LinkButton;\n","import LinkButton from './LinkButton';\n\nexport default LinkButton;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport DateItem from '@web/components/Headcount/components/VotingDates/DateItem';\nimport useIsPartner from '@web/components/Headcount/hooks/useIsPartner';\n\nconst DateList = styled.ul`\n margin: ${({ theme }) => theme.spacing.wide} 0 0;\n padding: 0;\n`;\n\nconst StyledVotingDates = styled.div`\n margin: 1em 0;\n`;\n\nfunction VotingDatesGA({ activity, team }) {\n const isPartner = useIsPartner(team);\n const isCannabis = activity?.campaign?.cannabis_registration_enabled;\n\n function getColor() {\n if (isCannabis) {\n return 'green';\n }\n if (isPartner) {\n return 'yellow';\n }\n return 'teal';\n }\n\n const color = getColor();\n\n return (\n <StyledVotingDates>\n <DateList>\n <DateItem color={color} date={'11-07-22'} type=\"lastRegDay\" />\n <DateItem color={color} date={'11-27-22'} type=\"lastDayAbsenteeBallot\" />\n <DateItem color={color} date={'11-28-22'} type=\"earlyVotingStart\" />\n <DateItem color={color} date={'12-06-22'} type=\"electionDay\" />\n </DateList>\n </StyledVotingDates>\n );\n}\n\nVotingDatesGA.propTypes = {\n activity: PropTypes.object,\n stateAbbreviation: PropTypes.string.isRequired,\n team: PropTypes.object,\n voteByMail: PropTypes.bool,\n votingInfo: PropTypes.shape({\n early_vote_start: PropTypes.string,\n general_election_date: PropTypes.string.isRequired,\n general_vbm_request_deadline: PropTypes.string,\n online_primary_reg_deadline: PropTypes.string,\n online_reg_deadline: PropTypes.string,\n polling_place_locator: PropTypes.string,\n primary_early_vote_start: PropTypes.string,\n primary_election_date: PropTypes.string,\n primary_vbm_request_deadline: PropTypes.string,\n }).isRequired,\n};\n\nVotingDatesGA.defaultProps = {};\n\nexport default VotingDatesGA;\n","import * as React from 'react';\nimport { useSelector } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { track } from '@web/services/analytics';\n\nimport BackToStart from '@web/components/Headcount/components/BackToStart';\nimport ShareLink from '@web/components/Headcount/components/ShareLink';\nimport Text from '@web/components/Headcount/components/Text';\nimport LinkButton from '@web/components/Headcount/components/LinkButton';\nimport HeroImage from '@web/components/Headcount/components/HeroImage';\n\nimport HeaderAndProgress from '@web/components/Headcount/components/HeaderAndProgress';\nimport useIsDesktop from '@web/components/Headcount/hooks/useIsDesktop';\nimport useIsPartner from '@web/components/Headcount/hooks/useIsPartner';\nimport VotingDatesGA from './components/VotingDatesGA';\n\nconst Wrapper = styled.div`\n margin: 1rem 0;\n`;\n\nconst Buttons = styled.div`\n display: grid;\n gap: 24px;\n margin: 18px 0;\n`;\n\nfunction GeorgiaRunoffPage({ activity, backToStart, team }) {\n const pageRef = React.useRef(null);\n const { contactFormResult } = useSelector(state => state.voterRegistration);\n const isDesktop = useIsDesktop();\n const isPartner = useIsPartner(team);\n\n track('GA_RUNOFF_PAGE_VIEW', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n });\n\n // VR pages don't utilize react roter and hence keep the scroll position\n // on page transitions. We want to scroll the page content into view.\n React.useEffect(() => {\n pageRef.current?.scrollIntoView({ behavior: 'smooth' });\n }, []);\n\n return (\n <Wrapper ref={pageRef}>\n <HeaderAndProgress activity={activity} progress={1} team={team} />\n <Text variant=\"f2\">Key voting dates for Georgia Runoff:</Text>\n\n <VotingDatesGA stateAbbreviation={'GA'} team={team} activity={activity} />\n\n <Buttons>\n <LinkButton href=\"https://mvp.sos.ga.gov/s/\" size=\"large\">\n Find Your Polling Place\n </LinkButton>\n\n <LinkButton href=\"https://georgia.gov/vote-absentee-ballot\" variant=\"outlined\" size=\"large\">\n Request Absentee Ballot\n </LinkButton>\n\n <LinkButton href=\"https://georgia.gov/election-2022\" variant=\"outlined\" size=\"large\">\n See Georgia Voting Information\n </LinkButton>\n </Buttons>\n\n {!isDesktop && isPartner && <HeroImage alt={team?.name} src={team?.incentives_img_url} />}\n\n <ShareLink activity={activity} referralLink={contactFormResult?.referral_link} team={team} />\n <BackToStart onClick={backToStart} />\n </Wrapper>\n );\n}\n\nGeorgiaRunoffPage.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n cannabis_registration_enabled: PropTypes.bool,\n id: PropTypes.number.isRequired,\n name: PropTypes.string,\n }).isRequired,\n description: PropTypes.string.isRequired,\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n type: PropTypes.string,\n }).isRequired,\n backToStart: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nGeorgiaRunoffPage.defaultProps = {};\n\nexport default GeorgiaRunoffPage;\n","import GeorgiaRunoffPage from './GeorgiaRunoffPage';\n\nexport default GeorgiaRunoffPage;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport queryString from 'query-string';\nimport { track } from '@web/services/analytics';\nimport { useDispatch } from 'react-redux';\nimport { useLocation } from 'react-router-dom/cjs/react-router-dom';\n\nimport ChooseFlow from './components/ChooseFlow';\nimport HeadcountLayoutDesktop from './components/HeadcountLayoutDesktop';\nimport HeadcountLayoutMobile from './components/HeadcountLayoutMobile';\nimport { init, setContactFormResult } from '@web/reducers/voterRegistration';\n\n// Flows\nimport CheckRegistration from './flows/CheckRegistration';\nimport RegisterToVote from './flows/RegisterToVote';\nimport WantToHelp from './flows/WantToHelp';\nimport GeorgiaRunoffPage from './flows/GeorgiaRunoffPage';\n\nimport useIsDesktop from './hooks/useIsDesktop';\nimport useIsPartner from './hooks/useIsPartner';\n\nexport const flows = {\n CHECK_REGISTRATION: 'CHECK_REGISTRATION',\n GA_RUNOFF_PAGE: 'GA_RUNOFF_PAGE',\n REGISTER_TO_VOTE: 'REGISTER_TO_VOTE',\n WANT_TO_HELP: 'WANT_TO_HELP',\n};\n\nfunction Headcount({ activity, team }) {\n const dispatch = useDispatch();\n const [selectedFlow, setSelectedFlow] = React.useState(null);\n const isDesktop = useIsDesktop();\n const isPartner = useIsPartner(team);\n const { search } = useLocation();\n const { start } = queryString.parse(search);\n\n const prefillContactForm = React.useCallback(() => {\n // get contact from local storage and prefill forms if there was no splash screen\n if (start === '1') {\n const contact = JSON.parse(localStorage.getItem('vr_and_form_contact'));\n dispatch(setContactFormResult({ activity, contact: contact || {} }));\n } else {\n dispatch(init());\n }\n }, [activity, dispatch, start]);\n\n React.useEffect(() => {\n prefillContactForm();\n }, [prefillContactForm]);\n\n const pageProps = {\n activity,\n backToStart: () => {\n setSelectedFlow(null);\n prefillContactForm();\n },\n setRootFlow: setSelectedFlow,\n team,\n };\n\n const { utm_campaign, utm_source, utm_term, utm_content, utm_medium } = queryString.parse(\n window.location.search,\n );\n\n track('HEADCOUNT_VIEW_CHOOSE_FLOW', {\n activity_id: activity?.id,\n activity_title: activity?.title,\n activity_type: activity?.type,\n campaign_id: activity?.campaign?.id,\n campaign_name: activity?.campaign?.name,\n team_id: team?.id,\n team_name: team?.name,\n utm_campaign: utm_campaign,\n utm_content: utm_content,\n utm_medium: utm_medium,\n utm_source: utm_source,\n utm_term: utm_term,\n });\n\n function renderFlow() {\n switch (selectedFlow) {\n case flows.CHECK_REGISTRATION:\n return <CheckRegistration {...pageProps} />;\n case flows.REGISTER_TO_VOTE:\n return <RegisterToVote {...pageProps} />;\n case flows.WANT_TO_HELP:\n return <WantToHelp {...pageProps} />;\n // Special case flow page for GA Runoff, it's being redirected to from ContactForm which is part of all forms\n // so the cleanest way to add it without much duplication is to extend this root headcount page instead.\n case flows.GA_RUNOFF_PAGE:\n return <GeorgiaRunoffPage {...pageProps} />;\n default:\n return <ChooseFlow flows={flows} setSelectedFlow={setSelectedFlow} {...pageProps} />;\n }\n }\n\n if (isDesktop) {\n return (\n <HeadcountLayoutDesktop\n activity={activity}\n backgroundColor={isPartner ? team?.action_page_background_color : null}\n chooseFlow={selectedFlow === null}\n team={team}\n >\n {renderFlow()}\n </HeadcountLayoutDesktop>\n );\n }\n\n return (\n <HeadcountLayoutMobile backgroundColor={isPartner ? team?.action_page_background_color : null}>\n {renderFlow()}\n </HeadcountLayoutMobile>\n );\n}\n\nHeadcount.propTypes = {\n activity: PropTypes.object.isRequired,\n team: PropTypes.object,\n};\n\nHeadcount.defaultProps = {\n team: null,\n};\n\nexport default Headcount;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport styled from 'styled-components';\nimport theme, { media, vrDefaultColors } from '@web/styles/theme';\nimport { Button } from 'antd';\n\nimport JoinButton from '@web/components/common/JoinButton';\nimport { isDark } from '@web/utils/other';\n\nconst StyledActivityCTA = styled.div`\n color: ${({ theme }) => theme.colors.black};\n padding: 0 25px;\n width: 100%;\n`;\n\nconst ActivityCTAContainer = styled.div`\n display: flex;\n gap: 30px 60px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n\n ${media.xl} {\n flex-direction: row;\n }\n`;\n\nconst JoinButtonWrapper = styled.div`\n max-width: 367px;\n width: 100%;\n`;\n\nconst GetReferralButton = styled(Button)`\n ${media.xl} {\n align-self: start;\n }\n\n &&& {\n display: inline-flex;\n min-width: 387px;\n height: 76px;\n background-color: ${({ $bgColor }) => $bgColor};\n border-radius: 12px;\n border: none;\n\n color: ${({ $bgColor }) => (isDark($bgColor) ? theme.colors.white : theme.colors.black)};\n font-weight: 900;\n font-size: 24px;\n line-height: 29px;\n text-align: center;\n letter-spacing: 1px;\n text-transform: uppercase;\n\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n }\n`;\n\nconst ReferrerDetails = styled.div`\n max-width: 367px;\n width: 100%;\n text-align: center;\n margin-top: 18px;\n`;\n\nconst ActivityCTA = ({ handleGetStarted, handleGetReferral, referrer, activity, ...rest }) => {\n const { t } = useTranslation();\n let referrerDetails;\n\n if (referrer) {\n referrerDetails = t('campaign.activity.referrer').replace('{{fullname}}', referrer.fullname);\n }\n\n const buttonColor = useMemo(\n () => activity?.settings?.button_color ?? vrDefaultColors.buttonColor,\n [activity?.settings?.button_color],\n );\n\n const isActive = activity.aasm_state !== 'closed';\n return (\n <StyledActivityCTA {...rest}>\n <ActivityCTAContainer>\n <JoinButtonWrapper>\n <JoinButton\n style={{\n background: buttonColor,\n color: isDark(buttonColor) ? theme.colors.white : theme.colors.black,\n }}\n onClick={handleGetStarted}\n disabled={!isActive}\n >\n {isActive ? t('campaign.activity.check_registration') : 'Closed'}\n </JoinButton>\n {referrer && <ReferrerDetails>{referrerDetails}</ReferrerDetails>}\n </JoinButtonWrapper>\n {isActive && (\n <GetReferralButton\n $bgColor={buttonColor}\n data-testid=\"join-button\"\n onClick={handleGetReferral}\n type=\"primary\"\n >\n {t('campaign.activity.get_referral_link')}\n </GetReferralButton>\n )}\n </ActivityCTAContainer>\n </StyledActivityCTA>\n );\n};\n\nActivityCTA.propTypes = {\n activity: PropTypes.shape({\n aasm_state: PropTypes.string,\n settings: PropTypes.shape({\n button_color: PropTypes.string,\n }),\n }),\n handleGetReferral: PropTypes.func.isRequired,\n handleGetStarted: PropTypes.func.isRequired,\n referrer: PropTypes.object,\n};\n\nexport default ActivityCTA;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styled from 'styled-components';\nimport theme, { colors, media } from '@web/styles/theme';\nimport { isDark } from '@web/utils/other';\n\nconst ProgressBar = styled.div`\n background-color: ${props => props.backgroundColor};\n border-radius: 6px;\n height: 12px;\n width: ${props => props.value}%;\n`;\n\nconst Bold = styled.span`\n font-weight: 600;\n`;\n\nconst TextWrapper = styled.span`\n transform: translateY(-1px);\n color: ${({ $color }) => (isDark($color) ? theme.colors.white : theme.colors.black)};\n ${media.ns} {\n transform: none;\n }\n`;\n\nconst IndicatorNumber = styled.div`\n align-items: center;\n background: ${props => props.backgroundColor};\n border: 2px solid ${({ theme }) => theme.colors.white};\n border-radius: 13px;\n box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.25);\n box-sizing: border-box;\n color: ${({ theme }) => theme.colors.white};\n display: flex;\n height: 26px;\n justify-content: center;\n padding: 0 6px;\n font-size: 1rem;\n text-align: center;\n width: 60px;\n\n ${media.ns} {\n border-radius: 14px;\n height: 28px;\n font-size: 1.2rem;\n padding: 0 8px;\n }\n`;\n\nconst IndicatorLabel = styled.div`\n text-align: center;\n font-size: 0.8rem;\n text-transform: uppercase;\n color: ${({ theme }) => theme.colors.white};\n\n ${media.ns} {\n color: ${({ theme }) => theme.colors.blue};\n }\n`;\n\nconst Indicator = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n position: relative;\n top: -8px;\n left: -37px;\n z-index: ${({ indicatorPriority }) => (indicatorPriority ? 3 : 2)};\n`;\n\nconst ProgressWrapper = styled.div`\n display: inline-flex;\n position: absolute;\n left: 0;\n top: 10px;\n width: ${({ withIndicator }) => (withIndicator ? `calc(100% + 38px)` : `100%`)};\n`;\n\nexport const ProgressContainer = styled.div`\n position: relative;\n height: 46px;\n\n ${media.sm} {\n margin: 14px;\n }\n`;\n\n// Use this for a background placeholder progress line that will be displayed below other lines\nexport const ProgressPlaceholder = () => {\n return (\n <ProgressWrapper>\n <ProgressBar backgroundColor={colors.mediumLightGray} value={100} />\n </ProgressWrapper>\n );\n};\n\nexport const Progress = ({ backgroundColor, label, value, indicatorPriority }) => {\n if (!value) return null;\n\n // Caps the value for css purposes to the [0, 100] range\n const paintValue = Math.min(Math.max(value, 0), 100);\n\n return (\n <ProgressWrapper withIndicator>\n <ProgressBar backgroundColor={backgroundColor} value={paintValue} />\n <Indicator value={paintValue} indicatorPriority={indicatorPriority}>\n <IndicatorNumber backgroundColor={backgroundColor}>\n <TextWrapper $color={backgroundColor}>\n <Bold>{value}</Bold>%\n </TextWrapper>\n </IndicatorNumber>\n\n {label && <IndicatorLabel>{label}</IndicatorLabel>}\n </Indicator>\n </ProgressWrapper>\n );\n};\n\nProgress.propTypes = {\n backgroundColor: PropTypes.string.isRequired,\n indicatorPriority: PropTypes.bool,\n label: PropTypes.string,\n value: PropTypes.number.isRequired,\n};\n\nProgress.defaultProps = {\n indicatorPriority: false,\n};\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport styled from 'styled-components';\nimport { colors, media, vrDefaultColors } from '@web/styles/theme';\n\nimport {\n ProgressContainer,\n ProgressPlaceholder,\n Progress,\n} from '@web/components/RegistrationActivity/ActivityHero/components/ActivityGoals/components/Progress';\n\nimport { useTranslation } from 'react-i18next';\n\nconst GoalsPlaceholder = styled.div`\n height: 80px;\n`;\n\nconst StyledActivityGoals = styled.div`\n margin: 0 auto;\n width: 100%;\n\n ${media.ns} {\n max-width: 70vw;\n }\n ${media.xxl} {\n max-width: 1065px;\n }\n`;\n\nconst GoalLabels = styled.div`\n display: flex;\n flex-direction: row;\n margin-bottom: 20px;\n`;\n\nconst GoalsLeft = styled.div`\n width: 50%;\n`;\n\nconst GoalsRight = styled.div`\n width: 50%;\n text-align: right;\n`;\n\nconst GoalLabel = styled.div`\n color: ${({ theme }) => theme.colors.white};\n font-size: 1.1rem;\n line-height: 1.1rem;\n text-transform: uppercase;\n\n ${media.ns} {\n line-height: 1.5rem;\n font-size: 1.5rem;\n color: ${({ theme }) => theme.colors.blue};\n }\n`;\n\nconst GoalAmount = styled.div`\n color: ${({ theme }) => theme.colors.white};\n font-weight: 600;\n font-size: 1.2rem;\n\n ${media.ns} {\n color: ${({ theme }) => theme.colors.blue};\n font-size: 1.5rem;\n }\n`;\n\nconst ActivityGoals = ({ activity, goals, isMobile, ...rest }) => {\n const { t } = useTranslation();\n\n const progressColor = useMemo(\n () => activity?.settings?.progress_bar_color ?? vrDefaultColors.progressBarColor,\n [activity?.settings?.progress_bar_color],\n );\n\n if (!activity.registrations_goal_amount) {\n return <GoalsPlaceholder />;\n }\n\n const { registrations_goal_amount: goalAmount, registrations_goal_label: label } = activity;\n const { registrations_count: currentTotalAmount, referrals_count: currentReferralsAmount } =\n goals;\n\n const currentPercent = Math.ceil((currentTotalAmount * 100) / goalAmount);\n // `currentTotalAmount` as a divisor for referralsPercent would give us referals as a % of total (in a [0, 100%] range)\n // however that does not work with the way this data is presented in a chart so reverting back to % of the goal instead.\n const referralsPercent = Math.ceil((currentReferralsAmount * 100) / goalAmount);\n\n return (\n <StyledActivityGoals {...rest}>\n <GoalLabels>\n <GoalsLeft>\n <GoalLabel>{label}</GoalLabel>\n <GoalAmount>{currentTotalAmount?.toLocaleString()}</GoalAmount>\n </GoalsLeft>\n\n <GoalsRight>\n <GoalLabel>{t('common.goal')}</GoalLabel>\n <GoalAmount>{goalAmount?.toLocaleString()}</GoalAmount>\n </GoalsRight>\n </GoalLabels>\n\n <ProgressContainer>\n {/* Placeholder background progress bar simulating not reached yet portion of the goal */}\n <ProgressPlaceholder backgroundColor={progressColor} />\n {/* Total registrations */}\n <Progress backgroundColor={progressColor} value={currentPercent} indicatorPriority />\n {/* Referral registration */}\n <Progress backgroundColor={colors.blue} label=\"referrals\" value={referralsPercent} />\n </ProgressContainer>\n </StyledActivityGoals>\n );\n};\n\nActivityGoals.propTypes = {\n activity: PropTypes.object.isRequired,\n goals: PropTypes.object.isRequired,\n isMobile: PropTypes.bool,\n};\n\nActivityGoals.defaultProps = {\n isMobile: false,\n};\n\nexport default ActivityGoals;\n","import * as React from 'react';\n// import PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Link } from 'react-router-dom';\nimport Logo from '@web/components/Logo';\n\nconst Box = styled(Link)`\n background-color: rgba(255, 255, 255, 0.8);\n display: inline-flex;\n padding: 14px;\n`;\n\n// MTS - Needs to be wrapped in a div or else it expands full height\nconst BoxWrapper = styled.div``;\n\nfunction BoxLogo() {\n return (\n <BoxWrapper>\n <Box to=\"/frontline\">\n <Logo height=\"22\" />\n </Box>\n </BoxWrapper>\n );\n}\n\nBoxLogo.propTypes = {};\n\nBoxLogo.defaultProps = {};\n\nexport default BoxLogo;\n","import PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst CampaignProfileImage = styled.img`\n border: 6px solid\n ${({ $isMobile, theme }) => ($isMobile ? theme.colors.white : theme.colors.black)};\n border-radius: ${({ size }) => size / 2}px;\n height: ${({ size }) => size}px;\n object-fit: cover;\n width: ${({ size }) => size}px;\n z-index: 1;\n`;\n\nCampaignProfileImage.propTypes = {\n $isMobile: PropTypes.bool,\n size: PropTypes.number.isRequired,\n};\n\nCampaignProfileImage.defaultProps = {\n $isMobile: false,\n};\n\nexport default CampaignProfileImage;\n","import PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst MainContainer = styled.div`\n display: flex;\n padding: 40px 25px 45px;\n position: relative;\n width: 100%;\n\n background-image: linear-gradient(180deg, rgba(35, 41, 62, 0.3) 0%, rgba(35, 41, 62, 0.7) 100%),\n url(${props => props.backgroundImage});\n background-position: center center;\n background-size: cover;\n background-repeat: no-repeat;\n`;\n\nMainContainer.propTypes = {\n backgroundImage: PropTypes.string.isRequired,\n};\n\nMainContainer.defaultProps = {};\n\nexport default MainContainer;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport ActivityCTA from './ActivityCTA';\nimport ActivityGoals from './ActivityGoals';\nimport BoxLogo from './BoxLogo';\nimport CampaignProfileImage from './CampaignProfileImage';\nimport MainContainer from './MainContainer';\nimport { replaceDefaultCampaignImage } from '@web/utils/string';\n\nconst StyledActivityCTA = styled(ActivityCTA)`\n margin-bottom: 54px;\n`;\n\nconst StyledCampaignProfileImage = styled(CampaignProfileImage)`\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n`;\n\nconst StyledMainContainer = styled(MainContainer)`\n height: 448px;\n margin-bottom: 130px;\n`;\n\nconst StyledActivityGoals = styled(ActivityGoals)`\n margin-bottom: 120px;\n`;\n\nconst PROFILE_IMG_SIZE = 216;\n\nfunction DesktopHero({ activity, campaign, goals, handleGetReferral, handleGetStarted, referrer }) {\n // The + 3 at the end comes from half of the border size.\n const profileOffset = (PROFILE_IMG_SIZE / 2) * -1 + 3;\n return (\n <>\n <StyledMainContainer backgroundImage={activity.hero_img_url}>\n <BoxLogo />\n <StyledCampaignProfileImage\n alt=\"campaign-profile\"\n size={PROFILE_IMG_SIZE}\n src={replaceDefaultCampaignImage(campaign.url_profile_img)}\n style={{ bottom: profileOffset }}\n />\n </StyledMainContainer>\n <StyledActivityCTA\n activity={activity}\n campaign={campaign}\n handleGetStarted={handleGetStarted}\n handleGetReferral={handleGetReferral}\n referrer={referrer}\n />\n <StyledActivityGoals activity={activity} campaign={campaign} goals={goals} />\n </>\n );\n}\n\nDesktopHero.propTypes = {\n activity: PropTypes.shape({\n hero_img_url: PropTypes.string.isRequired,\n }).isRequired,\n campaign: PropTypes.shape({\n url_profile_img: PropTypes.string.isRequired,\n }).isRequired,\n goals: PropTypes.object.isRequired,\n handleGetReferral: PropTypes.func.isRequired,\n handleGetStarted: PropTypes.func.isRequired,\n referrer: PropTypes.object,\n};\n\nDesktopHero.defaultProps = {};\n\nexport default DesktopHero;\n","import styled from 'styled-components';\n\nexport const Title = styled.h1`\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 48px;\n line-height: 58px;\n margin-bottom: 16px;\n margin-top: 35px;\n`;\n\nexport const Description = styled.h2`\n color: ${({ theme }) => theme.colors.white};\n font-size: 24px;\n line-height: 28px;\n margin-bottom: 20px;\n`;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport ActivityGoals from './ActivityGoals';\nimport BoxLogo from './BoxLogo';\nimport CampaignProfileImage from './CampaignProfileImage';\nimport { Title } from './TextStyles';\nimport JoinButton from '@web/components/common/JoinButton';\nimport { replaceDefaultCampaignImage } from '@web/utils/string';\nimport MainContainer from './MainContainer';\nimport { ShareAltOutlined } from '@ant-design/icons';\n\nimport { useTranslation } from 'react-i18next';\n\nconst Top = styled.div`\n flex: 1;\n margin-bottom: 20px;\n`;\n\nconst StyledMainContainer = styled(MainContainer)`\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n margin-bottom: 60px;\n padding-bottom: 44px;\n`;\n\nconst GetStartedButton = styled(JoinButton)`\n font-family: ${({ theme }) => theme.fonts.blackItalic};\n &&& {\n height: 56px;\n font-size: 18px;\n max-width: initial;\n }\n`;\n\nconst ShareButton = styled(JoinButton)`\n &&& {\n align-items: center;\n background-color: ${({ theme }) => theme.colors.darkBlue};\n display: flex;\n height: 56px;\n margin: 0 0 0 16px;\n width: 56px;\n }\n`;\n\nconst StyledActivityGoals = styled(ActivityGoals)`\n margin-top: 24px;\n margin-bottom: 30px;\n`;\n\nconst ButtonRow = styled.div`\n align-items: center;\n display: flex;\n margin-top: 22px;\n`;\n\nfunction MobileHero({ activity, campaign, goals, handleGetReferral, handleGetStarted }) {\n const { t } = useTranslation();\n return (\n <>\n <StyledMainContainer backgroundImage={activity.mobile_hero_img_url}>\n <Top>\n <BoxLogo />\n </Top>\n <CampaignProfileImage\n alt=\"campaign-profile\"\n $isMobile\n size={140}\n src={replaceDefaultCampaignImage(campaign.url_profile_img)}\n />\n <Title>{activity.title}</Title>\n <StyledActivityGoals activity={activity} campaign={campaign} goals={goals} isMobile />\n <ButtonRow>\n <GetStartedButton joined={false} onClick={handleGetStarted}>\n {t('campaign.get_started')}\n </GetStartedButton>\n <ShareButton onClick={handleGetReferral}>\n <ShareAltOutlined style={{ color: '#fff' }} />\n </ShareButton>\n </ButtonRow>\n </StyledMainContainer>\n </>\n );\n}\n\nMobileHero.propTypes = {\n activity: PropTypes.shape({\n description: PropTypes.string.isRequired,\n mobile_hero_img_url: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n }).isRequired,\n campaign: PropTypes.shape({\n description: PropTypes.string,\n name: PropTypes.string.isRequired,\n url_profile_img: PropTypes.string.isRequired,\n }).isRequired,\n goals: PropTypes.object.isRequired,\n handleGetReferral: PropTypes.func.isRequired,\n handleGetStarted: PropTypes.func.isRequired,\n};\n\nMobileHero.defaultProps = {};\n\nexport default MobileHero;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport DesktopHero from './components/DesktopHero';\nimport MobileHero from './components/MobileHero';\n\nimport useMedia from '@web/hooks/useMedia';\n\nconst ActivityHero = props => {\n const isMobile = useMedia('(max-width: 600px)');\n\n if (isMobile) {\n return <MobileHero {...props} />;\n }\n\n return <DesktopHero {...props} />;\n};\n\nActivityHero.propTypes = {\n activity: PropTypes.object.isRequired,\n campaign: PropTypes.object.isRequired,\n goals: PropTypes.object.isRequired,\n handleGetReferral: PropTypes.func.isRequired,\n handleGetStarted: PropTypes.func.isRequired,\n referrer: PropTypes.object,\n};\n\nexport default ActivityHero;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { truncate } from '@web/utils/string';\n\nimport styled from 'styled-components';\nimport { media } from '@web/styles/theme';\n\nconst StyledIncentiveCard = styled.div`\n width: 100%;\n max-width: 400px;\n height: 100%;\n margin: 0 auto;\n padding: 0 20px 50px;\n\n ${media.xl} {\n margin: 0;\n max-width: none;\n }\n\n ${media.xxl} {\n padding: 60px;\n }\n`;\n\nconst IncentiveCardWrapper = styled.div`\n padding: 15px;\n display: flex;\n flex-direction: column;\n background: ${({ theme }) => theme.colors.white};\n box-shadow: 0px 14px 44px rgba(89, 99, 134, 0.11);\n border-radius: 16px;\n\n ${media.xl} {\n justify-content: center;\n flex-direction: row;\n }\n`;\n\nconst IncentiveImage = styled.div`\n border-radius: 12px;\n overflow: hidden;\n align-self: center;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n`;\n\nconst IncentiveDetails = styled.div`\n padding: 15px 0;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n ${media.xl} {\n padding: 0 50px;\n }\n`;\n\nconst IncentiveDetailsWrapper = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n`;\n\nconst IncentiveTitle = styled.div`\n font-weight: 600;\n font-size: 1.2rem;\n display: flex;\n color: ${({ theme }) => theme.colors.blackL25};\n margin-bottom: 10px;\n\n ${media.xl} {\n font-size: 1.5rem;\n }\n`;\n\nconst IncentiveDescription = styled.div`\n font-size: 1rem;\n color: ${({ theme }) => theme.colors.blackL25};\n`;\n\nconst IncentiveReadMore = styled.a`\n font-size: 1rem;\n color: ${({ theme }) => theme.colors.mediumGray};\n\n &:hover {\n color: ${({ theme }) => theme.colors.mediumGray};\n text-decoration: none;\n }\n`;\n\nconst MAX_LENGTH = 150;\n\nconst IncentiveCard = ({ incentive }) => {\n const { t } = useTranslation();\n const [seeMore, setSeeMore] = React.useState(false);\n const [description, setDescription] = React.useState(truncate(incentive.description, MAX_LENGTH));\n const needSeeMoreButton = description.length > MAX_LENGTH;\n\n const toggleSeeMore = () => {\n setDescription(seeMore ? truncate(incentive.description, MAX_LENGTH) : incentive.description);\n setSeeMore(!seeMore);\n };\n\n return (\n <StyledIncentiveCard>\n <IncentiveCardWrapper>\n <IncentiveImage>\n <img src={incentive.image_url} alt={incentive.name} />\n </IncentiveImage>\n <IncentiveDetails>\n <IncentiveDetailsWrapper>\n <IncentiveTitle>{incentive.name}</IncentiveTitle>\n <IncentiveDescription>\n {description}\n {needSeeMoreButton && (\n <IncentiveReadMore onClick={toggleSeeMore}>\n {seeMore ? t('campaign.see_less') : t('button.read_more')}\n </IncentiveReadMore>\n )}\n </IncentiveDescription>\n </IncentiveDetailsWrapper>\n </IncentiveDetails>\n </IncentiveCardWrapper>\n </StyledIncentiveCard>\n );\n};\n\nIncentiveCard.propTypes = {\n incentive: PropTypes.object.isRequired,\n};\n\nexport default IncentiveCard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styled from 'styled-components';\nimport { media } from '@web/styles/theme';\n\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport { Navigation, Pagination } from 'swiper';\nimport 'swiper/css';\nimport 'swiper/css/navigation';\n\n// This is a pretty gross fix for a super weird issue I wasn't\n// able to figure out. This should be\n// import 'swiper/css/pagination';\n// but for some reason, importing any CSS from the swiper package\n// other than \"navigation\" results in the following error:\n// TypeError: Cannot read properties of undefined (reading 'call')\n// It seems to be related to Webpack but I really don't know what's\n// happening since all exports in the Swiper package look fine.\n//\n// For now, I've imported the CSS for the pagination in the file below.\nimport './assets/pagination';\n\nimport IncentiveCard from './components/IncentiveCard';\nimport { useTranslation } from 'react-i18next';\n\nconst StyledIncentivesSection = styled.div`\n padding: 50px 0 90px;\n width: 100%;\n background-color: ${({ theme }) => theme.colors.white};\n\n .swiper-slide {\n transition: all 0.3s ease;\n align-self: center;\n }\n\n .swiper-slide-prev,\n .swiper-slide-next {\n opacity: 0.3;\n }\n\n .swiper-button-prev,\n .swiper-button-next {\n display: none;\n\n ${media.lg} {\n display: flex;\n }\n }\n\n ${media.xl} {\n padding: ${({ pageType }) => (pageType === 'team' ? 0 : '180px 0')};\n }\n`;\n\nconst Container = styled.div`\n margin: 0 auto;\n width: 100%;\n\n ${media.lg} {\n }\n\n ${media.xl} {\n width: 80%;\n }\n\n ${media.xxxl} {\n width: 60%;\n }\n`;\n\nconst SectionTitle = styled.h3`\n font-size: 3em;\n color: ${({ theme }) => theme.colors.blackL25};\n font-weight: 600;\n margin-bottom: 60px;\n padding: 0 25px;\n\n ${media.xl} {\n margin-bottom: 80px;\n }\n`;\n\nconst IncentivesSection = ({ incentives, pageType, campaign }) => {\n const { t } = useTranslation();\n\n if (!incentives || (incentives && incentives.length < 1)) {\n return null;\n }\n\n return (\n <StyledIncentivesSection pageType={pageType}>\n <Container>\n <SectionTitle>\n {[784, 3876].includes(campaign?.id)\n ? t('campaign.activity.prizes')\n : t('campaign.activity.incentives')}\n </SectionTitle>\n <Swiper\n slidesPerView={1}\n centeredSlides\n pagination={{ clickable: true }}\n modules={[Navigation, Pagination]}\n navigation\n breakpoints={{\n 600: {\n slidesPerView: 1.4,\n spaceBetween: 20,\n },\n }}\n >\n {incentives.map(incentive => (\n <SwiperSlide key={incentive.id}>\n <IncentiveCard incentive={incentive} />\n </SwiperSlide>\n ))}\n </Swiper>\n </Container>\n </StyledIncentivesSection>\n );\n};\n\nIncentivesSection.propTypes = {\n campaign: PropTypes.object,\n incentives: PropTypes.arrayOf(PropTypes.object).isRequired,\n pageType: PropTypes.string,\n};\n\nexport default IncentivesSection;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\n\nimport styled from 'styled-components';\nimport { media } from '@web/styles/theme';\n\nconst StyledTeamLeaderboardCard = styled.div`\n width: 100%;\n background: ${({ theme }) => theme.colors.white};\n padding: 15px;\n box-shadow: 0px 14px 44px rgba(89, 99, 134, 0.11);\n border-radius: 16px;\n\n display: flex;\n flex-direction: column;\n grid-template-columns: 1fr 2fr;\n\n ${media.lg} {\n padding: 15px 15px 25px;\n }\n`;\n\nconst TeamImage = styled.img`\n display: block;\n width: 100%;\n border-radius: 16px;\n`;\n\nconst TeamDetails = styled.div`\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n`;\n\nconst TeamTitle = styled.p`\n font-weight: 600;\n font-size: 1.4em;\n line-height: 160%;\n color: ${({ theme }) => theme.colors.blackL25};\n padding: 24px 9px;\n margin: 0;\n flex-grow: 1;\n display: flex;\n justify-content: center;\n align-items: top;\n\n word-wrap: break-word;\n white-space: pre-wrap;\n word-break: break-word;\n\n ${media.lg} {\n padding: 18px 9px;\n }\n`;\n\nconst TeamStats = styled.div`\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-gap: 12px;\n`;\n\nconst TeamStat = styled.div`\n padding: 18px;\n text-align: center;\n background-color: rgba(150, 209, 220, 0.1);\n border-radius: 8px;\n`;\n\nconst TeamStatNumber = styled.div`\n color: ${({ theme }) => theme.colors.darkBlue};\n font-size: 1rem;\n font-weight: 600;\n\n ${media.lg} {\n font-size: 1.1rem;\n }\n`;\n\nconst TeamStatDescription = styled.div`\n font-size: 0.8rem;\n`;\n\nconst TeamLeaderboardCard = ({ activity, img, team }) => {\n const { t } = useTranslation();\n const formatter = Intl.NumberFormat('en-US', { maximumFractionDigits: 1, notation: 'compact' });\n\n const teamUrl = useCallback(() => {\n if (!activity) {\n return null;\n }\n\n return `/campaigns/${activity.campaign.slug}/activities/${activity.slug}/teams/${team.team_slug}`;\n }, [activity, team]);\n\n return (\n <StyledTeamLeaderboardCard>\n <TeamImage src={img} alt=\"placeholder-alt\" />\n <TeamDetails>\n <TeamTitle>\n {activity && team.is_public && <Link to={teamUrl}>{team.team_name}</Link>}\n {activity && !team.is_public && team.team_name}\n {!activity && team.team_name}\n </TeamTitle>\n <TeamStats>\n <TeamStat>\n <TeamStatNumber>{formatter.format(team.team_referrals_count)}</TeamStatNumber>\n <TeamStatDescription>\n {t('campaign.leaderboard.cols.team_referrals')}\n </TeamStatDescription>\n </TeamStat>\n\n <TeamStat>\n <TeamStatNumber>{formatter.format(team.contact_referrals_count)}</TeamStatNumber>\n <TeamStatDescription>\n {t('campaign.leaderboard.cols.individual_referrals')}\n </TeamStatDescription>\n </TeamStat>\n </TeamStats>\n </TeamDetails>\n </StyledTeamLeaderboardCard>\n );\n};\n\nTeamLeaderboardCard.propTypes = {\n activity: PropTypes.object,\n img: PropTypes.string.isRequired,\n team: PropTypes.object.isRequired,\n};\n\nexport default TeamLeaderboardCard;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport ImpactiveLink from '../Link';\nimport styled from 'styled-components';\nimport { media } from '@web/styles/theme';\nimport { message, Spin } from 'antd';\nimport { LoadingOutlined } from '@ant-design/icons';\n\nimport TeamLeaderboardCard from './components/TeamLeaderboardCard';\n\nimport activityRoutes from '@web/services/api/activities';\n\nimport team1 from './components/team1.png';\nimport team2 from './components/team2.png';\nimport team3 from './components/team3.png';\n\nconst IMAGES = [team1, team2, team3];\n\nconst StyledTeamLeaderboard = styled.div`\n padding: 0;\n width: 100%;\n background-color: ${({ theme }) => theme.colors.salmon};\n transform: skewY(1.3deg);\n`;\n\nconst Container = styled.div`\n transform: skewY(-1.3deg);\n padding: 50px 25px 140px;\n margin: 0 auto;\n\n ${media.lg} {\n padding: 180px 25px;\n }\n\n ${media.xl} {\n padding: 180px 0 210px;\n width: 80%;\n }\n\n ${media.xxxl} {\n width: 60%;\n }\n`;\n\nconst StyledLink = styled(ImpactiveLink)`\n margin-top: 20px;\n color: ${({ theme }) => theme.colors.blue};\n`;\n\nconst LoadingSpin = styled.div`\n height: 120px;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-bottom: 60px;\n`;\n\nconst SectionTitle = styled.h3`\n font-size: 3em;\n color: ${({ theme }) => theme.colors.white};\n font-weight: 600;\n margin-bottom: 60px;\n`;\n\nconst ActionsList = styled.div`\n display: grid;\n grid-template-columns: 1fr;\n grid-gap: 40px;\n row-gap: 20px;\n\n ${media.lg} {\n grid-template-columns: 1fr 1fr;\n row-gap: 40px;\n }\n\n ${media.xxl} {\n grid-template-columns: 1fr 1fr 1fr;\n }\n`;\n\nconst EmptyMessage = styled.div`\n text-align: center;\n font-size: 2rem;\n color: ${({ theme }) => theme.colors.white};\n margin: 120px 0 80px;\n`;\n\nconst TeamLeaderboard = ({ activity, campaign }) => {\n const { t } = useTranslation();\n\n const [loading, setLoading] = useState(false);\n const [teams, setTeams] = useState(null);\n\n const campaignSlug = useMemo(\n () => campaign?.slug ?? activity?.campaign?.slug,\n [activity?.campaign?.slug, campaign?.slug],\n );\n\n useEffect(() => {\n setLoading(true);\n\n activityRoutes\n .getVoterRegistrationTeamLeaderboard({\n activitySlug: activity.slug,\n campaignSlug: campaignSlug,\n page: 1,\n perPage: 3,\n })\n .then(({ data }) => {\n setTeams(data.data);\n })\n .catch(error => {\n message.error(t('errors.default'));\n console.error(error);\n setTeams([]);\n })\n .then(() => {\n setLoading(false);\n });\n }, [activity.id, activity.slug, campaign, campaignSlug, t]);\n\n const leaderboardLink = useMemo(\n () => `${window.location.origin}/${campaignSlug}/${activity.slug}/leaderboard?type=team`,\n [activity.slug, campaignSlug],\n );\n\n const isEmpty = useMemo(() => !loading && teams?.length === 0, [teams?.length, loading]);\n\n if (isEmpty) {\n return null;\n }\n\n return (\n <StyledTeamLeaderboard>\n <Container>\n <SectionTitle>{t('campaign.leaderboard.top_teams')}</SectionTitle>\n\n {loading && (\n <LoadingSpin>\n <Spin indicator={<LoadingOutlined style={{ fontSize: 24 }} spin />} />\n </LoadingSpin>\n )}\n\n {isEmpty && <EmptyMessage>{t('campaign.leaderboard.empty_teams')}</EmptyMessage>}\n\n <ActionsList>\n {!loading &&\n teams &&\n teams.map((team, index) => (\n <TeamLeaderboardCard\n activity={activity}\n key={index}\n team={team}\n img={team.place <= 3 ? IMAGES[team.place - 1] : null}\n />\n ))}\n </ActionsList>\n {!isEmpty && (\n <StyledLink as=\"a\" target=\"_blank\" rel=\"noreferrer\" href={leaderboardLink}>\n {t('campaign.leaderboard.view_full_leaderboard')}\n </StyledLink>\n )}\n </Container>\n </StyledTeamLeaderboard>\n );\n};\n\nTeamLeaderboard.propTypes = {\n activity: PropTypes.object,\n campaign: PropTypes.object,\n};\n\nexport default TeamLeaderboard;\n","import * as React from 'react';\n\nfunction FirstPlaceIcon() {\n return (\n <svg\n width=\"122\"\n height=\"116\"\n viewBox=\"0 0 122 116\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M61.761 6.53498L83.4807 28.9886C83.9602 29.4843 84.5197 29.896 85.1356 30.2065L112.976 44.2393C113.413 44.4594 113.586 44.9932 113.363 45.428L98.9565 73.4069C98.6454 74.011 98.4365 74.6625 98.3381 75.3348L93.7758 106.511C93.7043 107 93.2442 107.334 92.757 107.251L62.1654 102.027C61.479 101.91 60.7778 101.91 60.0915 102.027L29.4999 107.251C29.0127 107.334 28.5526 107 28.481 106.511L23.9188 75.3348C23.8204 74.6625 23.6115 74.011 23.3004 73.4069L8.89427 45.428C8.67043 44.9933 8.84392 44.4594 9.28056 44.2393L37.1213 30.2065C37.7372 29.896 38.2967 29.4843 38.7762 28.9886L60.4959 6.53498C60.8418 6.17742 61.4151 6.17742 61.761 6.53498Z\"\n fill=\"url(#paint0_radial_428_1995)\"\n stroke=\"white\"\n stroke-width=\"5.28\"\n />\n <path\n d=\"M58.7613 76.0015H66.0477V41.1535H64.8861L49.8909 44.3215V51.0799L58.7613 48.7567V76.0015Z\"\n fill=\"white\"\n />\n <defs>\n <radialGradient\n id=\"paint0_radial_428_1995\"\n cx=\"0\"\n cy=\"0\"\n r=\"1\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"translate(38.9663 39.5269) rotate(52.1317) scale(195.151 194.515)\"\n >\n <stop stop-color=\"#FDB90A\" />\n <stop offset=\"1\" stop-color=\"white\" />\n </radialGradient>\n </defs>\n </svg>\n );\n}\n\nexport default FirstPlaceIcon;\n","import * as React from 'react';\n\nfunction SecondPlaceIcon() {\n return (\n <svg\n width=\"122\"\n height=\"116\"\n viewBox=\"0 0 122 116\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M61.7481 4.79784L88.1116 30.9464L88.1269 30.9616L114.275 57.3251C114.616 57.6682 114.616 58.2215 114.275 58.5645L88.1269 84.9281L88.1116 84.9433L61.7481 111.092C61.4051 111.432 60.8518 111.432 60.5087 111.092L34.1452 84.9433L34.13 84.9281L7.98143 58.5645C7.64116 58.2215 7.64115 57.6682 7.98143 57.3251L34.1376 30.954L60.5087 4.79783C60.8518 4.45756 61.4051 4.45756 61.7481 4.79784Z\"\n fill=\"url(#paint0_radial_428_2017)\"\n stroke=\"white\"\n stroke-width=\"5.28\"\n />\n <path\n d=\"M61.1586 72.4575L61.053 72.2463C61.4226 72.0879 62.7954 71.3487 63.4818 70.8207C69.0786 67.0191 74.9394 61.8447 74.9394 54.8223C74.9394 47.8527 69.8706 43.1535 62.2146 43.1535C54.5586 43.1535 49.5426 47.4303 49.5426 53.6079C49.5426 55.1919 49.8066 56.0367 49.965 56.4591L57.1458 55.1391C57.0402 54.8751 56.9874 54.3999 56.9874 53.9247C56.9874 51.3375 58.9938 49.6479 62.0034 49.6479C65.3298 49.6479 67.3362 51.8127 67.3362 55.0335C67.3362 62.0031 58.0434 67.1247 49.8066 73.3551V78.3711H75.6258V72.3519H63.8514C62.5314 72.3519 61.4754 72.4047 61.1586 72.4575Z\"\n fill=\"white\"\n />\n <defs>\n <radialGradient\n id=\"paint0_radial_428_2017\"\n cx=\"0\"\n cy=\"0\"\n r=\"1\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"translate(24.5954 22.2025) rotate(57.6927) scale(171.576 171.576)\"\n >\n <stop stop-color=\"#869299\" />\n <stop offset=\"1\" stop-color=\"#BED1DC\" />\n </radialGradient>\n </defs>\n </svg>\n );\n}\n\nexport default SecondPlaceIcon;\n","import * as React from 'react';\n\nfunction ThirdPlaceIcon() {\n return (\n <svg\n width=\"122\"\n height=\"116\"\n viewBox=\"0 0 122 116\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect\n x=\"10.8587\"\n y=\"6.39073\"\n width=\"103.576\"\n height=\"104.641\"\n rx=\"51.7882\"\n fill=\"url(#paint0_radial_428_2040)\"\n stroke=\"white\"\n stroke-width=\"5.28\"\n />\n <path\n d=\"M62.2714 43.2184C54.8266 43.2184 49.9162 47.1784 49.9162 52.7224C49.9162 54.2536 50.233 55.4152 50.233 55.5208L57.4666 54.3592C57.361 54.0952 57.3082 53.6728 57.3082 53.1976C57.3082 51.244 59.0506 49.7128 62.0602 49.7128C65.1226 49.7128 67.1818 51.6136 67.1818 54.3592C67.1818 56.8936 64.8586 58.3192 61.057 58.4776L58.5754 58.5304V63.916L62.2186 63.9688C66.4954 64.1272 68.3962 65.7112 68.3434 68.14C68.3434 70.7272 66.0202 72.364 62.1658 72.364C56.9386 72.364 54.193 68.14 54.193 68.14L48.649 71.7832C48.649 71.7832 51.553 78.8056 62.4298 78.8056C70.9306 78.8056 75.9466 74.74 75.9466 69.0904C75.9466 64.1272 71.6698 61.012 67.8154 61.012V60.9064C71.617 60.9064 74.7322 57.844 74.7322 53.5672C74.7322 47.4424 69.9274 43.2184 62.2714 43.2184Z\"\n fill=\"white\"\n />\n <defs>\n <radialGradient\n id=\"paint0_radial_428_2040\"\n cx=\"0\"\n cy=\"0\"\n r=\"1\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"translate(38.5368 12.2781) rotate(62.3075) scale(178.546 177.568)\"\n >\n <stop stop-color=\"#D4AB42\" />\n <stop offset=\"1\" stop-color=\"#F8E8BF\" />\n </radialGradient>\n </defs>\n </svg>\n );\n}\n\nexport default ThirdPlaceIcon;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport styled from 'styled-components';\nimport { media } from '@web/styles/theme';\n\nimport FirstPlaceIcon from './FIrstPlaceIcon';\nimport SecondPlaceIcon from './SecondPlaceIcon';\nimport ThirdPlaceIcon from './ThirdPlaceIcon';\n\nconst StyledLeaderboardCard = styled.div`\n width: 100%;\n background: ${({ theme }) => theme.colors.white};\n padding: 12px;\n box-shadow: 0px 14px 44px rgba(89, 99, 134, 0.11);\n border-radius: 16px;\n\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n`;\n\nconst TeamDetails = styled.div`\n padding-left: 15px;\n display: grid;\n grid-template-columns: 1rf;\n grid-template-rows: 0.5fr 0.5fr 1fr;\n\n ${media.lg} {\n padding: 0;\n }\n`;\n\nconst TeamTitle = styled.p`\n font-weight: 600;\n font-size: 1.2em;\n color: ${({ theme }) => theme.colors.blackL25};\n margin: 6px 6px 12px;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 24px 0;\n\n word-wrap: break-word;\n white-space: pre-wrap;\n word-break: break-word;\n\n ${media.lg} {\n margin: 14px 0px 20px;\n text-align: center;\n padding: 0;\n }\n`;\n\nconst TeamName = styled.p`\n font-weight: 600;\n font-size: 1em;\n color: ${({ theme }) => theme.colors.blackL25};\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5px 0;\n\n word-wrap: break-word;\n white-space: pre-wrap;\n word-break: break-word;\n\n ${media.lg} {\n text-align: center;\n padding: 0;\n }\n`;\n\nconst TeamStats = styled.div`\n display: flex;\n flex-direction: row;\n grid-gap: 10px;\n`;\n\nconst TeamStat = styled.div`\n background-color: rgba(150, 209, 220, 0.1);\n border-radius: 8px;\n padding: 10px 5px;\n width: 100%;\n max-height: 70px;\n\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n align-self: flex-end;\n\n ${media.lg} {\n padding: 18px 5px;\n }\n`;\n\nconst TeamStatNumber = styled.div`\n font-size: 1rem;\n color: #23293e;\n font-weight: 600;\n\n ${media.lg} {\n font-size: 1.1rem;\n }\n`;\n\nconst TeamStatDescription = styled.div`\n font-size: 0.8rem;\n`;\n\nconst TopWrapper = styled.div`\n width: 120px;\n height: 120px;\n > svg {\n width: 100%;\n height: 100%;\n }\n\n ${media.lg} {\n width: 80px;\n height: 80px;\n }\n`;\n\nconst icons = {\n 1: <FirstPlaceIcon />,\n 2: <SecondPlaceIcon />,\n 3: <ThirdPlaceIcon />,\n};\n\nconst LeaderboardCard = ({ contactMetric }) => {\n const { t } = useTranslation();\n const formatter = Intl.NumberFormat('en-US', { maximumFractionDigits: 1, notation: 'compact' });\n\n const icon = useMemo(() => icons[contactMetric.place], [contactMetric]);\n\n return (\n <StyledLeaderboardCard>\n {icon && <TopWrapper>{icon}</TopWrapper>}\n <TeamDetails>\n <TeamTitle>\n {contactMetric.referrer_first_name} {contactMetric.referrer_last_name?.[0]}.\n </TeamTitle>\n <TeamName>{contactMetric.team_name ?? ''}</TeamName>\n <TeamStats>\n <TeamStat>\n <TeamStatNumber>{formatter.format(contactMetric.referrals_count)}</TeamStatNumber>\n <TeamStatDescription>{t('campaign.leaderboard.cols.referrals')}</TeamStatDescription>\n </TeamStat>\n </TeamStats>\n </TeamDetails>\n </StyledLeaderboardCard>\n );\n};\n\nLeaderboardCard.propTypes = {\n contactMetric: PropTypes.object,\n};\n\nexport default LeaderboardCard;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport ImpactiveLink from '../Link';\nimport styled from 'styled-components';\nimport { media } from '@web/styles/theme';\nimport { message, Spin } from 'antd';\nimport { LoadingOutlined } from '@ant-design/icons';\n\nimport VolunteerLeaderboardCard from './components/VolunteerLeaderboardCard';\n\nimport activityRoutes from '@web/services/api/activities';\n\nconst StyledVolunteersLeaderboard = styled.div`\n padding: 0;\n width: 100%;\n background-color: ${({ theme }) => theme.colors.white};\n`;\n\nconst Container = styled.div`\n padding: 50px 25px 140px;\n margin: 0 auto;\n\n ${media.lg} {\n padding: 180px 25px;\n }\n\n ${media.xl} {\n padding: 180px 0 210px;\n width: 80%;\n }\n\n ${media.xxxl} {\n width: 60%;\n }\n`;\n\nconst LoadingSpin = styled.div`\n height: 120px;\n display: flex;\n justify-content: center;\n align-items: center;\n margin-bottom: 60px;\n`;\n\nconst SectionTitle = styled.h3`\n font-size: 3em;\n color: ${({ theme }) => theme.colors.blackL25};\n font-weight: 600;\n margin-bottom: 60px;\n`;\n\nconst VolunteersList = styled.div`\n display: grid;\n grid-template-columns: 1fr;\n grid-gap: 20px;\n row-gap: 20px;\n\n ${media.lg} {\n grid-template-columns: 1fr 1fr 1fr;\n }\n\n ${media.xxl} {\n grid-template-columns: 1fr 1fr 1fr 1fr 1fr;\n }\n`;\n\nconst EmptyMessage = styled.div`\n text-align: center;\n font-size: 2rem;\n color: ${({ theme }) => theme.colors.black};\n margin: 120px 0 80px;\n`;\n\nconst VolunteersLeaderboard = ({ campaign, activity, team }) => {\n const { t } = useTranslation();\n\n const [loading, setLoading] = useState(false);\n const [contactMetrics, setContactMetrics] = useState(null);\n\n const campaignSlug = useMemo(\n () => campaign?.slug ?? activity?.campaign?.slug,\n [activity?.campaign?.slug, campaign?.slug],\n );\n\n useEffect(() => {\n setLoading(true);\n\n activityRoutes\n .getVoterRegistrationContactLeaderboard({\n activitySlug: activity.slug,\n campaignSlug: campaignSlug,\n page: 1,\n perPage: 5,\n })\n .then(({ data }) => {\n setContactMetrics(data.data.filter(item => item.referrals_count !== 0));\n })\n .catch(error => {\n message.error(t('errors.default'));\n setContactMetrics([]);\n })\n .then(() => {\n setLoading(false);\n });\n }, [activity, campaign, campaignSlug, t, team]);\n\n const leaderboardLink = useMemo(\n () => `${window.location.origin}/${campaignSlug}/${activity.slug}/leaderboard?type=individual`,\n [activity.slug, campaignSlug],\n );\n\n const isEmpty = useMemo(\n () => !loading && contactMetrics?.length === 0,\n [contactMetrics, loading],\n );\n\n if (isEmpty) {\n return null;\n }\n\n return (\n <StyledVolunteersLeaderboard>\n <Container>\n <SectionTitle>{t('campaign.leaderboard.top_volunteers')}</SectionTitle>\n {loading && (\n <LoadingSpin>\n <Spin indicator={<LoadingOutlined style={{ fontSize: 24 }} spin />} />\n </LoadingSpin>\n )}\n\n {isEmpty && <EmptyMessage>{t('campaign.leaderboard.empty_volunteers')}</EmptyMessage>}\n\n <VolunteersList>\n {!loading &&\n contactMetrics &&\n contactMetrics.map((contactMetric, index) => (\n <VolunteerLeaderboardCard contactMetric={contactMetric} key={index} />\n ))}\n </VolunteersList>\n {!isEmpty && (\n <ImpactiveLink\n style={{ marginTop: 20 }}\n href={leaderboardLink}\n as=\"a\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n {t('campaign.leaderboard.view_full_leaderboard')}\n </ImpactiveLink>\n )}\n </Container>\n </StyledVolunteersLeaderboard>\n );\n};\n\nVolunteersLeaderboard.propTypes = {\n activity: PropTypes.object,\n campaign: PropTypes.object,\n team: PropTypes.object,\n};\n\nexport default VolunteersLeaderboard;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useLocation } from 'react-router-dom';\nimport queryString from 'query-string';\nimport axios from 'axios';\nimport { useDispatch } from 'react-redux';\n\nimport { init, setContactFormResult } from '@web/reducers/voterRegistration';\nimport AboutUsSection from '@web/components/common/AboutUsSection';\nimport ActivityHero from './ActivityHero';\nimport IncentivesSection from '@web/components/common/IncentivesSection';\nimport { LoadingOutlined } from '@ant-design/icons';\nimport { Spin } from 'antd';\nimport TeamLeaderboardSection from '@web/components/common/TeamLeaderboardSection';\nimport VolunteerLeaderboardSection from '@web/components/common/VolunteerLeaderboardSection';\nimport VoterRegistration from '@web/components/VoterRegistration';\n\nimport { activities } from '../../services/api';\nimport { track, trackPageViewWithDynamicIDs } from '../../services/analytics';\n\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\n\nconst StyledRegistrationActivity = styled.div`\n height: 100%;\n width: 100%;\n`;\n\nconst RegistrationActivity = ({ activity }) => {\n const { t } = useTranslation();\n const { activitySlug, campaignSlug } = useParams();\n const { search } = useLocation();\n const dispatch = useDispatch();\n const { referral_hash, start } = queryString.parse(search);\n const [goalsLoading, setGoalsLoading] = useState(false);\n const [referrerLoading, setReferrerLoading] = useState(false);\n const [goals, setGoals] = useState({});\n const [referrer, setReferrer] = useState(null);\n const [showReferralModal, setShowReferralModal] = useState(false);\n const [showVoterModal, setShowVoterModal] = useState(start === '1');\n\n useEffect(() => {\n // get contact from local storage and prefill forms\n const contact = start !== '1' ? {} : JSON.parse(localStorage.getItem('vr_and_form_contact'));\n dispatch(setContactFormResult({ activity, contact: contact || {} }));\n }, [activity, dispatch, start]);\n\n useEffect(() => {\n track('VIEW_CHECK_REGISTRATION');\n setGoalsLoading(true);\n\n activities\n .getActivityGoals({ activitySlug, campaignSlug })\n .then(({ data }) => {\n setGoals(data);\n })\n .finally(() => setGoalsLoading(false));\n }, [activitySlug, campaignSlug]);\n\n useEffect(() => {\n if (referral_hash) {\n setReferrerLoading(true);\n\n axios\n .get(\n `/api/v2/client/voter_registrations/campaigns/${campaignSlug}/referrer/${referral_hash}`,\n )\n .then(({ data }) => {\n setReferrer(data);\n })\n .finally(() => setReferrerLoading(false));\n }\n }, [activitySlug, campaignSlug, referral_hash]);\n\n useEffect(() => {\n trackPageViewWithDynamicIDs({\n fbPixelId: activity?.settings?.pixel_fb_id,\n gaTrackingId: activity?.settings?.pixel_ga_id,\n gtmPixelId: activity?.settings?.pixel_gtm_id,\n snapchatPixelId: activity?.settings?.pixel_sc_id,\n });\n }, [\n activity?.settings?.pixel_fb_id,\n activity?.settings?.pixel_ga_id,\n activity?.settings?.pixel_sc_id,\n activity?.settings?.pixel_gtm_id,\n ]);\n\n if (goalsLoading || referrerLoading) {\n return (\n <div className=\"flex-row justify-content-center mt-4\">\n <Spin indicator={<LoadingOutlined style={{ fontSize: 24 }} spin />} />\n </div>\n );\n }\n\n function openVoterModal() {\n setShowVoterModal(true);\n }\n\n function openReferralModal() {\n setShowReferralModal(true);\n }\n\n function closeModal() {\n setShowReferralModal(false);\n setShowVoterModal(false);\n if (start !== '1') {\n dispatch(init());\n }\n }\n\n const mediaUrl = activity.public_join_video_url || activity.media_url;\n const mediaContentType = activity.public_join_video_url ? 'video' : 'image';\n\n return (\n <StyledRegistrationActivity>\n <VoterRegistration\n activity={activity}\n closeModal={closeModal}\n modalVoterOpen={showVoterModal}\n modalReferralOpen={showReferralModal}\n openVoterModal={openVoterModal}\n openReferralModal={openReferralModal}\n />\n\n <ActivityHero\n activity={activity}\n campaign={activity.campaign}\n goals={goals}\n handleGetStarted={openVoterModal}\n handleGetReferral={openReferralModal}\n referrer={referrer}\n />\n\n <AboutUsSection\n background\n description={activity.description}\n mediaContentType={mediaContentType}\n mediaUrl={mediaUrl}\n title={t('campaign.activity.about')}\n />\n\n <IncentivesSection\n incentives={activity.activity_incentives_attributes}\n campaign={activity?.campaign}\n />\n\n {![784, 3876].includes(activity?.campaign?.id) && (\n <TeamLeaderboardSection activity={activity} />\n )}\n\n {![784, 3876].includes(activity?.campaign?.id) && (\n <VolunteerLeaderboardSection activity={activity} />\n )}\n </StyledRegistrationActivity>\n );\n};\n\nRegistrationActivity.propTypes = {\n activity: PropTypes.object.isRequired,\n};\n\nexport default RegistrationActivity;\n","import React from 'react';\n\nimport * as yup from 'yup';\nimport { HomeFilled, MailFilled, PhoneFilled } from '@ant-design/icons';\nimport i18n from '@web/components/i18n';\nimport Icon from '@web/components/common/Icon';\nimport dayjs from 'dayjs';\n\nconst { t } = i18n;\n\nconst PHONE_REGEX = /^(\\1)?[0-9]{11}$/;\nconst ZIP_REGEX = /^\\d{5}$/;\n\nexport const availableQuestions = [\n 'first_name',\n 'last_name',\n 'email',\n 'zip_code',\n 'phone',\n 'date_of_birth',\n 'address',\n];\n\nexport const getFont = font => (font === 'default' ? 'unset' : font);\n\nexport const getInitialSurveyValues = (\n formAttributes,\n activityQuestions,\n isOptInRequired,\n autofillForm,\n) => {\n // Base form questions from the availableQuestions array above\n const questionEntries = availableQuestions\n .filter(question => !!formAttributes?.[question])\n // prefill data from local storage if available\n .map(q => formatContactFields(q, autofillForm))\n .concat([['opt_in', isOptInRequired]]);\n\n // Additional `question_answers` field for activity questions\n const questionAnswersField = activityQuestions.map(question => {\n return {\n activity_question_id: question.id,\n value: '',\n };\n });\n\n return Object.fromEntries([...questionEntries, ['question_answers', questionAnswersField]]);\n};\n\nconst formatContactFields = (question, autofillForm) => {\n const contact = autofillForm ? JSON.parse(localStorage.getItem('vr_and_form_contact')) : {};\n\n if (contact?.[question]) {\n if (question === 'phone') {\n return [question, contact?.[question].replace(/\\D/g, '')];\n }\n\n return [question, contact?.[question]];\n }\n\n return [question, question === 'date_of_birth' ? null : ''];\n};\n\nexport const getValidationSchema = (formAttributes, activityQuestions) => {\n const questionEntries = availableQuestions\n .filter(question => !!formAttributes?.[question])\n .map(question => [question, requiredFieldsProps?.[question].validation]);\n\n // Not all activity questions are required, so we need to dynamically build the validation schema for each question\n const questionAnswersValidation = yup.array().of(\n yup.lazy(value => {\n const question = activityQuestions.find(\n question => question.id === value?.activity_question_id,\n );\n\n // We shouldn't be running into this, but if we do it most likely means there\n // is a gap in the question positions that should be sequential.\n if (!question) {\n throw new Error('Question not found.');\n }\n\n return yup.object().shape({\n activity_question_id: yup.number().required(),\n value: question.required\n ? yup.string().required('âš This is a required question!')\n : yup.string(),\n });\n }),\n );\n\n return yup\n .object()\n .shape(\n Object.fromEntries([...questionEntries, ['question_answers', questionAnswersValidation]]),\n );\n};\n\nexport const requiredFieldsProps = {\n address: {\n label: t('idvoters.labels.address'),\n placeholder: t('idvoters.placeholders.address1'),\n prefix: <HomeFilled />,\n validation: yup.string().nullable().required('Address is required.'),\n },\n date_of_birth: {\n label: t('idvoters.labels.date_of_birth'),\n placeholder: t('idvoters.labels.date_of_birth'),\n prefix: <HomeFilled />,\n validation: yup\n .date()\n .typeError(i18n.t('idvoters.validation.valid_dob'))\n .nullable()\n .required('Date of Birth is required.')\n .min(dayjs().subtract(120, 'year'), i18n.t('idvoters.validation.valid_dob'))\n .max(dayjs().subtract(15, 'year'), i18n.t('idvoters.validation.max_date', { age: 16 })),\n },\n email: {\n label: t('placeholders.email'),\n placeholder: t('placeholders.default_email'),\n prefix: <MailFilled />,\n validation: yup\n .string()\n .email(t('check_registration.invalid_email'))\n .nullable()\n .required(t('idvoters.validation.emailRequired')),\n },\n first_name: {\n label: t('placeholders.first_name'),\n placeholder: t('idvoters.labels.firstname'),\n prefix: <Icon name=\"UserFilled\" />,\n validation: yup.string().nullable().required(t('idvoters.validation.firstname')),\n },\n last_name: {\n label: t('placeholders.last_name'),\n placeholder: t('placeholders.last_name'),\n prefix: <Icon name=\"UserFilled\" />,\n validation: yup.string().nullable().required(t('idvoters.validation.lastname')),\n },\n phone: {\n label: t('placeholders.phone_number'),\n placeholder: '(555) 345-6789',\n prefix: <PhoneFilled />,\n validation: yup\n .string()\n .matches(PHONE_REGEX, 'Phone number is not valid.')\n .required(t('idvoters.validation.phoneRequired')),\n },\n unit_number: {\n label: t('idvoters.labels.address2'),\n placeholder: t('idvoters.placeholders.address2'),\n prefix: <HomeFilled />,\n validation: yup.string().nullable(),\n },\n zip_code: {\n label: t('idvoters.labels.zip'),\n placeholder: t('idvoters.labels.zip'),\n prefix: <HomeFilled />,\n validation: yup\n .string()\n .matches(ZIP_REGEX, 'Zip code is not valid.')\n .nullable()\n .required('Zip code is required.'),\n },\n};\n","import theme from '@web/styles/theme';\nimport { ErrorMessage } from 'formik';\nimport { any, bool, func, string } from 'prop-types';\nimport React, { useCallback, useMemo } from 'react';\nimport styled, { css } from 'styled-components';\nimport Autocomplete from 'react-google-autocomplete';\nimport parseAddress from '@web/utils/parseAddress';\nimport { HomeFilled } from '@ant-design/icons';\n\nconst Wrapper = styled.div``;\n\nconst StyledAutocomplete = styled(Autocomplete)`\n &&& {\n border: 1px solid #d9d9d9;\n border-radius: 6px;\n padding: ${({ $hidePrefix }) => ($hidePrefix ? '10px 14px 12px' : '10px 14px 12px 42px')};\n width: 100%;\n height: 42px;\n\n &:hover {\n border: 1px solid #40a9ff;\n }\n\n &:focus-visible {\n outline: 0;\n border-right-width: 1px !important;\n border: 1px solid #40a9ff;\n box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);\n }\n\n svg {\n color: ${({ $outlineColor }) => $outlineColor ?? theme.colors.gray};\n }\n\n font-size: 14px;\n\n border: 1px solid ${({ $outlineColor }) => $outlineColor ?? theme.colors.gray};\n\n background-color: ${({ $backgroundColor }) => $backgroundColor ?? theme.colors.alabaster};\n color: ${({ $fontColor }) => $fontColor ?? theme.colors.black};\n\n ::placeholder {\n color: ${({ $outlineColor }) => $outlineColor ?? theme.colors.blackL72};\n }\n\n -webkit-background-clip: text !important;\n background-clip: text !important;\n -webkit-autofill:first-line {\n color: ${({ $fontColor }) => $fontColor ?? theme.colors.black};\n }\n\n box-shadow: 0 0 0 30px ${({ $backgroundColor }) => $backgroundColor ?? theme.colors.alabaster}\n inset !important;\n -webkit-box-shadow: 0 0 0 30px\n ${({ $backgroundColor }) => $backgroundColor ?? theme.colors.alabaster} inset !important;\n }\n`;\n\nexport const Label = styled.div`\n margin-bottom: 5px;\n text-transform: uppercase;\n font-size: 0.875rem;\n ${({ theme }) => css`\n color: ${({ $labelFontColor }) => $labelFontColor ?? theme.colors.black};\n font-family: ${theme.fonts.bold};\n `}\n`;\n\nexport const StyledErrorMessage = styled(ErrorMessage).attrs({ component: 'div' })`\n color: #ea5156;\n font-size: 12px;\n margin-top: 4px;\n`;\n\nexport const Relative = styled.div`\n position: relative;\n\n svg path {\n fill: ${({ $iconColor }) => $iconColor ?? theme.colors.gray};\n }\n`;\n\nexport const IconWrapper = styled.div`\n display: inline-flex;\n left: 16px;\n position: absolute;\n top: 50%;\n transform: translateY(-55%);\n`;\n\nconst AddressFormField = ({\n name,\n value,\n label,\n placeholder,\n inputRef,\n onChange,\n hidePrefix,\n ...rest\n}) => {\n const selectPlace = useCallback(\n place => {\n const { street_name, street_number, ...parsedAddress } = parseAddress(place);\n onChange(parsedAddress);\n },\n [onChange],\n );\n\n const handleValueChange = useCallback(\n event => {\n if (event.target.value === '') {\n onChange({\n address: '',\n city: '',\n county_name: '',\n state_abbrev: '',\n zip_code: '',\n });\n }\n },\n [onChange],\n );\n\n const options = useMemo(\n () => ({\n componentRestrictions: { country: 'us' },\n types: ['address'],\n }),\n [],\n );\n\n return (\n <Wrapper>\n <Label $labelFontColor={rest.labelFontColor}>{label}</Label>\n <Relative $iconColor={rest.outlineColor}>\n <StyledAutocomplete\n $hidePrefix={hidePrefix}\n autoComplete=\"off\"\n apiKey={process.env.REACT_APP_GOOGLE_MAPS_API}\n defaultValue=\"\"\n id={name}\n name={name}\n onChange={handleValueChange}\n $fontColor={rest.fontColor}\n $backgroundColor={rest.backgroundColor}\n $outlineColor={rest.outlineColor}\n onPlaceSelected={selectPlace}\n options={options}\n placeholder={placeholder || placeholder === '' ? placeholder : label}\n type=\"search\"\n ref={inputRef}\n {...rest}\n />\n\n {!hidePrefix && (\n <IconWrapper>\n <HomeFilled />\n </IconWrapper>\n )}\n </Relative>\n <StyledErrorMessage data-testid={`${name}-error`} name={name} />\n </Wrapper>\n );\n};\n\nAddressFormField.propTypes = {\n backgroundColor: string,\n fontColor: string,\n hidePrefix: bool,\n inputRef: any,\n label: string,\n labelFontColor: string,\n name: string.isRequired,\n onChange: func,\n outlineColor: string,\n placeholder: string,\n value: string,\n};\n\nexport default AddressFormField;\n","import React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport 'react-phone-input-2/lib/style.css';\n\nimport FormInput from '@web/components/common/shared/FormInput';\nimport RefreshFormButton from '@web/components/common/RefreshFormIcon';\nimport FormDatePicker from '@web/components/common/shared/FormDatePicker';\nimport PhoneNumberInput from '@web/components/common/shared/PhoneNumberInput';\nimport AddressFormField from '@web/components/common/shared/AddressFormField';\n\nimport { availableQuestions, requiredFieldsProps } from './utils';\n\nimport styled from 'styled-components';\n\nconst AddressesWrapper = styled.div`\n display: flex;\n gap: 16px;\n > div {\n width: 100%;\n }\n`;\n\nconst VolunteerInfoFields = ({ activity, initialValues, values, handleChange, setFieldValue }) => {\n const addressRef = React.useRef(null);\n const fields = useMemo(() => {\n const questionKeys = Object.keys(initialValues);\n return availableQuestions.filter(question => questionKeys.includes(question));\n }, [initialValues]);\n\n // We have only one \"address\" field, but when we set it from autocomplete, we also set \"city\" and \"state_abbrev\", so we have to cleanup these fields as well\n const fieldsToClear = useMemo(() => [...fields, 'city', 'state_abbrev', 'unit_number'], [fields]);\n\n const clearVolunteerInfo = useCallback(() => {\n fieldsToClear.forEach(field => setFieldValue(field, ''));\n if (addressRef.current) {\n addressRef.current.value = '';\n }\n }, [fieldsToClear, setFieldValue]);\n\n const setAddress = useCallback(\n address => {\n setFieldValue('address', address.address);\n setFieldValue('zip_code', address.zip_code);\n setFieldValue('city', address.city);\n setFieldValue('state_abbrev', address.state_abbrev);\n },\n [setFieldValue],\n );\n\n const {\n form_field_background_color,\n form_field_font_color,\n form_field_outline_color,\n main_font_color,\n } = activity.settings ?? {};\n\n return (\n <>\n <RefreshFormButton color={main_font_color} clearData={clearVolunteerInfo} />\n {fields.map((field, index) => {\n if (field === 'date_of_birth') {\n return (\n <FormDatePicker\n key={field}\n prefix={requiredFieldsProps[field]?.prefix}\n label={requiredFieldsProps[field]?.label}\n placeholder={requiredFieldsProps[field]?.placeholder}\n name={field}\n value={values[field]}\n onChange={e => setFieldValue(field, e.target.value)}\n fontColor={form_field_font_color}\n backgroundColor={form_field_background_color}\n outlineColor={form_field_outline_color}\n labelFontColor={main_font_color}\n />\n );\n }\n\n if (field === 'address') {\n const address2Field = 'unit_number';\n return (\n <>\n {/* We need this to change grid to keep 2 address fields in one row */}\n {index % 2 !== 0 && <div></div>}\n <AddressesWrapper>\n <AddressFormField\n placeholder={requiredFieldsProps[field]?.placeholder}\n label={requiredFieldsProps[field]?.label.toLocaleUpperCase()}\n name={field}\n inputRef={addressRef}\n key={field}\n onChange={setAddress}\n fontColor={form_field_font_color}\n backgroundColor={form_field_background_color}\n outlineColor={form_field_outline_color}\n labelFontColor={main_font_color}\n />\n <FormInput\n key={address2Field}\n prefix={requiredFieldsProps[address2Field]?.prefix}\n label={requiredFieldsProps[address2Field]?.label}\n placeholder={requiredFieldsProps[address2Field]?.placeholder}\n name={address2Field}\n value={values[address2Field]}\n onChange={handleChange}\n fontColor={form_field_font_color}\n backgroundColor={form_field_background_color}\n outlineColor={form_field_outline_color}\n labelFontColor={main_font_color}\n />\n </AddressesWrapper>\n </>\n );\n }\n\n if (field === 'phone') {\n return (\n <PhoneNumberInput\n key={field}\n name={field}\n label={requiredFieldsProps[field]?.label}\n placeholder={requiredFieldsProps[field]?.placeholder}\n onChange={e => setFieldValue(field, e)}\n value={values[field]}\n isSurvey\n prefixIcon={requiredFieldsProps[field]?.prefix}\n fontColor={form_field_font_color}\n backgroundColor={form_field_background_color}\n outlineColor={form_field_outline_color}\n labelFontColor={main_font_color}\n />\n );\n }\n\n return (\n <FormInput\n key={field}\n prefix={requiredFieldsProps[field]?.prefix}\n label={requiredFieldsProps[field]?.label}\n placeholder={requiredFieldsProps[field]?.placeholder}\n name={field}\n value={values[field]}\n onChange={handleChange}\n fontColor={form_field_font_color}\n backgroundColor={form_field_background_color}\n outlineColor={form_field_outline_color}\n labelFontColor={main_font_color}\n />\n );\n })}\n </>\n );\n};\n\nVolunteerInfoFields.propTypes = {\n activity: PropTypes.shape({\n settings: PropTypes.shape({\n form_field_background_color: PropTypes.string,\n form_field_font_color: PropTypes.string,\n form_field_outline_color: PropTypes.string,\n main_font_color: PropTypes.string,\n secondary_color: PropTypes.string,\n }),\n }),\n handleChange: PropTypes.func.isRequired,\n initialValues: PropTypes.object.isRequired,\n setFieldValue: PropTypes.func.isRequired,\n values: PropTypes.object.isRequired,\n};\n\nexport default VolunteerInfoFields;\n","import theme from '@web/styles/theme';\nimport styled from 'styled-components';\n\nexport const Card = styled.div`\n background-color: ${theme.colors.white};\n border-radius: 5px;\n padding: 30px;\n width: 100%;\n box-shadow: 0 1px 15px 1px rgb(69 65 78 / 8%);\n`;\n","import styled from 'styled-components';\nimport { Card } from '@web/components/common/shared/Card';\nimport theme from '@web/styles/theme';\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: column;\n width: 740px;\n margin: 0 auto;\n\n @media screen and (max-width: 768px) {\n width: 100%;\n }\n`;\n\nexport const HeaderImage = styled.img`\n object-fit: contain;\n height: 240px;\n border-radius: 5px;\n margin: 16px 0;\n\n @media screen and (max-width: 768px) {\n margin: 16px;\n height: 120px;\n }\n`;\n\nexport const Header = styled.h1`\n font-size: 24px;\n font-weight: 600;\n letter-spacing: 0px;\n\n color: ${({ $color }) => $color ?? theme.formDefaultColors.fontColor};\n\n margin: 0;\n padding: 0;\n`;\n\nexport const SubText = styled.p`\n font-size: 16px;\n font-weight: 400;\n line-height: 22px;\n letter-spacing: 0em;\n white-space: pre-line;\n\n color: ${({ $color }) => $color ?? theme.formDefaultColors.fontColor};\n margin: 18px 0 0;\n\n padding: 0;\n`;\n\nexport const StyledCard = styled(Card)`\n margin: 16px 0;\n\n background: ${({ $background }) => $background ?? theme.formDefaultColors.sectionBackgroundColor};\n\n @media screen and (max-width: 768px) {\n margin: 16px;\n width: auto;\n }\n`;\n\nexport const PaddedFlexCard = styled(StyledCard)`\n position: relative;\n display: flex;\n justify-content: space-between;\n gap: 16px;\n flex-wrap: wrap;\n\n > div {\n flex: 1 1 calc(50% - 16px);\n min-width: 210px;\n }\n`;\n\nexport const Footer = styled.div`\n position: sticky;\n bottom: 0;\n margin-top: auto;\n\n display: flex;\n justify-content: flex-end;\n align-items: center;\n\n width: 100%;\n height: 80px;\n @media screen and (max-width: 768px) {\n padding: 16px;\n }\n\n background: ${({ $bgColor }) => $bgColor ?? theme.formDefaultColors.pageBackgroundColor};\n z-index: 2;\n`;\n","import { Radio, Space } from 'antd';\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { StyledErrorMessage } from '@web/components/common/shared/FormInput';\nimport theme from '@web/styles/theme';\n\nconst StyledRadio = styled(Radio)`\n &&& {\n white-space: normal;\n color: ${({ $color }) => $color ?? theme.formDefaultColors.fontColor};\n .ant-radio-inner {\n border-color: ${({ $outlineColor }) =>\n $outlineColor ?? theme.formDefaultColors.fieldOutlineColor};\n background: transparent;\n :after {\n background-color: ${({ $outlineColor }) =>\n $outlineColor ?? theme.formDefaultColors.fieldOutlineColor};\n }\n }\n .ant-radio-checked .ant-radio-inner {\n border-color: ${({ $outlineColor }) =>\n $outlineColor ?? theme.formDefaultColors.fieldOutlineColor} !important;\n background: ${({ $backgroundColor }) =>\n $backgroundColor ?? theme.formDefaultColors.fieldBackgroundColor} !important;\n }\n }\n`;\n\nexport function RadioGroupFormPartial({ activity, handleChange, name, options }) {\n const answers = useMemo(\n () => Object.entries(options).sort((a, b) => a[1].position - b[1].position),\n [options],\n );\n\n const { form_field_outline_color, form_field_background_color, main_font_color } =\n activity.settings ?? {};\n\n return (\n <div>\n <Radio.Group name={name} onChange={handleChange}>\n <Space direction=\"vertical\">\n {answers.map(([key, value]) => (\n <StyledRadio\n $outlineColor={form_field_outline_color}\n $backgroundColor={form_field_background_color}\n $color={main_font_color}\n key={key}\n value={key}\n >\n {value.value}\n </StyledRadio>\n ))}\n </Space>\n </Radio.Group>\n <StyledErrorMessage name={name} />\n </div>\n );\n}\n\nRadioGroupFormPartial.propTypes = {\n activity: PropTypes.shape({\n settings: PropTypes.shape({\n form_field_background_color: PropTypes.string,\n form_field_outline_color: PropTypes.string,\n main_font_color: PropTypes.string,\n }),\n }),\n handleChange: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n options: PropTypes.object,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { Input } from 'antd';\nimport { StyledErrorMessage } from '@web/components/common/shared/FormInput';\nimport theme from '@web/styles/theme';\n\nconst UnderlinedInput = styled(Input)`\n &&& {\n border: 1px solid\n ${({ $outlineColor }) => $outlineColor ?? theme.formDefaultColors.fieldOutlineColor};\n border-radius: 6px;\n color: ${({ $color }) => $color ?? theme.formDefaultColors.fieldFontColor};\n background: ${({ $backgroundColor }) =>\n $backgroundColor ?? theme.formDefaultColors.fieldBackgroundColor};\n height: 40px;\n\n box-shadow: 0 0 0 30px\n ${({ $backgroundColor }) => $backgroundColor ?? theme.formDefaultColors.fieldBackgroundColor}\n inset !important;\n -webkit-box-shadow: 0 0 0 30px\n ${({ $backgroundColor }) => $backgroundColor ?? theme.formDefaultColors.fieldBackgroundColor}\n inset !important;\n\n -webkit-background-clip: text !important;\n background-clip: text !important;\n -webkit-autofill:first-line {\n color: ${({ $color }) => $color ?? theme.formDefaultColors.fieldFontColor};\n }\n\n ::placeholder {\n color: ${({ $outlineColor }) => $outlineColor ?? theme.colors.placeHolderColor};\n }\n }\n`;\n\nexport function InputFieldFormPartial({ activity, handleChange, name }) {\n const { form_field_outline_color, form_field_background_color, form_field_font_color } =\n activity.settings ?? {};\n\n return (\n <>\n <UnderlinedInput\n $outlineColor={form_field_outline_color}\n $color={form_field_font_color}\n $backgroundColor={form_field_background_color}\n bordered={false}\n onChange={handleChange}\n name={name}\n />\n <StyledErrorMessage name={name} />\n </>\n );\n}\n\nInputFieldFormPartial.propTypes = {\n activity: PropTypes.shape({\n settings: {\n form_field_background_color: PropTypes.string,\n form_field_font_color: PropTypes.string,\n form_field_outline_color: PropTypes.string,\n },\n }),\n handleChange: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { StyledCard } from '../styles';\nimport { RadioGroupFormPartial, InputFieldFormPartial } from './partials';\nimport theme from '@web/styles/theme';\n\nconst Title = styled.div`\n display: inline-block;\n font-weight: bold;\n margin-bottom: 1rem;\n color: ${({ $color }) => $color ?? theme.formDefaultColors.fontColor};\n`;\n\nconst Required = styled.span`\n padding-left: 4px;\n color: red;\n`;\n\nfunction mapQuestionTypeToFormPartial(type) {\n switch (type) {\n case 'multiple_choice':\n return RadioGroupFormPartial;\n case 'closed':\n return RadioGroupFormPartial;\n case 'short_answer':\n return InputFieldFormPartial;\n default:\n throw new Error('Unknown survey question type');\n }\n}\n\nfunction QuestionCard({\n handleChange,\n index,\n question: { answer_mappings, question: title, question_type: type, required },\n activity,\n}) {\n const FormPartialComponent = mapQuestionTypeToFormPartial(type);\n\n const { section_background_color, main_font_color } = activity.settings ?? {};\n\n return (\n <StyledCard $background={section_background_color}>\n <Title $color={main_font_color}>\n {title}\n {required && <Required>*</Required>}\n </Title>\n\n <FormPartialComponent\n activity={activity}\n handleChange={handleChange}\n name={`question_answers[${index}].value`}\n options={answer_mappings}\n />\n </StyledCard>\n );\n}\n\nQuestionCard.propTypes = {\n activity: PropTypes.shape({\n settings: PropTypes.shape({\n main_font_color: PropTypes.string,\n section_background_color: PropTypes.string,\n }),\n }),\n handleChange: PropTypes.func.isRequired,\n index: PropTypes.number,\n question: PropTypes.shape({\n answer_mappings: PropTypes.object,\n id: PropTypes.number,\n question: PropTypes.string,\n question_type: PropTypes.string,\n required: PropTypes.bool,\n }).isRequired,\n};\n\nexport default QuestionCard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport QuestionCard from './QuestionCard';\n\nfunction ActivityQuestions({ activity, questions, handleChange }) {\n return questions.map((question, idx) => (\n <QuestionCard\n activity={activity}\n key={question.id}\n index={idx}\n question={question}\n handleChange={handleChange}\n />\n ));\n}\n\nActivityQuestions.propTypes = {\n activity: PropTypes.object,\n handleChange: PropTypes.func.isRequired,\n questions: PropTypes.arrayOf(\n PropTypes.shape({\n answer_mappings: PropTypes.object,\n id: PropTypes.number,\n position: PropTypes.number,\n question: PropTypes.string,\n question_type: PropTypes.string,\n required: PropTypes.bool,\n }),\n ).isRequired,\n};\n\nexport default ActivityQuestions;\n","import { Checkbox } from 'antd';\nimport React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport { convertLinks } from '@web/utils/string';\nimport { Link } from 'react-router-dom';\nimport theme from '@web/styles/theme';\nimport pxToRem from '@web/utils/pxToRem';\n\nconst OptInSection = styled.div`\n flex-basis: 100% !important;\n margin: 2rem 0;\n padding: 0 1rem;\n`;\n\n// Using theme color is difficult because antd checkbox uses pseudo elements and things get complicated\n// it's best to keep this simple if possible\nconst StyledCheckbox = styled(Checkbox)`\n &&& {\n .ant-checkbox-inner {\n transform: scale(1.2);\n background-color: ${({ $bgColor }) =>\n $bgColor ?? theme.formDefaultColors.fieldBackgroundColor};\n border-color: ${({ $outlineColor }) =>\n $outlineColor ?? theme.formDefaultColors.fieldOutlineColor};\n }\n\n .ant-checkbox-checked .ant-checkbox-inner {\n background-color: ${({ $outlineColor }) =>\n $outlineColor ?? theme.formDefaultColors.fieldOutlineColor};\n border-color: ${({ $outlineColor }) =>\n $outlineColor ?? theme.formDefaultColors.fieldOutlineColor};\n ::after {\n border-color: ${({ $bgColor }) => $bgColor ?? theme.formDefaultColors.fieldBackgroundColor};\n }\n }\n\n &:hover {\n .ant-checkbox-checked:after {\n border: none;\n }\n }\n\n .ant-checkbox:hover .ant-checkbox-inner,\n .ant-checkbox-input:focus {\n border-color: ${({ $outlineColor }) =>\n $outlineColor ?? theme.formDefaultColors.fieldOutlineColor} !important;\n }\n }\n`;\n\nconst PrivacyPolicyLink = styled(Link)`\n &&& {\n margin-top: 16px;\n display: block;\n\n color: ${({ $color }) => $color ?? theme.formDefaultColors.fontColor};\n font-size: ${pxToRem(11)};\n text-decoration: underline;\n\n &:hover {\n color: ${theme.colors.coral};\n }\n }\n`;\n\nconst OptInCheckboxField = ({ activity, values, handleChange }) => {\n const { t } = useTranslation();\n const optInCheckboxTermsText = useMemo(\n () =>\n convertLinks(\n activity?.terms || t('survey.opt-in-default-terms', { campaign: activity.campaign.name }),\n ),\n [activity.campaign.name, activity?.terms, t],\n );\n\n const termsAndPolicyLink = useMemo(\n () => activity?.terms_link || 'https://www.impactive.io/client-terms-and-privacy-policy',\n [activity?.terms_link],\n );\n\n const { form_field_outline_color, form_field_background_color, main_font_color } =\n activity.settings ?? {};\n\n return (\n <OptInSection>\n <StyledCheckbox\n name=\"opt_in\"\n checked={values['opt_in']}\n onChange={handleChange}\n $bgColor={form_field_background_color}\n $outlineColor={form_field_outline_color}\n >\n <span\n style={{ color: main_font_color ?? theme.formDefaultColors.fontColor }}\n dangerouslySetInnerHTML={{ __html: optInCheckboxTermsText }}\n />\n </StyledCheckbox>\n <PrivacyPolicyLink as=\"a\" $color={main_font_color} href={termsAndPolicyLink} target=\"_blank\">\n Terms & Privacy Policy\n </PrivacyPolicyLink>\n </OptInSection>\n );\n};\n\nOptInCheckboxField.propTypes = {\n activity: PropTypes.shape({\n campaign: PropTypes.shape({ name: PropTypes.string }),\n settings: PropTypes.shape({\n form_field_background_color: PropTypes.string,\n form_field_font_color: PropTypes.string,\n form_field_outline_color: PropTypes.string,\n main_font_color: PropTypes.string,\n secondary_color: PropTypes.string,\n }),\n terms: PropTypes.string,\n terms_link: PropTypes.string,\n }),\n handleChange: PropTypes.func.isRequired,\n values: PropTypes.object.isRequired,\n};\n\nexport default OptInCheckboxField;\n","import { message } from 'antd';\nimport { TwitterOutlined } from '@ant-design/icons';\nimport React from 'react';\nimport { FacebookShareButton, LinkedinShareButton, TwitterShareButton } from 'react-share';\nimport { isMobileOnly } from 'react-device-detect';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport theme from '@web/styles/theme';\nimport Icon from '@web/components/common/Icon';\nimport ImpactiveButton from '@web/components/ImpactiveButton';\n\nconst buttonStyle = css`\n background: #fff;\n color: ${theme.colors.darkBlue};\n box-shadow: 8px 8px 32px rgba(0, 41, 64, 0.08);\n border-radius: 4px;\n border: none;\n font-weight: 800;\n\n padding: 15px 30px;\n white-space: nowrap;\n\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 12px;\n\n width: 100%;\n flex: 1 1 calc(25% - 14px);\n\n transition: transform 0.2s ease;\n\n :hover {\n transform: scale(1.02);\n }\n`;\n\nconst Flex = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n\n width: 100%;\n gap: 14px;\n`;\n\nconst StyledFacebookShareButton = styled(FacebookShareButton)`\n ${buttonStyle}\n background: ${({ $backgroundColor }) =>\n $backgroundColor || theme.formDefaultColors.sectionBackgroundColor};\n color: ${({ $fontColor }) => $fontColor ?? theme.formDefaultColors.fontColor};\n border: 1px ${({ $borderColor }) => $borderColor || theme.formDefaultColors.buttonColor} solid;\n`;\nconst StyledTwitterShareButton = styled(TwitterShareButton)`\n ${buttonStyle}\n background: ${({ $backgroundColor }) =>\n $backgroundColor || theme.formDefaultColors.sectionBackgroundColor};\n color: ${({ $fontColor }) => $fontColor ?? theme.formDefaultColors.fontColor};\n border: 1px ${({ $borderColor }) => $borderColor || theme.formDefaultColors.buttonColor} solid;\n`;\nconst StyledLinkedinShareButton = styled(LinkedinShareButton)`\n ${buttonStyle}\n background: ${({ $backgroundColor }) =>\n $backgroundColor || theme.formDefaultColors.sectionBackgroundColor};\n color: ${({ $fontColor }) => $fontColor ?? theme.formDefaultColors.fontColor};\n border: 1px ${({ $borderColor }) => $borderColor || theme.formDefaultColors.buttonColor} solid;\n`;\n\nconst StyledCopyButton = styled.button`\n ${buttonStyle}\n background: ${({ $backgroundColor }) => $backgroundColor ?? theme.formDefaultColors.buttonColor};\n color: ${({ $fontColor }) => $fontColor ?? theme.formDefaultColors.buttonFontColor};\n\n svg {\n color: ${({ $fontColor }) => $fontColor ?? theme.formDefaultColors.buttonFontColor} !important;\n }\n`;\n\nfunction ShareButtons({ link, settings }) {\n const { t } = useTranslation();\n\n const supportsNativeShare = !!navigator.share;\n const showNativeShareButton = isMobileOnly && supportsNativeShare;\n\n const handleCopy = () => {\n navigator.clipboard\n .writeText(link)\n .then(() => {\n message.success('Link copied successfully!');\n })\n .catch(() => {\n message.error('Error copying link!');\n });\n };\n\n const handleMobileShare = () => {\n navigator.share({ url: link }).catch(err => {\n if (err.toString().includes('AbortError')) {\n // The share api throws this error when a user decides not to share.\n // It isn't a real error so we just need to ignore it.\n return null;\n }\n throw err;\n });\n };\n\n const { section_background_color, main_font_color, secondary_color, button_font_color } =\n settings ?? {};\n\n return showNativeShareButton ? (\n <ImpactiveButton onClick={handleMobileShare} color=\"coral\" size=\"medium\" block>\n <Icon name=\"Share\" style={{ color: 'white' }} /> {t('button.share')}\n </ImpactiveButton>\n ) : (\n <Flex>\n <StyledFacebookShareButton\n $fontColor={main_font_color}\n $backgroundColor={section_background_color}\n $borderColor={secondary_color}\n url={link}\n resetButtonStyle={false}\n >\n <Icon name=\"Facebook\" /> Facebook\n </StyledFacebookShareButton>\n <StyledTwitterShareButton\n $fontColor={main_font_color}\n $backgroundColor={section_background_color}\n $borderColor={secondary_color}\n url={link}\n resetButtonStyle={false}\n >\n <TwitterOutlined /> Twitter\n </StyledTwitterShareButton>\n <StyledLinkedinShareButton\n $fontColor={main_font_color}\n $backgroundColor={section_background_color}\n $borderColor={secondary_color}\n url={link}\n resetButtonStyle={false}\n >\n <Icon name=\"LinkedIn\" /> LinkedIn\n </StyledLinkedinShareButton>\n <StyledCopyButton\n onClick={handleCopy}\n primary\n $fontColor={button_font_color}\n $backgroundColor={secondary_color}\n >\n <Icon name=\"Copy\" /> Copy Link\n </StyledCopyButton>\n </Flex>\n );\n}\n\nShareButtons.propTypes = {\n link: PropTypes.string.isRequired,\n settings: PropTypes.shape({\n button_font_color: PropTypes.string,\n main_font_color: PropTypes.string,\n secondary_color: PropTypes.string,\n section_background_color: PropTypes.string,\n }),\n};\n\nexport default ShareButtons;\n","import React, { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Card } from '@web/components/common/shared/Card';\nimport theme from '@web/styles/theme';\nimport { media } from '@web/styles/theme';\nimport ShareButtons from '@web/components/SurveyActivity/components/ShareButtons';\nimport { getFont } from './utils';\n\nconst StyledCard = styled(Card)`\n margin: 35px auto;\n padding: 70px 45px;\n width: 740px;\n\n background: ${({ $backgroundColor }) =>\n $backgroundColor ?? theme.formDefaultColors.sectionBackgroundColor};\n\n ${media.nlg} {\n width: calc(100% - 32px);\n padding: 70px 10px;\n }\n\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 30px;\n\n svg {\n color: ${({ $fontColor }) => $fontColor ?? theme.formDefaultColors.fontColor};\n }\n\n * {\n font-family: ${({ $font }) => getFont($font)};\n }\n`;\n\nconst Header = styled.h2`\n margin: 0 0 8px;\n padding: 0;\n\n text-align: center;\n font-weight: 600;\n font-size: 24px;\n line-height: 120%;\n\n color: ${({ $fontColor }) => $fontColor ?? theme.formDefaultColors.fontColor};\n`;\n\nconst Image = styled.img`\n width: 100%;\n object-fit: contain;\n\n @media screen and (max-width: 768px) {\n height: unset;\n }\n`;\n\nconst StyledMessage = styled.p`\n margin: 1rem;\n color: ${({ $fontColor }) => $fontColor ?? theme.formDefaultColors.fontColor};\n text-align: center;\n white-space: pre-wrap;\n`;\n\nconst ReferralLink = ({ incentive, link, settings, speechifyAiData, contactId }) => {\n const { t } = useTranslation();\n\n // Eliminates CLS (Cumulative Layout Shift) by setting the image height properly\n const imgHeight = incentive?.name ? 240 : 130;\n\n const titleText = settings.thank_you_title || t('survey.thank-you-default-title');\n let messageText = settings.thank_you_message || t('survey.thank-you-default-message');\n\n if (settings.allow_sharing && !settings.thank_you_message) {\n messageText += ` ${t('survey.thank-you-share-message')}`;\n }\n\n const iFrameUrl = `${speechifyAiData?.speechifyai_url}?&url=${encodeURIComponent(\n link,\n )}&v=${contactId}`;\n\n const { section_background_color, main_font_color, font } = settings ?? {};\n\n useEffect(() => {\n // For small screens we have to manually scroll to top to show thank you message first\n window.scrollTo(0, 0);\n }, []);\n\n return (\n <StyledCard\n $font={font}\n $backgroundColor={section_background_color}\n $fontColor={main_font_color}\n >\n {incentive?.name && <Image src={incentive?.name} alt=\"incentive\" height={imgHeight} />}\n <div>\n <Header $fontColor={main_font_color}>{titleText}</Header>\n <StyledMessage $fontColor={main_font_color}>{messageText}</StyledMessage>\n </div>\n {speechifyAiData ? (\n <iframe\n title=\"SpeechifyAi Frame\"\n id=\"SpeechifyAiFrame\"\n src={iFrameUrl}\n width=\"100%\"\n height=\"550px\"\n style={{ border: 'none' }}\n />\n ) : (\n settings.allow_sharing && <ShareButtons link={link} settings={settings} />\n )}\n </StyledCard>\n );\n};\n\nReferralLink.propTypes = {\n contactId: PropTypes.number,\n incentive: PropTypes.shape({\n name: PropTypes.string,\n }),\n link: PropTypes.string.isRequired,\n settings: PropTypes.shape({\n allow_sharing: PropTypes.bool,\n font: PropTypes.string,\n main_font_color: PropTypes.string,\n section_background_color: PropTypes.string,\n thank_you_message: PropTypes.string,\n thank_you_title: PropTypes.string,\n }),\n speechifyAiData: PropTypes.shape({\n activity_id: PropTypes.number,\n speechifyai_url: PropTypes.string,\n }),\n};\n\nexport default ReferralLink;\n","import React, { useMemo, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport queryString from 'query-string';\nimport dayjs from 'dayjs';\n\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { message } from 'antd';\n\nimport theme from '@web/styles/theme';\nimport { activities } from '@web/services/api';\nimport { Form, Formik } from 'formik';\nimport { getFont, getInitialSurveyValues, getValidationSchema } from './utils';\nimport VolunteerInfoFields from './VolunteerInfoFields';\nimport ActivityQuestions from './ActivityQuestions';\nimport OptInCheckboxField from './OptInCheckboxField';\nimport ImpactiveButton from '@web/components/ImpactiveButton';\nimport ReferralLink from './ReferralLink';\nimport {\n Container,\n HeaderImage,\n Header,\n SubText,\n StyledCard,\n PaddedFlexCard,\n Footer,\n} from './styles';\nimport { trackEventViewWithDynamicIDs } from '@web/services/analytics';\n\nconst StyledForm = styled(Form)`\n width: 100%;\n background-color: ${({ $bgColor }) => $bgColor || theme.formDefaultColors.pageBackgroundColor};\n * {\n font-family: ${({ $font }) => getFont($font)};\n }\n`;\n\nconst TitleAndDescriptionWrapper = styled.div`\n text-align: center;\n`;\n\nconst getDateValue = date => (date ? dayjs(date).format('MM/DD/YYYY') : '');\n\nconst StyledSubmitButton = styled(ImpactiveButton)`\n width: 728px;\n margin: 0 auto;\n font-weight: 600;\n border: none;\n\n color: ${({ $color }) => $color ?? theme.formDefaultColors.buttonFontColor};\n background: ${({ $bgColor }) => $bgColor || theme.formDefaultColors.buttonColor};\n\n @media screen and (max-width: 768px) {\n width: 100%;\n }\n`;\n\nconst SurveyActivityForm = ({ activity, team }) => {\n const [referralLink, setReferralLink] = useState(null);\n const [contactId, setContactId] = useState(null);\n // Pluck referral_hash from the query params, used for form referral tracking\n const { search } = useLocation();\n const {\n referral_hash: referralHash,\n start: activeFormSection,\n utm_campaign,\n utm_source,\n utm_medium,\n } = queryString.parse(search);\n\n const formAttributes = activity.survey_activity_form;\n // We need to sort the questions by position before validation schema is built so that\n // the initial values and the validation schema match the order of the questions in the form\n const sortedActivityQuestions = activity.activity_questions.sort(\n (a, b) => a.position - b.position,\n );\n\n const incentive = activity.activity_incentives_attributes?.[0];\n\n // For the BVM campaign on prod, we need to prevent users from submitting the form until they check the OPT-IN agreement\n const isBVMCampaign = useMemo(() => {\n const applicationHost = process.env.APPLICATION_HOST;\n\n // To make it testable on staging we check the Test Campaign id\n // To test it locally just change 190 to your campaign ID\n if (applicationHost !== 'app.impactive.io') {\n // \"Test Campaign\" campaign id on Staging\n return activity.campaign.id === 190;\n }\n\n // BVM campaign id\n return activity.campaign.id === 4554;\n }, [activity.campaign.id]);\n\n const isOptInRequired = useMemo(\n () => activity.settings.opt_in_agreement_required,\n [activity.settings.opt_in_agreement_required],\n );\n\n const initialValues = getInitialSurveyValues(\n formAttributes,\n sortedActivityQuestions,\n isBVMCampaign || isOptInRequired,\n activeFormSection === '1',\n );\n const validationSchema = getValidationSchema(formAttributes, sortedActivityQuestions);\n\n const {\n background_color,\n section_background_color,\n main_font_color,\n secondary_color,\n button_font_color,\n font,\n pixel_fb_id,\n pixel_ga_id,\n pixel_sc_id,\n } = activity.settings ?? {};\n\n const onSubmit = async (values, formikBag) => {\n // prepare and save contact data to local storage\n const localContact = JSON.parse(localStorage.getItem('vr_and_form_contact')) || {};\n const contact = {\n // we also don't want to lose data from vr/headcount form\n ...localContact,\n date_of_birth: getDateValue(values?.date_of_birth || localContact?.date_of_birth) || null,\n email: values?.email || localContact?.email || '',\n first_name: values?.first_name || localContact?.first_name || '',\n last_name: values?.last_name || localContact?.last_name || '',\n phone: values?.phone || localContact?.phone || '',\n zip_code: values?.zip_code || localContact?.zip_code || '',\n };\n localStorage.setItem('vr_and_form_contact', JSON.stringify(contact));\n\n if (isOptInRequired && !values.opt_in) {\n message.error('Opt in is required to submit this form.');\n formikBag.setSubmitting(false);\n return;\n }\n\n const { question_answers, ...surveyFormData } = values;\n // Parse string to date\n surveyFormData.date_of_birth = dayjs(surveyFormData.date_of_birth, 'MM/DD/YYYY').format(\n 'DD/MM/YYYY',\n );\n\n if (team) {\n surveyFormData.team_referral_id = team.id;\n }\n\n surveyFormData.utm_campaign = utm_campaign;\n surveyFormData.utm_source = utm_source;\n surveyFormData.utm_medium = utm_medium;\n\n formikBag.setSubmitting(true);\n activities\n .submitSurveyActivityForm({\n autoOpenLink: activeFormSection === '1',\n campaignSlug: activity.campaign.slug,\n formSlug: activity.survey_activity_form.slug,\n questionAnswers: question_answers,\n referralHash,\n surveyFormData,\n })\n .then(({ data }) => {\n const link = data.data.referral_link + (activeFormSection === '1' ? '?start=1' : '');\n const contact_id = data.data.contact_id;\n trackEventViewWithDynamicIDs({\n actionName: 'survey_form_filled',\n categoryName: 'Survey Activity',\n fbPixelId: pixel_fb_id,\n gaTrackingId: pixel_ga_id,\n gtmPixelId: activity?.settings?.pixel_gtm_id,\n snapchatPixelId: pixel_sc_id,\n });\n setReferralLink(link);\n setContactId(contact_id);\n })\n .catch(err =>\n message.error(\n err?.response?.data?.message || err?.message || 'Something went wrong, please try again',\n ),\n )\n .finally(() => formikBag.setSubmitting(false));\n };\n\n // Thank you message is shown after the form is submitted\n if (referralLink) {\n const speechifyAiData = (activity.speechifyai_activities ?? []).find(\n e => e.activity_id === activity.id,\n );\n return (\n <Container>\n <ReferralLink\n speechifyAiData={speechifyAiData}\n link={referralLink}\n settings={activity.settings}\n incentive={incentive}\n activity={activity}\n contactId={contactId}\n />\n </Container>\n );\n }\n const isClosed = activity.aasm_state === 'closed';\n\n return (\n <Formik\n onSubmit={onSubmit}\n initialValues={initialValues}\n validationSchema={validationSchema}\n render={({ values, handleChange, handleSubmit, isSubmitting, setFieldValue }) => {\n // check at least one value is not empty to enable submit button when initialized from local storage\n const isValuesExists = Object.entries(values).some(([key, value]) => {\n // exclude question_answers and opt_in from checking\n if (key === 'question_answers') return false;\n if (key === 'opt_in') return false;\n return !!value;\n });\n\n return (\n <StyledForm $font={font} onSubmit={handleSubmit} $bgColor={background_color}>\n <Container>\n {activity.hero_img_url && <HeaderImage src={activity.hero_img_url} />}\n <StyledCard $background={section_background_color}>\n <TitleAndDescriptionWrapper>\n <Header $color={main_font_color}>{activity.title}</Header>\n <SubText $color={main_font_color}>{activity.description}</SubText>\n </TitleAndDescriptionWrapper>\n {isClosed && <Header style={{ marginTop: 30 }}>Closed</Header>}\n </StyledCard>\n {!isClosed && (\n <>\n <PaddedFlexCard $background={section_background_color}>\n <VolunteerInfoFields\n initialValues={initialValues}\n values={values}\n handleChange={handleChange}\n setFieldValue={setFieldValue}\n activity={activity}\n />\n </PaddedFlexCard>\n <ActivityQuestions\n questions={sortedActivityQuestions}\n handleChange={handleChange}\n activity={activity}\n />\n <OptInCheckboxField\n activity={activity}\n values={values}\n handleChange={handleChange}\n />\n </>\n )}\n </Container>\n {!isClosed && (\n <Footer $bgColor={background_color}>\n <StyledSubmitButton\n htmlType=\"submit\"\n type=\"submit\"\n block\n $bgColor={secondary_color}\n $color={button_font_color}\n disabled={isSubmitting || !isValuesExists || (isBVMCampaign && !values.opt_in)}\n >\n Submit\n </StyledSubmitButton>\n </Footer>\n )}\n </StyledForm>\n );\n }}\n />\n );\n};\n\nSurveyActivityForm.propTypes = {\n activity: PropTypes.object.isRequired,\n team: PropTypes.object,\n};\n\nexport default SurveyActivityForm;\n","import PropTypes from 'prop-types';\nimport React, { useEffect } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport styled from 'styled-components';\nimport ImpactiveButton from '@web/components/ImpactiveButton';\nimport theme, { media } from '@web/styles/theme';\nimport { convertLinks } from '@web/utils/string';\nimport { getFont } from './utils';\nimport { trackPageViewWithDynamicIDs } from '@web/services/analytics';\n\nconst PageWrapper = styled.div`\n display: flex;\n justify-content: space-evenly;\n min-height: 100vh;\n max-width: 100%;\n margin: 0 auto;\n background-color: ${({ $bgColor }) => $bgColor || theme.formDefaultColors.pageBackgroundColor};\n\n * {\n font-family: ${({ $font }) => getFont($font)};\n }\n\n ${media.nlg} {\n flex-direction: column;\n height: auto;\n }\n`;\n\nconst Images = styled.div`\n display: flex;\n flex-direction: column;\n gap: 20px;\n margin: auto 0;\n padding: 12px;\n width: 624px;\n\n ${media.nxl} {\n width: 424px;\n }\n ${media.nlg} {\n width: 100%;\n margin: auto 0 0;\n }\n`;\n\nconst FormIntroImage = styled.img`\n max-height: 600px;\n object-fit: contain;\n border-radius: 5px;\n`;\n\nconst IncentiveImage = styled.img`\n height: 200px;\n object-fit: contain;\n border-radius: 5px;\n\n ${media.nlg} {\n height: unset;\n }\n`;\n\nconst InfoSection = styled.div`\n display: flex;\n flex-direction: column;\n gap: 20px;\n margin: auto 0;\n align-items: center;\n padding: 12px;\n\n width: 500px;\n\n ${media.nlg} {\n width: 100%;\n margin: 0 0 auto;\n }\n`;\n\nconst MainImage = styled.img`\n width: 350px;\n height: 350px;\n object-fit: contain;\n border-radius: 5px;\n margin: auto;\n\n ${media.nlg} {\n display: ${({ $mobileOnly }) => ($mobileOnly ? 'block' : 'none')};\n width: 150px;\n height: 150px;\n }\n\n ${media.lg} {\n display: ${({ $mobileOnly }) => ($mobileOnly ? 'none' : 'block')};\n }\n`;\n\nconst DisclaimerText = styled.p`\n font-size: 18px;\n font-weight: 700;\n text-align: center;\n color: ${({ $color }) => $color ?? theme.formDefaultColors.fontColor};\n`;\n\nconst SurveyIntroPage = ({ activity, team, showForm }) => {\n const history = useHistory();\n const { search } = useLocation();\n const formQueryParams = new URLSearchParams(search);\n\n const incentive = activity.activity_incentives_attributes?.[0];\n const imageSrc = team?.profile_img_url || activity.campaign.url_profile_img;\n\n const goToForm = () => {\n formQueryParams.delete('start');\n showForm();\n\n history.push({\n pathname: '',\n search: formQueryParams.toString(),\n });\n };\n\n const {\n background_color,\n secondary_color,\n button_font_color,\n main_font_color,\n font,\n pixel_fb_id,\n pixel_ga_id,\n pixel_sc_id,\n pixel_gtm_id,\n } = activity.settings ?? {};\n\n useEffect(() => {\n trackPageViewWithDynamicIDs({\n fbPixelId: pixel_fb_id,\n gaTrackingId: pixel_ga_id,\n gtmPixelId: pixel_gtm_id,\n snapchatPixelId: pixel_sc_id,\n });\n }, [pixel_fb_id, pixel_ga_id, pixel_sc_id, pixel_gtm_id]);\n\n return (\n <PageWrapper $font={font} $bgColor={background_color}>\n <Images>\n {/* Main image is css controlled, and will be shown here on top on small screens only */}\n <MainImage src={imageSrc} $mobileOnly />\n <FormIntroImage src={activity.media_url} />\n {incentive && <IncentiveImage src={incentive.name} />}\n </Images>\n\n <InfoSection>\n <MainImage src={imageSrc} />\n <ImpactiveButton\n $background={secondary_color ?? theme.formDefaultColors.buttonColor}\n size=\"full-width\"\n onClick={goToForm}\n style={{ color: button_font_color ?? theme.formDefaultColors.buttonFontColor }}\n >\n {activity.button_text || 'Start'}\n </ImpactiveButton>\n <DisclaimerText\n $color={main_font_color}\n dangerouslySetInnerHTML={{\n __html: convertLinks(activity.paid_by),\n }}\n ></DisclaimerText>\n </InfoSection>\n </PageWrapper>\n );\n};\n\nSurveyIntroPage.propTypes = {\n activity: PropTypes.object,\n showForm: PropTypes.func.isRequired,\n team: PropTypes.object,\n};\n\nexport default SurveyIntroPage;\n","import PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport styled from 'styled-components';\nimport SurveyActivityForm from './components/SurveyActivityForm';\nimport SurveyIntroPage from './components/SurveyIntroPage';\n\nconst ActivityContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n min-height: 100vh;\n\n background-color: ${({ $bgColor }) => $bgColor || '#fff'};\n`;\n\nconst SurveyActivity = ({ activity, team }) => {\n const { search } = useLocation();\n const query = new URLSearchParams(search);\n const activeFormSection = query.get('start') || '0';\n const [showIntroPage, setShowIntroPage] = useState(activeFormSection === '0');\n\n if (showIntroPage) {\n return (\n <SurveyIntroPage activity={activity} team={team} showForm={() => setShowIntroPage(false)} />\n );\n }\n\n return (\n <ActivityContainer $bgColor={activity.settings?.background_color}>\n <SurveyActivityForm activity={activity} team={team} />\n </ActivityContainer>\n );\n};\n\nSurveyActivity.propTypes = {\n activity: PropTypes.object,\n team: PropTypes.object,\n};\n\nexport default SurveyActivity;\n","import { Spin, message } from 'antd';\nimport React, { useCallback, useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useParams, useLocation, useHistory } from 'react-router-dom';\nimport queryString from 'query-string';\n\nimport { user } from '../../services/api';\nimport { AuthContext } from '../../utils/context';\nimport ActivityDetailCore from '../ActivityDetail/ActivityDetailCore';\nimport FanOutActivity from '@web/components/FanOut';\nimport FanOutVotingPlanActivity from '@web/components/FanOutVotingPlan';\nimport HeadcountRegistrationActivity from '@web/components/Headcount';\nimport RegistrationActivity from '@web/components/RegistrationActivity';\nimport SurveyActivity from '@web/components/SurveyActivity';\n\nconst PublicActivityDetail = () => {\n const { t } = useTranslation();\n\n const { token } = useContext(AuthContext);\n const { pathname, search } = useLocation();\n const history = useHistory();\n const { referral_hash } = queryString.parse(search);\n\n const { activitySlug, campaignSlug } = useParams();\n const [activity, setActivity] = useState(null);\n\n const [loading, setLoading] = useState(true);\n const [redirectingToUserActivity, setRedirectingToUserActivity] = useState(false);\n\n const loadActivity = useCallback(() => {\n setLoading(true);\n user\n .getPublicActivity(campaignSlug, activitySlug)\n .then(({ data: activity }) => {\n setActivity(activity);\n setLoading(false);\n })\n .catch(e => {\n setActivity(null);\n setLoading(false);\n });\n }, [campaignSlug, activitySlug]);\n\n const handlePressJoin = () => {\n localStorage.setItem('redirectAfterLogin', pathname);\n history.push(`/auth/signup/${activity.campaign.slug}`);\n };\n\n // load activity on init and when explicitly requested\n useEffect(() => {\n loadActivity();\n }, [loadActivity]);\n\n // If logged in, go to the user_activity page if available, or fallback to campaign page\n useEffect(() => {\n if (token) {\n setRedirectingToUserActivity(true);\n user\n .lookupUserActivity(campaignSlug, activitySlug)\n .then(({ data: { activity, id } }) => {\n // Early return for RegistrationActivity, we don't want to redirect to a user activity in this case\n if (activity.type === 'RegistrationActivity' || activity.type === 'SurveyActivity') {\n return;\n }\n if (id) {\n return history.replace(`/activities/${id}`);\n }\n return Promise.reject();\n })\n .catch(e => {\n // we'd want to change this to view activity for non-joined users\n message.warning(t('activity.need_join_campaign_first'));\n history.replace(`/campaigns/${campaignSlug}`);\n })\n .finally(() => {\n setLoading(false);\n setRedirectingToUserActivity(false);\n });\n }\n }, [activitySlug, campaignSlug, history, t, token]);\n\n // Render spinner as long as the activity is being loaded, or redirect is pending\n if (loading || !activity || redirectingToUserActivity) {\n return <Spin />;\n }\n // Special case for RegistrationActivity\n if (activity.type === 'RegistrationActivity') {\n if (activity.campaign?.fan_out_registration_enabled) {\n return <FanOutActivity activity={activity} />;\n }\n\n if (activity.campaign?.headcount_registration_enabled) {\n return <HeadcountRegistrationActivity activity={activity} />;\n }\n return <RegistrationActivity activity={activity} />;\n }\n\n // Special case for SurveyActivity\n if (activity.type === 'SurveyActivity') {\n if (activity.id === activity.campaign.voting_plan_activity_id && referral_hash) {\n return <FanOutVotingPlanActivity activity={activity} />;\n }\n\n return <SurveyActivity activity={activity} />;\n }\n\n // Any other public activity - show regular activity page for now\n return (\n <ActivityDetailCore\n title={t('activity.header_title')}\n appContainerDataTestId={'logged_out_activity_detail'}\n activity={activity}\n completed={false}\n headerTitle={activity.campaign.name || t('activity.header_title')}\n userActivity={null}\n campaign={activity.campaign}\n onActivityActionButtonPress={handlePressJoin}\n />\n );\n};\n\nPublicActivityDetail.propTypes = {};\n\nexport default PublicActivityDetail;\n","import { useEffect } from 'react';\nimport { useLocation } from 'react-router-dom';\n\nexport default function ScrollToTop() {\n const { pathname } = useLocation();\n\n useEffect(() => {\n window.scrollTo(0, 0);\n }, [pathname]);\n\n return null;\n}\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nimport styled from 'styled-components';\nimport theme, { media, vrDefaultColors } from '@web/styles/theme';\nimport { Button } from 'antd';\n\nimport JoinButton from '@web/components/common/JoinButton';\nimport { isDark } from '@web/utils/other';\n\nconst StyledActivityCTA = styled.div`\n color: ${({ theme }) => theme.colors.black};\n padding: 0 25px;\n width: 100%;\n`;\n\nconst ActivityCTAContainer = styled.div`\n display: flex;\n gap: 30px 60px;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n\n ${media.xl} {\n flex-direction: row;\n }\n`;\n\nconst JoinButtonWrapper = styled.div`\n max-width: 367px;\n width: 100%;\n`;\n\nconst GetReferralButton = styled(Button)`\n ${media.xl} {\n align-self: start;\n }\n\n &&& {\n display: inline;\n max-width: 387px;\n width: 100%;\n height: 76px;\n background-color: ${({ $bgColor }) => $bgColor};\n border-radius: 12px;\n border: none;\n\n color: ${({ $bgColor }) => (isDark($bgColor) ? theme.colors.white : theme.colors.black)};\n font-weight: 900;\n font-size: 24px;\n line-height: 29px;\n text-align: center;\n letter-spacing: 1px;\n text-transform: uppercase;\n\n box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);\n }\n`;\n\nconst ReferrerDetails = styled.div`\n max-width: 367px;\n width: 100%;\n text-align: center;\n margin-top: 18px;\n`;\n\nconst ActivityCTA = ({ handleGetStarted, handleGetReferral, referrer, activity, ...rest }) => {\n const { t } = useTranslation();\n let referrerDetails;\n\n if (referrer) {\n referrerDetails = t('campaign.activity.referrer').replace('{{fullname}}', referrer.fullname);\n }\n\n const buttonColor = useMemo(\n () => activity?.settings?.button_color ?? vrDefaultColors.buttonColor,\n [activity?.settings?.button_color],\n );\n\n const isActive = activity.aasm_state !== 'closed';\n\n return (\n <StyledActivityCTA {...rest}>\n <ActivityCTAContainer>\n <JoinButtonWrapper>\n <JoinButton\n style={{\n background: buttonColor,\n color: isDark(buttonColor) ? theme.colors.white : theme.colors.black,\n }}\n onClick={handleGetStarted}\n disabled={!isActive}\n >\n {isActive ? t('campaign.activity.check_registration') : 'Closed'}\n </JoinButton>\n {referrer && <ReferrerDetails>{referrerDetails}</ReferrerDetails>}\n </JoinButtonWrapper>\n {isActive && (\n <GetReferralButton\n $bgColor={buttonColor}\n data-testid=\"join-button\"\n onClick={handleGetReferral}\n type=\"primary\"\n >\n {t('campaign.activity.get_referral_link')}\n </GetReferralButton>\n )}\n </ActivityCTAContainer>\n </StyledActivityCTA>\n );\n};\n\nActivityCTA.propTypes = {\n activity: PropTypes.shape({\n aasm_state: PropTypes.string,\n settings: PropTypes.shape({\n button_color: PropTypes.string,\n }),\n }),\n handleGetReferral: PropTypes.func.isRequired,\n handleGetStarted: PropTypes.func.isRequired,\n referrer: PropTypes.object,\n};\n\nexport default ActivityCTA;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport styled from 'styled-components';\nimport { colors, media, vrDefaultColors } from '@web/styles/theme';\n\nimport {\n ProgressContainer,\n ProgressPlaceholder,\n Progress,\n} from '@web/components/RegistrationActivity/ActivityHero/components/ActivityGoals/components/Progress';\n\nconst GoalsPlaceholder = styled.div`\n height: 80px;\n`;\n\nconst StyledActivityGoals = styled.div`\n margin: 0 auto;\n width: 100%;\n\n ${media.ns} {\n max-width: 70vw;\n }\n ${media.xxl} {\n max-width: 1065px;\n }\n`;\n\nconst GoalLabels = styled.div`\n display: flex;\n flex-direction: row;\n margin-bottom: 20px;\n`;\n\nconst GoalsLeft = styled.div`\n width: 50%;\n`;\n\nconst GoalsRight = styled.div`\n width: 50%;\n text-align: right;\n`;\n\nconst GoalLabel = styled.div`\n color: ${({ theme }) => theme.colors.white};\n font-size: 1.1rem;\n line-height: 1.1rem;\n text-transform: uppercase;\n\n ${media.ns} {\n line-height: 1.5rem;\n font-size: 1.5rem;\n color: ${({ theme }) => theme.colors.blue};\n }\n`;\n\nconst GoalAmount = styled.div`\n color: ${({ theme }) => theme.colors.white};\n font-weight: 600;\n font-size: 1.2rem;\n\n ${media.ns} {\n color: ${({ theme }) => theme.colors.blue};\n font-size: 1.5rem;\n }\n`;\n\nconst ActivityGoals = ({ activity, goals, isMobile, ...rest }) => {\n const progressColor = useMemo(\n () => activity?.settings?.progress_bar_color ?? vrDefaultColors.progressBarColor,\n [activity?.settings?.progress_bar_color],\n );\n\n if (!activity.registrations_goal_amount) {\n return <GoalsPlaceholder />;\n }\n\n const { registrations_goal_amount: goalAmount, registrations_goal_label: label } = activity;\n const { registrations_count: currentTotalAmount, referrals_count: currentReferralsAmount } =\n goals;\n\n const currentPercent = Math.ceil((currentTotalAmount * 100) / goalAmount);\n // `currentTotalAmount` as a divisor for referralsPercent would give us referals as a % of total (in a [0, 100%] range)\n // however that does not work with the way this data is presented in a chart so reverting back to % of the goal instead.\n const referralsPercent = Math.ceil((currentReferralsAmount * 100) / goalAmount);\n\n return (\n <StyledActivityGoals {...rest}>\n <GoalLabels>\n <GoalsLeft>\n <GoalLabel>{label}</GoalLabel>\n <GoalAmount>{currentTotalAmount?.toLocaleString()}</GoalAmount>\n </GoalsLeft>\n\n <GoalsRight>\n <GoalLabel>GOAL</GoalLabel>\n <GoalAmount>{goalAmount?.toLocaleString()}</GoalAmount>\n </GoalsRight>\n </GoalLabels>\n\n <ProgressContainer>\n {/* Placeholder background progress bar simulating not reached yet portion of the goal */}\n <ProgressPlaceholder backgroundColor={progressColor} />\n {/* Total registrations */}\n <Progress backgroundColor={progressColor} value={currentPercent} indicatorPriority />\n {/* Referral registration */}\n <Progress backgroundColor={colors.blue} label=\"referrals\" value={referralsPercent} />\n </ProgressContainer>\n </StyledActivityGoals>\n );\n};\n\nActivityGoals.propTypes = {\n activity: PropTypes.object.isRequired,\n goals: PropTypes.object.isRequired,\n isMobile: PropTypes.bool,\n};\n\nActivityGoals.defaultProps = {\n isMobile: false,\n};\n\nexport default ActivityGoals;\n","import * as React from 'react';\n// import PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { Link } from 'react-router-dom';\nimport Logo from '@web/components/Logo';\n\nconst Box = styled(Link)`\n background-color: rgba(255, 255, 255, 0.8);\n display: inline-flex;\n padding: 14px;\n`;\n\n// MTS - Needs to be wrapped in a div or else it expands full height\nconst BoxWrapper = styled.div``;\n\nfunction BoxLogo() {\n return (\n <BoxWrapper>\n <Box to=\"/frontline\">\n <Logo height=\"22\" />\n </Box>\n </BoxWrapper>\n );\n}\n\nBoxLogo.propTypes = {};\n\nBoxLogo.defaultProps = {};\n\nexport default BoxLogo;\n","import PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst CampaignProfileImage = styled.img`\n border: 6px solid\n ${({ $isMobile, theme }) => ($isMobile ? theme.colors.white : theme.colors.black)};\n border-radius: ${({ size }) => size / 2}px;\n height: ${({ size }) => size}px;\n object-fit: cover;\n width: ${({ size }) => size}px;\n z-index: 1;\n`;\n\nCampaignProfileImage.propTypes = {\n $isMobile: PropTypes.bool,\n size: PropTypes.number.isRequired,\n};\n\nCampaignProfileImage.defaultProps = {\n $isMobile: false,\n};\n\nexport default CampaignProfileImage;\n","import PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst MainContainer = styled.div`\n display: flex;\n padding: 40px 25px 45px;\n position: relative;\n width: 100%;\n\n background-image: linear-gradient(180deg, rgba(35, 41, 62, 0.3) 0%, rgba(35, 41, 62, 0.7) 100%),\n url(${props => props.backgroundImage});\n background-position: center center;\n background-size: cover;\n background-repeat: no-repeat;\n`;\n\nMainContainer.propTypes = {\n backgroundImage: PropTypes.string.isRequired,\n};\n\nMainContainer.defaultProps = {};\n\nexport default MainContainer;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport ActivityCTA from './ActivityCTA';\nimport ActivityGoals from './ActivityGoals';\nimport BoxLogo from './BoxLogo';\nimport CampaignProfileImage from './CampaignProfileImage';\nimport MainContainer from './MainContainer';\n\nconst StyledActivityCTA = styled(ActivityCTA)`\n margin-bottom: 0;\n`;\n\nconst StyledCampaignProfileImage = styled(CampaignProfileImage)`\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n`;\n\nconst StyledMainContainer = styled(MainContainer)`\n height: 448px;\n margin-bottom: 130px;\n`;\n\nconst StyledActivityGoals = styled(ActivityGoals)`\n margin-bottom: 80px;\n`;\n\nconst TeamName = styled.h3`\n text-align: center;\n color: ${({ theme }) => theme.colors.black};\n`;\n\nconst TeamPageTitle = styled.h1`\n text-align: center;\n font-size: 3rem;\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.bold};\n`;\n\nconst PROFILE_IMG_SIZE = 216;\n\nfunction DesktopHero({\n activity,\n campaign,\n goals,\n handleGetReferral,\n handleGetStarted,\n referrer,\n team,\n}) {\n // The + 3 at the end comes from half of the border size.\n const profileOffset = (PROFILE_IMG_SIZE / 2) * -1 + 3;\n return (\n <>\n <StyledMainContainer backgroundImage={team.hero_img_url}>\n <BoxLogo />\n <StyledCampaignProfileImage\n alt=\"campaign-profile\"\n size={PROFILE_IMG_SIZE}\n src={team.profile_img_url}\n style={{ bottom: profileOffset }}\n />\n </StyledMainContainer>\n\n <TeamName>{team.name}</TeamName>\n <TeamPageTitle>{team.action_page_title}</TeamPageTitle>\n\n <StyledActivityGoals activity={activity} campaign={campaign} goals={goals} />\n\n <StyledActivityCTA\n activity={activity}\n campaign={campaign}\n handleGetStarted={handleGetStarted}\n handleGetReferral={handleGetReferral}\n referrer={referrer}\n />\n </>\n );\n}\n\nDesktopHero.propTypes = {\n activity: PropTypes.shape({\n hero_img_url: PropTypes.string.isRequired,\n }).isRequired,\n campaign: PropTypes.object.isRequired,\n goals: PropTypes.object.isRequired,\n handleGetReferral: PropTypes.func.isRequired,\n handleGetStarted: PropTypes.func.isRequired,\n referrer: PropTypes.object,\n team: PropTypes.object.isRequired,\n};\n\nDesktopHero.defaultProps = {};\n\nexport default DesktopHero;\n","import styled from 'styled-components';\n\nexport const Title = styled.h1`\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 3rem;\n line-height: 58px;\n margin-bottom: 20px;\n`;\n\nexport const Description = styled.h2`\n color: ${({ theme }) => theme.colors.white};\n font-size: 2rem;\n line-height: 28px;\n margin-bottom: 16px;\n margin-top: 35px;\n white-space: pre-wrap;\n word-wrap: break-word;\n word-break: break-word;\n`;\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport ActivityCTA from './ActivityCTA';\nimport ActivityGoals from './ActivityGoals';\nimport BoxLogo from './BoxLogo';\nimport CampaignProfileImage from './CampaignProfileImage';\nimport { Description, Title } from './TextStyles';\nimport MainContainer from './MainContainer';\n\nconst Top = styled.div`\n flex: 1;\n margin-bottom: 20px;\n`;\n\nconst StyledMainContainer = styled(MainContainer)`\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n margin-bottom: 60px;\n padding-bottom: 44px;\n`;\n\nconst StyledActivityGoals = styled(ActivityGoals)`\n margin-top: 24px;\n margin-bottom: 30px;\n`;\n\nfunction MobileHero({ activity, campaign, goals, handleGetReferral, handleGetStarted, team }) {\n return (\n <>\n <StyledMainContainer backgroundImage={team.mobile_hero_img_url}>\n <Top>\n <BoxLogo />\n </Top>\n <CampaignProfileImage\n alt=\"campaign-profile\"\n $isMobile\n size={140}\n src={team.profile_img_url}\n />\n {team?.name && <Description>{team.name}</Description>}\n <Title>{team.action_page_title}</Title>\n <StyledActivityGoals activity={activity} campaign={campaign} goals={goals} isMobile />\n </StyledMainContainer>\n\n <ActivityCTA\n activity={activity}\n campaign={campaign}\n handleGetStarted={handleGetStarted}\n handleGetReferral={handleGetReferral}\n />\n </>\n );\n}\n\nMobileHero.propTypes = {\n activity: PropTypes.shape({\n description: PropTypes.string.isRequired,\n mobile_hero_img_url: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n }).isRequired,\n campaign: PropTypes.shape({\n description: PropTypes.string,\n name: PropTypes.string.isRequired,\n url_profile_img: PropTypes.string.isRequired,\n }).isRequired,\n goals: PropTypes.object.isRequired,\n handleGetReferral: PropTypes.func.isRequired,\n handleGetStarted: PropTypes.func.isRequired,\n team: PropTypes.object.isRequired,\n};\n\nMobileHero.defaultProps = {};\n\nexport default MobileHero;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport DesktopHero from './components/DesktopHero';\nimport MobileHero from './components/MobileHero';\n\nimport useMedia from '@web/hooks/useMedia';\n\nconst ActivityHero = props => {\n const isMobile = useMedia('(max-width: 600px)');\n\n if (isMobile) {\n return <MobileHero {...props} />;\n }\n\n return <DesktopHero {...props} />;\n};\n\nActivityHero.propTypes = {\n activity: PropTypes.object.isRequired,\n campaign: PropTypes.object.isRequired,\n goals: PropTypes.object.isRequired,\n handleGetReferral: PropTypes.func.isRequired,\n handleGetStarted: PropTypes.func.isRequired,\n team: PropTypes.object.isRequired,\n};\n\nexport default ActivityHero;\n","import React, { useEffect, useState } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { Spin } from 'antd';\nimport { LoadingOutlined } from '@ant-design/icons';\nimport { useLocation } from 'react-router-dom';\nimport queryString from 'query-string';\nimport axios from 'axios';\nimport ScrollToTop from '@web/components/common/ScrollToTop';\n\nimport { activities } from '../../services/api';\n\nimport AboutUsSection from '@web/components/common/AboutUsSection';\nimport HeadcountRegistrationActivity from '@web/components/Headcount';\nimport IncentivesSection from '@web/components/common/IncentivesSection';\nimport VolunteerLeaderboardSection from '@web/components/common/VolunteerLeaderboardSection';\nimport VoterRegistration from '@web/components/VoterRegistration';\nimport FanOutActivity from '@web/components/FanOut';\n\nimport ActivityHero from './ActivityHero';\n\nconst StyledTeamActivity = styled.div`\n height: 100%;\n width: 100%;\n`;\n\nconst TeamActivityVoterRegistrationPage = ({ activity, team }) => {\n const { t } = useTranslation();\n const { activitySlug, campaignSlug } = useParams();\n const { search } = useLocation();\n const { referral_hash, start } = queryString.parse(search);\n const [goalsLoading, setGoalsLoading] = useState(false);\n const [referrerLoading, setReferrerLoading] = useState(false);\n const [goals, setGoals] = useState({});\n const [referrer, setReferrer] = useState(null);\n const [showVoterModal, setShowVoterModal] = useState(start === '1');\n const [showReferralModal, setShowReferralModal] = useState(false);\n\n useEffect(() => {\n setGoalsLoading(true);\n\n activities\n .getActivityGoals({ activitySlug, campaignSlug })\n .then(({ data }) => {\n setGoals(data);\n })\n .finally(() => setGoalsLoading(false));\n }, [activitySlug, campaignSlug]);\n\n useEffect(() => {\n if (referral_hash) {\n setReferrerLoading(true);\n\n axios\n .get(\n `/api/v2/client/voter_registrations/campaigns/${campaignSlug}/referrer/${referral_hash}`,\n )\n .then(({ data }) => {\n setReferrer(data);\n })\n .finally(() => setReferrerLoading(false));\n }\n }, [activitySlug, campaignSlug, referral_hash]);\n\n function openVoterModal() {\n setShowVoterModal(true);\n }\n\n function openReferralModal() {\n setShowReferralModal(true);\n }\n\n function closeModal() {\n setShowReferralModal(false);\n setShowVoterModal(false);\n }\n\n if (!activity || !team || goalsLoading || referrerLoading) {\n return (\n <div className=\"flex-row justify-content-center mt-4\">\n <Spin indicator={<LoadingOutlined style={{ fontSize: 24 }} spin />} />\n </div>\n );\n }\n\n if (activity.campaign?.fan_out_registration_enabled) {\n return <FanOutActivity activity={activity} team={team} />;\n }\n\n // Headcount registration activity\n if (\n activity?.campaign?.headcount_registration_enabled &&\n activity?.type === 'RegistrationActivity'\n ) {\n return <HeadcountRegistrationActivity activity={activity} team={team} />;\n }\n\n // Regular voter registration activity\n return (\n <StyledTeamActivity>\n <ScrollToTop />\n\n <VoterRegistration\n activity={activity}\n closeModal={closeModal}\n modalVoterOpen={showVoterModal}\n openVoterModal={openVoterModal}\n modalReferralOpen={showReferralModal}\n openReferralModal={openReferralModal}\n team={team}\n />\n\n <ActivityHero\n activity={activity}\n campaign={activity.campaign}\n goals={goals}\n handleGetStarted={openVoterModal}\n handleGetReferral={openReferralModal}\n team={team}\n referrer={referrer}\n />\n\n <AboutUsSection\n background={false}\n description={team.action_page_description}\n mediaContentType={team.about_media_type}\n mediaUrl={team.about_media_url}\n title={t('campaign.activity.take_action')}\n />\n\n <IncentivesSection\n incentives={activity.activity_incentives_attributes}\n pageType={'team'}\n campaign={activity?.campaign}\n />\n\n {![784, 3876].includes(activity?.campaign?.id) && (\n <VolunteerLeaderboardSection activity={activity} pageType={'team'} team={team} />\n )}\n </StyledTeamActivity>\n );\n};\n\nTeamActivityVoterRegistrationPage.propTypes = {\n activity: PropTypes.object,\n team: PropTypes.object,\n};\n\nexport default TeamActivityVoterRegistrationPage;\n","import React, { useState } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { Spin } from 'antd';\nimport { LoadingOutlined } from '@ant-design/icons';\n\nimport SurveyActivity from '@web/components/SurveyActivity';\nimport { user, teams } from '@web/services/api';\nimport TeamActivityVoterRegistrationPage from './TeamActivityVoterRegistrationPage';\n\nconst TeamActivityPage = () => {\n const { activitySlug, campaignSlug, teamSlug } = useParams();\n const [activity, setActivity] = useState(null);\n const [team, setTeam] = useState(null);\n\n React.useEffect(() => {\n user.getPublicActivity(campaignSlug, activitySlug).then(({ data: activity }) => {\n setActivity(activity);\n });\n }, [activitySlug, campaignSlug]);\n\n React.useEffect(() => {\n teams.getTeamBySlug({ slug: teamSlug }).then(({ data }) => {\n setTeam(data.data);\n });\n }, [teamSlug]);\n\n if (!activity || !team) {\n return (\n <div className=\"flex-row justify-content-center mt-4\">\n <Spin indicator={<LoadingOutlined style={{ fontSize: 24 }} spin />} />\n </div>\n );\n }\n\n // Team Survey activity\n if (activity.type === 'SurveyActivity') {\n return <SurveyActivity activity={activity} team={team} />;\n }\n\n // All VR activities are handled within this component\n return <TeamActivityVoterRegistrationPage activity={activity} team={team} />;\n};\n\nTeamActivityPage.propTypes = {};\n\nexport default TeamActivityPage;\n","import { Button, message } from 'antd';\nimport _ from 'lodash';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { user as userAPI, campaigns as campaignsAPI } from 'web/services/api';\nimport { AuthContext } from 'web/utils/context';\nimport Text from '../common/Text';\n\nconst Unlock = () => {\n const { t } = useTranslation();\n const { user, setUser } = useContext(AuthContext);\n const [campaign, setCampaign] = useState(null);\n\n useEffect(() => {\n if (user && user.locked_campaign_id) {\n campaignsAPI.getCampaign({ id: user.locked_campaign_id }).then(resp => {\n setCampaign(_.get(resp, 'data.data'));\n });\n }\n }, [user]);\n\n const name = _.get(campaign, 'name', 'a campaign');\n\n return (\n <>\n <h3>{t('settings.unlock.header')}</h3>\n\n <Text>{t('settings.unlock.description', { name })}</Text>\n\n <Button\n type=\"primary\"\n onClick={e => {\n e.preventDefault();\n userAPI\n .unlockAccount()\n .then(() => {\n message.success(t('settings.unlock.success_message'));\n return userAPI.getProfile();\n })\n .then(data => {\n const user = _.get(data, 'data');\n if (user) {\n setUser(user);\n }\n })\n .catch(() => {\n message.error(t('settings.unlock.error_message'));\n });\n }}\n >\n {t('settings.unlock.unlock_account')}\n </Button>\n </>\n );\n};\n\nexport default Unlock;\n","import { PhoneOutlined, EnvironmentOutlined } from '@ant-design/icons';\nimport { Button, Form, Input, message, Select } from 'antd';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { user as userAPI } from 'web/services/api';\nimport { AuthContext } from 'web/utils/context';\nimport { setAppLanguage } from '../i18n';\n\nconst UserPreferences = () => {\n const { t } = useTranslation();\n const { user, setUser } = useContext(AuthContext);\n const [firstName, setFirstName] = useState('');\n const [lastName, setLastName] = useState('');\n const [teamName, setTeamName] = useState(null);\n const [phone, setPhone] = useState(null);\n const [zipCode, setZipCode] = useState(null);\n const [locale, setLocale] = useState(null);\n const [profileLoaded, setProfileLoaded] = useState(false);\n\n useEffect(() => {\n if (user) {\n const {\n first_name,\n last_name,\n team_name,\n phone,\n supplied_zip_code,\n locale: initialLocale,\n } = user;\n setFirstName(first_name);\n setLastName(last_name);\n setTeamName(team_name);\n setPhone(phone);\n setZipCode(supplied_zip_code);\n setLocale(initialLocale);\n setProfileLoaded(true);\n }\n }, [user]);\n\n const submit = async () => {\n userAPI\n .updateProfile({ firstName, lastName, locale, phone, teamName, zipCode })\n .then(({ data: { data } }) => {\n message.success(t('settings.updated_message'));\n setAppLanguage(locale);\n setUser(data); // Update AuthContext user\n })\n .catch(() => {\n message.error(t('errors.action_failed'));\n });\n };\n\n const onPhoneChangeHandler = ({ target: { value: number } }) => {\n // Add `+` prefix if user starts entering digits\n if (/^\\d{1}$/.test(number)) {\n setPhone(`+1${number}`);\n return;\n }\n\n // Only allow numbers, starting with + symbol\n if (/^$|^(?:\\+1)\\d*$/.test(number)) {\n setPhone(number);\n return;\n }\n };\n\n const onZipChangeHandler = ({ target: { value: zip } }) => {\n if (/^\\d{0,5}$/.test(zip)) {\n setZipCode(zip);\n return;\n }\n };\n\n return (\n <>\n <h3>{t('settings.header')}</h3>\n <Form>\n <Form.Item>\n <Input\n placeholder={t('placeholders.first_name')}\n value={firstName}\n onChange={e => setFirstName(e.target.value)}\n />\n </Form.Item>\n <Form.Item>\n <Input\n placeholder={t('placeholders.last_name')}\n value={lastName}\n onChange={e => setLastName(e.target.value)}\n />\n </Form.Item>\n <Form.Item>\n <Input\n placeholder={t('placeholders.team_name')}\n value={teamName}\n onChange={e => setTeamName(e.target.value)}\n />\n </Form.Item>\n <Form.Item>\n <Input\n placeholder={t('placeholders.phone_number')}\n addonBefore={<PhoneOutlined />}\n value={phone}\n onChange={onPhoneChangeHandler}\n />\n </Form.Item>\n <Form.Item>\n <Input\n placeholder={t('placeholders.zip')}\n addonBefore={<EnvironmentOutlined />}\n value={zipCode}\n onChange={onZipChangeHandler}\n />\n </Form.Item>\n <Form.Item>\n <Select\n defaultValue=\"en\"\n style={{ minWidth: '150px', width: '50%' }}\n onChange={setLocale}\n value={locale}\n >\n <Select.Option value=\"en\">English</Select.Option>\n <Select.Option value=\"es\">Español</Select.Option>\n <Select.Option value=\"ko\">í•œêµì–´</Select.Option>\n </Select>\n </Form.Item>\n <Form.Item>\n <Button type=\"primary\" block disabled={!profileLoaded} onClick={submit}>\n {t('common.save')}\n </Button>\n </Form.Item>\n </Form>\n </>\n );\n};\n\nexport default UserPreferences;\n","import React from 'react';\nimport { users } from '../../services/api';\n\nfunction useHasContacts() {\n const [hasContacts, setHasContacts] = React.useState(false);\n const [loading, setLoading] = React.useState(true);\n\n React.useEffect(() => {\n users\n .getContacts()\n .then(({ data }) => {\n if (data.data.length > 0) {\n setHasContacts(true);\n }\n setLoading(false);\n })\n .catch(() => setLoading(false));\n }, []);\n\n return { hasContacts, loading };\n}\n\nexport default useHasContacts;\n","import { Button, Spin } from 'antd';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { AuthContext } from 'web/utils/context';\nimport { useDocumentTitle } from '../../hooks/useDocumentTitle';\nimport { track } from '../../services/analytics';\nimport AppContainer from '../AppContainer';\nimport AppHeader from '../AppHeader';\nimport SyncContactsModal from '../ContactSync/components/SyncContactsModal';\nimport MaxWidthContainer from '../common/MaxWidthContainer';\nimport Text from '../common/Text';\nimport Unlock from './Unlock';\nimport UserPreferences from './UserPreferences';\nimport useHasContacts from './useHasContacts';\n\nconst Settings = () => {\n const { t } = useTranslation();\n useDocumentTitle(t('titles.settings'));\n const { hasContacts, loading } = useHasContacts();\n const [syncContactsModalVisible, setSyncContactsModalVisible] = useState(false);\n const { isLockedToCampaign } = useContext(AuthContext);\n\n // Track the page view\n useEffect(() => {\n track('VIEW_SETTINGS_SCREEN');\n }, []);\n\n return (\n <>\n <AppHeader title={t('titles.settings')} />\n <AppContainer>\n <MaxWidthContainer>\n <UserPreferences />\n\n <hr style={{ borderColor: '#b9b9b9' }} />\n\n {isLockedToCampaign && (\n <>\n <Unlock />\n\n <hr style={{ borderColor: '#b9b9b9' }} />\n </>\n )}\n\n <h3>{t('contact.sync.header')}</h3>\n <Text>{t('contact.sync.what')}</Text>\n <Text>{t('contact.sync.privacy')}</Text>\n {loading && <Spin />}\n {!loading && (\n <Button type=\"primary\" onClick={() => setSyncContactsModalVisible(true)}>\n {hasContacts ? t('contact.sync.resync_contacts') : t('contact.sync.sync_contacts')}\n </Button>\n )}\n </MaxWidthContainer>\n\n <SyncContactsModal\n syncContactsModalVisible={syncContactsModalVisible}\n setSyncContactsModalVisible={setSyncContactsModalVisible}\n />\n </AppContainer>\n </>\n );\n};\n\nSettings.propTypes = {};\n\nexport default Settings;\n","import PropTypes from 'prop-types';\nimport React, { useEffect, useState, useContext } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { campaigns as campaignsAPI, users as usersAPI } from '@web/services/api';\nimport { StateContext, AuthContext } from '../utils/context';\nimport { useWindowVisibility } from '@web/hooks';\nimport { useSelector } from 'react-redux';\n\nconst UNREAD_MESSAGE_THREADS_COUNT_POLLING_INTERVAL = 120000;\n\nconst StateProvider = ({ children }) => {\n // Causes (issues) for activity filters throught the app\n const [causes, setCauses] = useState([]);\n const { user } = useContext(AuthContext);\n const { selectedCampaign } = useSelector(state => state.oneCampaign);\n const timerIntervalRef = React.useRef(null);\n const windowVisible = useWindowVisibility();\n const location = useLocation();\n\n // Unread messages count is used to display number next to Inbox menu item and within the Inbox\n const [unreadMessagesCount, setUnreadMessagesCount] = useState();\n\n useEffect(() => {\n campaignsAPI\n .getCauses()\n .then(({ data: { data: causes } }) => causes)\n .then(setCauses);\n }, []);\n\n /**\n * When message is read in between polling for unread counts we want to update counts manually.\n * This function allows for that to happen.\n */\n const decreaseUnreadMessagesCount = React.useCallback(() => {\n // prevent NAN when prev state is undefined\n setUnreadMessagesCount(c => Math.max((c ?? 0) - 1, 0));\n }, [setUnreadMessagesCount]);\n\n const getUnreadMessagesCount = React.useCallback(async campaignId => {\n return await usersAPI\n .getCurrentUnreadMessageThreadsCount(campaignId)\n .then(({ data }) => {\n return data?.data?.unread_message_threads_count;\n })\n .catch(() => {\n return 0;\n });\n }, []);\n\n // Poll for unread messages (once every 60 seconds)\n useEffect(() => {\n async function pollForChanges() {\n // Stop polling for messages when user is logged out.\n if (!user) {\n clearInterval(timerIntervalRef.current);\n return;\n }\n\n // Only refresh when the browser window tab is in focus and campaign is picked\n if (windowVisible && selectedCampaign?.id) {\n const count = await getUnreadMessagesCount(selectedCampaign?.id);\n setUnreadMessagesCount(count);\n }\n }\n\n // Run it initially\n pollForChanges();\n\n // Set interval to periodically poll for new messages\n const intervalFn = setInterval(pollForChanges, UNREAD_MESSAGE_THREADS_COUNT_POLLING_INTERVAL);\n timerIntervalRef.current = intervalFn;\n\n // Set cleanup fn\n return () => clearInterval(intervalFn);\n }, [\n getUnreadMessagesCount,\n setUnreadMessagesCount,\n user,\n windowVisible,\n location,\n selectedCampaign?.id,\n ]);\n\n return (\n <StateContext.Provider value={{ causes, decreaseUnreadMessagesCount, unreadMessagesCount }}>\n {children}\n </StateContext.Provider>\n );\n};\n\nStateProvider.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nexport default StateProvider;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nconst Wrapper = styled.div``;\n\nconst Term = styled.span`\n font-family: ${({ theme }) => theme.fonts.bold};\n`;\n\nconst Description = styled.span`\n ${({ vertical }) =>\n vertical\n ? `\n display: block;\n margin-top: 6px;\n `\n : `\n padding-left: 5px;\n\n @media screen and (max-width: 767px) {\n padding-left: 0;\n display: block;\n margin-top: 6px;\n }\n `}\n`;\n\nconst Help = styled.div`\n font-size: 0.75em;\n line-height: 1.4;\n margin-top: 0.5em;\n`;\n\nconst Definition = ({ term, description, help, vertical, ...rest }) => (\n <Wrapper {...rest}>\n <Term>{term}</Term>\n {description && <Description vertical={vertical}>{description}</Description>}\n {help && <Help>{help}</Help>}\n </Wrapper>\n);\n\nDefinition.propTypes = {\n description: PropTypes.node,\n help: PropTypes.string,\n term: PropTypes.string.isRequired,\n vertical: PropTypes.bool,\n};\n\nexport default Definition;\n","import styled from 'styled-components';\nimport ImpactiveButton from '../ImpactiveButton';\n\nexport const Section = styled.div`\n font-size: 16px;\n line-height: 1.25;\n margin-top: 1.5em;\n padding-bottom: 2em;\n\n &:not(:last-child) {\n border-bottom: 1px solid ${({ theme }) => theme.colors.borderGray};\n margin-bottom: 2em;\n }\n`;\n\nexport const Heading = styled.h4`\n color: #000;\n font-size: 1.25em;\n font-family: ${({ theme }) => theme.fonts.semibold};\n line-height: 1.3;\n text-transform: capitalize;\n margin: 0;\n`;\n\nexport const Description = styled.div`\n font-size: 16px;\n line-height: 22px;\n opacity: 0.85;\n margin: 8px 0 12px;\n`;\n\nexport const DefinitionList = styled.div`\n > * {\n margin-top: 1em;\n }\n`;\n\nexport const Link = styled.a`\n display: inline-block;\n font-family: ${({ theme }) => theme.fonts.boldItalic};\n`;\n\nexport const BoldText = styled.span`\n font-family: ${({ theme }) => theme.fonts.bold};\n ${({ danger, theme }) => danger && `color: ${theme.colors.red};`}\n`;\n\nexport const TeamSection = styled(Section)`\n font-size: 18px;\n`;\n\nexport const TeamButtonsContainer = styled.div`\n margin-top: 20px;\n`;\n\nexport const TeamInviteLink = styled.div`\n font-size: 14px;\n opacity: 0.6;\n margin: 10px 0 16px;\n`;\n\nexport const ButtonsRow = styled.div`\n margin-top: 0.5rem;\n margin-bottom: -10px;\n\n > * {\n margin-bottom: 10px;\n\n &:not(:last-child) {\n margin-right: 10px;\n }\n }\n\n ${({ fullWithOnMobile }) =>\n fullWithOnMobile &&\n `\n @media screen and (max-width: 767px) {\n > *, button {\n display: block;\n width: 100%;\n }\n }\n `}\n`;\n\nexport const ShareButtonInner = styled(ImpactiveButton).attrs({ forwardedAs: 'span' })`\n display: flex;\n align-items: center;\n`;\n","import {\n LoadingOutlined,\n TwitterOutlined,\n FacebookOutlined,\n MailOutlined,\n UploadOutlined,\n} from '@ant-design/icons';\nimport { Alert, Spin, Row, Col, Tooltip, message } from 'antd';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/es';\nimport PropTypes from 'prop-types';\nimport queryString from 'query-string';\nimport React, { useEffect, useState, useCallback } from 'react';\nimport Clipboard from 'react-clipboard.js';\nimport { useTranslation } from 'react-i18next';\nimport { FacebookShareButton, TwitterShareButton } from 'react-share';\nimport { track, trackPageViewWithDynamicIDs } from '../../services/analytics';\nimport { campaigns, users, teams } from '../../services/api';\nimport ImpactiveButton from '../ImpactiveButton';\nimport VoterRegistrationTemplate from '../templates/VoterRegistrationTemplate';\nimport Definition from './Definition';\nimport {\n Section,\n Heading,\n Description,\n DefinitionList,\n Link,\n BoldText,\n TeamSection,\n ButtonsRow,\n ShareButtonInner,\n} from './styles';\n\nconst StateVotingInformation = props => {\n const { campaignId, contactId } = props.match.params; // can be either campaign `id` or `slug`\n const { h, referral_hash, state_abbrev, can_vote } = queryString.parse(props.location.search);\n const { t } = useTranslation();\n\n const locale = window.localStorage.getItem('locale');\n\n const [campaign, setCampaign] = useState({});\n const [state_info, setStateInfo] = useState({});\n const [team, setTeam] = useState();\n const [loading, setLoading] = useState(true);\n\n const hostname = `${window.location.protocol}//${window.location.host}`;\n const query = queryString.stringify({ contact_referral_id: contactId, referral_hash });\n const readyToVoteLink = `${hostname}/campaigns/${campaignId}/ready_to_vote?${query}`;\n\n const formatDate = str => {\n if (str) {\n return dayjs(str, 'MM-DD-YY').locale(locale).format('MMMM D');\n }\n };\n\n useEffect(() => {\n track('VIEW_STATE_VOTING_INFORMATION');\n setLoading(true);\n Promise.all([\n campaigns.getPublicCampaign({ id: campaignId }),\n campaigns.getStateInfo({ state_abbrev: state_abbrev }),\n ])\n .then(([campaignResponse, stateResponse]) => {\n const campaign = campaignResponse.data.data;\n setCampaign(campaign);\n setStateInfo(stateResponse.data);\n\n trackPageViewWithDynamicIDs({\n fbPixelId: campaign.fb_pixel_id,\n gaTrackingId: campaign.ga_tracking_id,\n snapchatPixelId: campaign.snapchat_pixel_id,\n });\n\n if (referral_hash) {\n return users\n .getUserByReferralHash(referral_hash)\n .then(({ data: { data: user } }) => {\n return teams.getTeam({ filters: { campaign_id: campaign.id }, id: user.id });\n })\n .then(({ data: { data: team } }) => setTeam(team))\n .catch(error => {\n // Catch error and make this promise always resolved,\n // so we can render this view at least\n console.error('get team data >', error);\n });\n }\n\n return;\n })\n .then(() => setLoading(false));\n }, [campaignId, contactId, h, referral_hash, state_abbrev]);\n\n const handleNativeShare = useCallback(() => {\n if (navigator.share) {\n navigator.share({ url: readyToVoteLink }).catch(console.error);\n }\n }, [readyToVoteLink]);\n\n if (loading) {\n return (\n <div className=\"flex-row justify-content-center mt-4\">\n <Spin indicator={<LoadingOutlined style={{ fontSize: 24 }} spin />} />\n </div>\n );\n }\n\n const shareNowVisible = !!navigator.share;\n const inviteSection = (\n <TeamSection id=\"team-section\">\n <Heading>{t('Triple Your Vote')}</Heading>\n <Description style={{ marginBottom: 20 }}>\n {campaign.rewards || t('pledge_to_vote.invite_description')}\n </Description>\n <ButtonsRow fullWithOnMobile>\n {shareNowVisible && (\n <ImpactiveButton onClick={handleNativeShare}>\n <UploadOutlined /> {t('voting_information.share.share_now')}\n </ImpactiveButton>\n )}\n {!shareNowVisible && (\n <Clipboard\n component=\"span\"\n data-clipboard-text={readyToVoteLink}\n onSuccess={() => message.info(t('common.copied_to_clipboard'))}\n >\n <Tooltip placement=\"top\" title={readyToVoteLink}>\n <ImpactiveButton>{t('voting_information.share.copy_share_link')}</ImpactiveButton>\n </Tooltip>\n </Clipboard>\n )}\n <FacebookShareButton url={readyToVoteLink}>\n <ShareButtonInner>\n <FacebookOutlined /> {t('voting_information.share.facebook')}\n </ShareButtonInner>\n </FacebookShareButton>\n <TwitterShareButton url={readyToVoteLink}>\n <ShareButtonInner>\n <TwitterOutlined /> {t('voting_information.share.twitter')}\n </ShareButtonInner>\n </TwitterShareButton>\n <ImpactiveButton\n onClick={() =>\n window.open(`mailto:?body=${encodeURIComponent(readyToVoteLink)}`, '_blank')\n }\n >\n <MailOutlined /> {t('voting_information.share.email')}\n </ImpactiveButton>\n </ButtonsRow>\n </TeamSection>\n );\n\n return (\n <VoterRegistrationTemplate\n campaign={campaign}\n team={team}\n postmatesEnabled={campaign.postmates_integration_enabled}\n stepCount={2}\n currentStep={2}\n title={\n can_vote === 'true' ? t('voting_information.title_with_state', { state: state_abbrev }) : ''\n }\n instruction={can_vote === 'true' ? t('voting_information.disclaimer') : ''}\n data-testid=\"voting-information\"\n >\n {can_vote === 'true' && (\n <Section>\n <Heading style={{ marginBottom: 10 }}>{t(' Vote by Mail or Absentee')}</Heading>\n <Row gutter={60}>\n <Col span={24} md={24}>\n {state_info.can_vbm && state_info.automatic_vbm && (\n <Definition\n term={t('Automatic Vote By Mail')}\n description={<p>{t('voting_information.automatic_vbm_instruction')}</p>}\n />\n )}\n {state_info.can_vbm && (\n <Definition\n term={t('Return Deadline')}\n description={<p>{state_info.vbm_return_deadline_description}</p>}\n />\n )}\n {state_info.can_vbm && (\n <Definition\n term={t('Excuse Info')}\n description={<p>{state_info.vbm_excuse_info}</p>}\n />\n )}\n <div className=\"mt-2\">\n <Link\n target=\"_blank\"\n disabled={!state_info.ballot_tracker}\n href={state_info.ballot_tracker}\n >\n {t('Absentee Ballot Tracker')}\n </Link>\n </div>\n </Col>\n </Row>\n\n <Heading style={{ marginTop: 30 }}>{t('Vote In Person')}</Heading>\n <Row gutter={60}>\n <Col span={24} md={24}>\n {state_info.early_vote_start && state_info.early_vote_end && (\n <DefinitionList>\n <Definition\n term={t('voting_information.early_voting_starts')}\n description={formatDate(state_info.early_vote_start)}\n />\n <Definition\n term={t('voting_information.early_voting_ends')}\n description={formatDate(state_info.early_vote_end)}\n />\n </DefinitionList>\n )}\n\n {!(state_info.early_vote_start && state_info.early_vote_end) && (\n <DefinitionList>\n <div>\n <BoldText>\n {t('voting_information.cannot_early_voting_with_state', {\n state: state_abbrev,\n })}\n </BoldText>\n </div>\n </DefinitionList>\n )}\n <div style={{ marginTop: 20 }}>\n <Link\n target=\"_blank\"\n disabled={!state_info.in_person_early_voting_link}\n href={state_info.in_person_early_voting_link}\n >\n {t('In Person Early Voting Rules')}\n </Link>\n </div>\n <div style={{ marginTop: 20 }}>\n <Link\n target=\"_blank\"\n disabled={!state_info.polling_place_locator}\n href={state_info.polling_place_locator}\n >\n {t('Polling Place Locator')}\n </Link>\n </div>\n </Col>\n </Row>\n </Section>\n )}\n\n {inviteSection}\n {can_vote === 'true' && (\n <Alert\n message=\"Information was collected from secretaries of state offices, monitoring official websites, and local election officials. If you notice any updated voting rules not published on this website please email support@impactive.io.\"\n type=\"info\"\n showIcon\n />\n )}\n </VoterRegistrationTemplate>\n );\n};\n\nStateVotingInformation.propTypes = {\n location: PropTypes.shape({\n search: PropTypes.string.isRequired,\n }).isRequired,\n match: PropTypes.shape({\n params: PropTypes.shape({\n campaignId: PropTypes.string.isRequired,\n contactId: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n};\n\nexport default StateVotingInformation;\n","import { Button, message, Tooltip } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport Clipboard from 'react-clipboard.js';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport { media } from '../../styles/theme';\nimport Metric from '../CampaignLeaderboard/Metric';\nimport Loading from '../common/Loading';\nimport { Divider, StyledTitle } from './index';\n\nconst Wrapper = styled.div`\n flex: 1;\n\n ${media.lg} {\n padding-right: 32px;\n hr {\n display: none;\n }\n }\n`;\n\nconst Metrics = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n`;\n\nconst StyledMetric = styled(Metric)`\n flex: 0 33% !important;\n`;\n\nconst InvitesContainer = styled.div``;\n\nconst StyledButton = styled(Button)`\n text-transform: uppercase;\n font-family: ${({ theme }) => theme.fonts.blackItalic};\n letter-spacing: 1px;\n`;\n\nconst TeamJoinDescription = styled.div`\n margin: 18px 0;\n`;\n\nconst TeamCode = styled.div`\n color: ${({ theme }) => theme.colors.link};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 28px;\n margin: 12px 0;\n`;\n\nconst TeamActivity = ({ campaign, team, loading }) => {\n const { t } = useTranslation();\n\n if (!team) return null;\n\n if (loading) {\n return (\n <Wrapper>\n <StyledTitle>{t('teams.activity.title')}</StyledTitle>\n <Loading centered />\n </Wrapper>\n );\n }\n\n const { members, actions, rank, messages, reports, points, invite_link, team_leader, join_code } =\n team;\n const teamLeaderEmailHash = team_leader?.email_hash || '';\n const {\n name: campaignName,\n slug,\n registration_feature_enabled: showRegistrationLink,\n } = campaign || {};\n\n const hostname = `${window.location.protocol}//${window.location.host}`;\n const queryParams = teamLeaderEmailHash ? `?referral_hash=${teamLeaderEmailHash}` : '';\n const checkRegistrationLink = `${hostname}/campaigns/${slug}/check_registration${queryParams}`;\n const sampleInvitation = t('teams.invites.sample_invitation', {\n code: join_code,\n link: invite_link,\n });\n\n return (\n <Wrapper>\n <StyledTitle>\n {t('teams.activity.title')}\n {!campaign && <small>{t('teams.activity.summary')}</small>}\n </StyledTitle>\n\n <Metrics>\n <StyledMetric large label={t('teams.activity.labels.members')} value={members} />\n <StyledMetric large label={t('teams.activity.labels.actions')} value={actions} />\n {campaign ? (\n <StyledMetric\n large\n ordinal\n label={`${t('teams.activity.labels.place_for')} ${campaignName}`}\n value={rank}\n />\n ) : (\n <StyledMetric large label={t('teams.activity.labels.ranking')} value=\"-\" />\n )}\n <StyledMetric large label={t('teams.activity.labels.messages')} value={messages} />\n <StyledMetric large label={t('teams.activity.labels.reports')} value={reports} />\n <StyledMetric large label={t('teams.activity.labels.points')} value={points} />\n </Metrics>\n <Divider />\n <InvitesContainer>\n <StyledTitle>{t('teams.invites.to_team_title')}</StyledTitle>\n <TeamJoinDescription>{t('teams.invites.join_disclaimer')}</TeamJoinDescription>\n <Clipboard\n component=\"span\"\n className=\"anticon\"\n data-clipboard-text={sampleInvitation}\n onSuccess={() => message.info(t('activity.share.copied_to_clipboard'))}\n >\n <Tooltip\n placement=\"top\"\n title={campaign ? sampleInvitation : t('teams.invites.select_campaign_message')}\n >\n <StyledButton type=\"primary\" disabled={!campaign}>\n {t('teams.invites.copy_sample_invitation')}\n </StyledButton>\n </Tooltip>\n </Clipboard>\n {join_code && (\n <>\n <TeamJoinDescription>\n {t('teams.invites.alternative_join_disclaimer')}\n </TeamJoinDescription>\n <TeamCode>{join_code}</TeamCode>\n </>\n )}\n {campaign && showRegistrationLink && (\n <>\n <StyledTitle>{t('teams.invites.to_check_registration_title')}:</StyledTitle>\n <Clipboard\n component=\"span\"\n className=\"anticon\"\n data-clipboard-text={checkRegistrationLink}\n onSuccess={() => message.info(t('activity.share.copied_to_clipboard'))}\n >\n <Tooltip placement=\"top\" title={checkRegistrationLink}>\n <StyledButton type=\"primary\" disabled={!campaign}>\n {t('teams.invites.copy_registration')}\n </StyledButton>\n </Tooltip>\n </Clipboard>\n </>\n )}\n </InvitesContainer>\n <Divider />\n </Wrapper>\n );\n};\n\nTeamActivity.propTypes = {\n campaign: PropTypes.shape({\n campaign_name: PropTypes.string,\n slug: PropTypes.string,\n }),\n loading: PropTypes.bool,\n team: PropTypes.shape({\n actions: PropTypes.number,\n invite_link: PropTypes.string,\n join_code: PropTypes.string,\n members: PropTypes.number,\n messages: PropTypes.number,\n points: PropTypes.number,\n rank: PropTypes.number,\n reports: PropTypes.number,\n team_leader: PropTypes.shape({\n email_hash: PropTypes.string,\n }),\n }).isRequired,\n};\n\nTeamActivity.defaultProps = {\n loading: false,\n};\n\nexport default TeamActivity;\n","import { Avatar } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport { kFormatter } from '../../utils/string';\n\nconst Wrapper = styled.div`\n display: flex;\n ${({ detailedView }) => detailedView && 'margin: 12px 0'}\n`;\n\nconst StyledAvatar = styled(Avatar)`\n margin: 8px 12px 8px 0 !important;\n`;\n\nconst Content = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: ${({ theme }) => theme.colors.black};\n line-height: 1.25;\n margin-left: 4px;\n`;\n\nconst BoldedName = styled.div`\n font-family: ${({ theme }) => theme.fonts.bold};\n`;\n\nconst RegularName = styled.div`\n font-size: 18px;\n`;\n\nconst TeamMember = ({ user, detailedView, ...rest }) => {\n const { t } = useTranslation();\n const {\n first_name: firstName,\n last_name: lastName,\n profile_url: profileUrl,\n actions,\n points,\n } = user;\n\n // Render different component for name conditionally\n const Name = detailedView ? BoldedName : RegularName;\n\n // Stats actions & points text (only calculated for detailed view)\n let stats = '';\n if (detailedView) {\n stats +=\n `${kFormatter(actions)} ${t('teams.action', { count: actions })}` +\n ` - ${kFormatter(points)} ${t('teams.point', { count: points })}`;\n }\n\n // Fallback fullname\n const fullname = firstName || lastName ? `${firstName} ${lastName}` : t('teams.anonymous_user');\n\n return (\n <Wrapper detailedView {...rest}>\n <StyledAvatar src={profileUrl} size={detailedView ? 70 : 60}>\n {firstName}\n </StyledAvatar>\n <Content>\n <Name>{fullname}</Name>\n {detailedView && <div>{stats}</div>}\n </Content>\n </Wrapper>\n );\n};\n\nTeamMember.propTypes = {\n detailedView: PropTypes.bool,\n user: PropTypes.shape({\n actions: PropTypes.number,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n points: PropTypes.number,\n profile_url: PropTypes.string,\n }).isRequired,\n};\n\nTeamMember.defaultProps = {\n detailedView: false,\n};\n\nexport default TeamMember;\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport InfiniteScroll from 'react-infinite-scroller';\nimport AppContainer from '../AppContainer';\nimport AppHeader from '../AppHeader';\nimport Loading from '../common/Loading';\nimport MaxWidthContainer from '../common/MaxWidthContainer';\nimport Title from '../common/Title';\nimport TeamActivity from './TeamActivity';\nimport TeamMember from './TeamMember';\nimport { Avatar } from 'antd';\n\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { useDocumentTitle } from '../../hooks/useDocumentTitle';\nimport { toObject, usePaginatedApi } from '../../hooks/usePaginatedApi';\nimport { teams } from '../../services/api';\nimport { colors, media } from '../../styles/theme';\n\nconst HeaderContainer = styled.div`\n width: 100%;\n`;\n\nconst TeamHeader = styled.div`\n background-color: #061240;\n display: flex;\n justify-content: space-between;\n`;\n\nconst StyledAvatar = styled(Avatar)`\n margin: 18px 18px 18px 24px !important;\n border: 3px solid white;\n`;\n\nconst TeamWrapper = styled.div`\n display: flex;\n color: white;\n`;\n\nconst TeamInfo = styled.div`\n margin: auto;\n`;\n\nconst TeamLeader = styled.div`\n color: #dddddd;\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 14px;\n letter-spacing: 1px;\n text-transform: uppercase;\n`;\n\nconst TeamName = styled.div`\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 28px;\n line-height: 1.2;\n`;\n\nconst TeamContainer = styled.div`\n display: flex;\n justify-content: space-between;\n\n ${media.nlg} {\n flex-direction: column;\n }\n`;\n\nconst TopMembersSection = styled.div`\n flex: 1;\n`;\n\nconst MembersSection = styled.div`\n display: flex;\n flex-wrap: wrap;\n`;\n\nconst StyledTeamMember = styled(TeamMember)`\n flex: 0 50%;\n\n ${media.nlg} {\n flex: 0 100%;\n }\n`;\n\nexport const StyledTitle = styled(Title)`\n margin: 24px 0 12px 0;\n font-size: 24px;\n\n small {\n color: ${({ theme }) => theme.colors.mediumGray};\n margin-left: 12px;\n font-size: 18px;\n }\n`;\n\nexport const Divider = styled.hr`\n border-bottom: 2px solid ${colors.borderGray};\n`;\n\nconst TeamDetail = () => {\n const { t } = useTranslation();\n const title = t('teams.leaderboard.title');\n useDocumentTitle(title);\n const { teamId } = useParams();\n const { search } = useLocation();\n const campaign = useSelector(state => state.oneCampaign.selectedCampaign);\n\n const queryParams = new URLSearchParams(search);\n const id = queryParams.get('campaign_id');\n const [filters] = useState({\n campaign_id: id ? parseInt(id, 10) : campaign?.id,\n });\n\n const [team, setTeam] = useState();\n const [loading, setLoading] = useState(true);\n\n // Pagination object for team members\n const membersPaginator = toObject(usePaginatedApi(teams.getTeamMembers, teamId, filters));\n const { items: members } = membersPaginator;\n\n const loadTeam = useCallback(() => {\n setLoading(true);\n teams\n .getTeam({ filters, id: teamId })\n .then(({ data: { data } }) => {\n setTeam(data);\n })\n .finally(() => {\n setLoading(false);\n });\n }, [teamId, filters]);\n\n // Load team and fetch team members on page load & any filter changes\n useEffect(() => {\n loadTeam();\n membersPaginator.resetPagination({ refetch: true });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [loadTeam, teamId, filters]);\n\n // Infinite Scroller parent reference\n const [scrollRef, setScrollRef] = useState(null);\n\n // Destructure team info\n const {\n name: teamName,\n team_leader: { first_name: leaderFirstName, last_name: leaderLastName } = {},\n profile_url: teamProfileUrl,\n } = team || {};\n\n // We want to disable Join functionality for for personal team\n\n const teamCampaign = team?.campaigns.find(({ id }) => id === filters.campaign_id);\n\n const teamLeaderName =\n leaderFirstName || leaderLastName ? `${leaderFirstName} ${leaderLastName}` : `Anonymous's`;\n\n return (\n <>\n <AppHeader title={title} extra={teamName} />\n <AppContainer>\n <HeaderContainer>\n <TeamHeader>\n <TeamWrapper>\n <StyledAvatar src={teamProfileUrl} size={75}>\n {teamName}\n </StyledAvatar>\n <TeamInfo>\n <TeamLeader>{t('teams.team', { leader: teamLeaderName })}</TeamLeader>\n <TeamName>{teamName}</TeamName>\n </TeamInfo>\n </TeamWrapper>\n </TeamHeader>\n </HeaderContainer>\n <MaxWidthContainer>\n {team && (\n <TeamContainer>\n <TeamActivity campaign={teamCampaign} team={team} loading={loading} />\n <TopMembersSection>\n <StyledTitle>\n {t('teams.top_members')} <small>{t('teams.last_30_days')}</small>\n </StyledTitle>\n {loading ? (\n <Loading centered />\n ) : (\n <div>\n {team.top_members.map(user => (\n <TeamMember key={user.id} user={user} detailedView />\n ))}\n </div>\n )}\n </TopMembersSection>\n </TeamContainer>\n )}\n <Divider />\n <StyledTitle>\n {t('teams.all_members')} ({membersPaginator.metadata.total_entries || 0})\n </StyledTitle>\n <InfiniteScroll\n initialLoad={false}\n pageStart={0}\n threshold={0}\n loadMore={membersPaginator.loadMore}\n hasMore={!membersPaginator.loading && membersPaginator.hasMore}\n useWindow\n getScrollParent={() => scrollRef}\n >\n <MembersSection ref={setScrollRef}>\n {members.map(user => (\n <StyledTeamMember key={user.id} user={user} />\n ))}\n </MembersSection>\n {membersPaginator.loading && <Loading centered />}\n </InfiniteScroll>\n </MaxWidthContainer>\n </AppContainer>\n </>\n );\n};\n\nTeamDetail.propTypes = {};\n\nexport default TeamDetail;\n","import { message } from 'antd';\nimport axios from 'axios';\nimport { oneOfType, shape, string } from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { activities } from '../../../services/api';\nimport i18n from '../../i18n';\n\nconst Content = styled.div`\n display: flex;\n margin: 1rem 0;\n max-height: 400px;\n`;\n\n/**\n * Preview component for uploaded media.\n * @param file - is either uploaded file, or a url to previously updated file.\n * @param contentType - in case file is a url conentType needs to be provided too.\n */\n\nexport const TestimonialMediaPreview = ({ file, contentType }) => {\n const [media, setMedia] = useState();\n const [mediaType, setMediaType] = useState(file ? file.type : contentType);\n const isImage = mediaType && mediaType.match('image');\n const isVideo = mediaType && mediaType.match('video');\n\n // Create preview when uploaded file changes\n useEffect(() => {\n if (!file) {\n return;\n }\n\n // Direct media URL provided\n if (typeof file === 'string') {\n setMedia(file);\n setMediaType(contentType);\n return;\n }\n\n // Otherwise we are dealing with file upload, and we read it directly.\n const reader = new FileReader();\n const callbackReaderFn = () => {\n setMedia(reader.result);\n setMediaType(file.type);\n };\n reader.addEventListener('load', callbackReaderFn);\n reader.readAsDataURL(file);\n\n // eslint-disable-next-line consistent-return\n return function cleanup() {\n reader.removeEventListener('load', callbackReaderFn);\n };\n // eslint-disable-next-line\n }, [file]);\n\n // don't render anything if there is no media or if it's an usupported format\n if (!media || (!isImage && !isVideo)) return null;\n\n if (isImage) {\n return (\n <Content>\n <img src={media} alt=\"media\" style={{ height: '400px' }} />\n </Content>\n );\n }\n\n // Otherwise it's a video\n return (\n <Content>\n <video controls src={media} alt=\"media\" style={{ height: '400px' }}>\n <track kind=\"captions\" />\n </video>\n </Content>\n );\n};\n\nTestimonialMediaPreview.propTypes = {\n contentType: string,\n file: oneOfType([shape(File), string]),\n};\n\nTestimonialMediaPreview.defaultProps = {\n contentType: null,\n file: null,\n};\n\n/**\n * Other helper functions that deal with file upload\n */\n\n// Separate axios instance because we don't want to use common headers for accessing S3\nconst s3 = axios.create();\ns3.defaults.headers.common = {\n 'x-amz-acl': 'public-read',\n};\n\n// Uploader/preview helper function\nconst generateSignedUrl = async ({ type: fileType, name: fileName }) => {\n const {\n data: { signedUrl },\n } = await activities.getUploadFileUrl(fileType, fileName);\n\n return signedUrl;\n};\n\nexport const uploadMedia = async ({ onProgress, onSuccess, onError, file }) => {\n const signedUrl = await generateSignedUrl(file);\n\n s3.put(signedUrl, file, {\n headers: {\n 'Content-Type': file.type,\n },\n onUploadProgress: ({ total, loaded }) => {\n onProgress({ percent: Math.round((loaded / total) * 100) }, file);\n },\n })\n .then(({ data: response }) => {\n onSuccess(\n {\n name: file.name,\n type: file.type,\n url: signedUrl.split('?')[0],\n ...response,\n },\n file,\n );\n })\n .catch(onError);\n};\n\nexport const validateFile = ({ type: fileType, size }) => {\n const isImage = fileType.match('image');\n const isVideo = fileType.match('video');\n const fileSizeMB = size / 1024 / 1024;\n const mediaLimitMB = 200;\n\n const isValidFormat = isImage || isVideo;\n const isValidSize = fileSizeMB <= mediaLimitMB;\n\n if (!isValidFormat) {\n message.error(i18n.t('activity.testimonial.file_format_error'));\n }\n\n if (!isValidSize) {\n message.error(`${i18n.t('activity.testimonial.file_size_error')} ${mediaLimitMB} MB!`);\n }\n\n return isValidFormat && isValidSize;\n};\n","import { PlusOutlined } from '@ant-design/icons';\nimport { Button, message, Input, Upload } from 'antd';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link, Redirect, useParams } from 'react-router-dom';\nimport styled from 'styled-components';\nimport AppContainer from 'web/components/AppContainer';\nimport AppHeader from 'web/components/AppHeader';\nimport Container from 'web/components/Container';\nimport BackButton from 'web/components/common/BackButton';\nimport { track } from 'web/services/analytics';\nimport { user } from 'web/services/api';\nimport theme from 'web/styles/theme';\nimport { TestimonialMediaPreview, uploadMedia, validateFile } from './TestimonialHelpers';\nimport './testimonial-activity.scss';\n\nconst { TextArea } = Input;\n\nconst Content = styled.div`\n margin-bottom: 1rem;\n`;\n\nconst Title = styled.div`\n margin: 1rem 0;\n text-align: center;\n font-family: ${theme.fonts.semibold};\n color: black;\n font-size: 1.75em;\n`;\n\nconst Description = styled.div`\n margin: 1em 0;\n`;\n\nconst Subtitle = styled.div`\n font-family: ${theme.fonts.semibold};\n font-size: 1.25em;\n color: black;\n`;\n\nconst Preview = styled.div`\n margin: 1rem 0;\n`;\n\nconst TestimonialActivity = () => {\n const { t } = useTranslation();\n const { userActivityId } = useParams();\n const [userActivity, setUserActivity] = useState({});\n const {\n header_title,\n activity: {\n _type: activityType,\n title,\n description,\n campaign: { slug: campaignSlug } = {},\n } = {},\n } = userActivity; // extract activity type\n\n // Form data\n const [testimonialNote, setTestimonialNote] = useState('');\n const [mediaPreview, setMediaPreview] = useState(null);\n const [testimonialNoteURL, setTestimonialNoteURL] = useState(null);\n const [testimonialNoteType, setTestimonialNoteType] = useState(null);\n\n // Spinners\n const [loading, setLoading] = useState(true); // when loading initial data\n const [submitting, setSubmitting] = useState(false); // when submitting final testimony\n\n // Upload handling\n const [uploadButtonText, setUploadButtonText] = useState(t('activity.testimonial.choose_file'));\n const [uploading, setUploading] = useState(false);\n\n const loadData = useCallback(async () => {\n try {\n // First fetch userActivity data\n const {\n data: { data: activity },\n } = await user.getUserActivity(userActivityId);\n\n const { personal_note, personal_note_type, personal_note_url } = activity;\n\n // Set data\n setUserActivity(activity);\n // Previously set data\n setTestimonialNote(personal_note);\n setTestimonialNoteType(personal_note_type);\n setTestimonialNoteURL(personal_note_url);\n setMediaPreview(personal_note_url);\n\n setLoading(false);\n } catch (err) {\n message.error(t('errors.activity_loading_failed'));\n }\n // eslint-disable-next-line\n }, [userActivityId]);\n\n useEffect(() => {\n loadData();\n }, [loadData, userActivityId]);\n\n const handleUpload = ({ file: { name, originFileObj, percent, response, status } }) => {\n // File upload onProgress callback\n if (status === 'uploading') {\n setUploading(true);\n setUploadButtonText(`${t('common.uploading')} ${Math.round(percent)}%`);\n }\n\n // Upload is finished\n if (status === 'done') {\n const { url, type } = response;\n\n setTestimonialNoteURL(url);\n setTestimonialNoteType(type);\n setMediaPreview(originFileObj);\n\n setUploading(false);\n setUploadButtonText(t('activity.testimonial.change_selection'));\n }\n\n // Upload error occured\n if (status === 'error') {\n message.error(`${name} t('activity.testimonial.file_upload_failed')`);\n\n setUploading(false);\n setUploadButtonText(t('activity.testimonial.file_upload_again'));\n }\n };\n\n // Activity submit, should only be available when media is uploaded.\n const handleSubmit = async () => {\n if (!testimonialNoteURL || !testimonialNoteType) {\n message.error(t('activity.testimonial.provide_image'));\n return;\n }\n\n try {\n setSubmitting(true);\n\n track('COMPLETED_ACTIVITY', {\n activity_id: userActivity.activity.id,\n activity_title: userActivity.activity.title,\n campaign_id: userActivity.activity.campaign.id,\n campaign_name: userActivity.activity.campaign.name,\n });\n\n await user.updateUserActivity(userActivity.id, {\n completed: true,\n personal_note: testimonialNote.trim(),\n personal_note_type: testimonialNoteType,\n personal_note_url: testimonialNoteURL,\n });\n\n await user.userActivityAddPerform(userActivity.id);\n\n message.success(t('common.submitted_successfully'));\n } catch (e) {\n message.error(t('errors.action_failed'));\n } finally {\n setSubmitting(false);\n }\n };\n\n // Redirect if activity type doesn't match this action\n if (activityType && activityType !== 'testimonial_activities') {\n message.error(t('errors.activity_type_mismatch'));\n return <Redirect to={`/activities/${userActivityId}`} />;\n }\n\n const HeaderLink = <Link to={`/campaigns/${campaignSlug}`}>{header_title}</Link>;\n\n if (loading) {\n return (\n <>\n <AppHeader title={t('activity.testimonial.header_title')} extra={HeaderLink} />\n <AppContainer>\n <Container>{t('common.loading')}</Container>\n </AppContainer>\n </>\n );\n }\n\n return (\n <>\n <AppHeader title={t('activity.testimonial.header_title')} extra={HeaderLink} />\n <AppContainer>\n <div className=\"default-page-max-width p-3\">\n <BackButton />\n <Title>{title}</Title>\n <Description>{description}</Description>\n\n <Preview>\n <Subtitle>{t('activity.testimonial.preview')}</Subtitle>\n {!mediaPreview && <Content>{t('activity.testimonial.preview_description')}</Content>}\n <Upload\n name=\"body\"\n listType={mediaPreview ? 'picture' : 'picture-card'}\n accept=\"image/*,video/*\"\n className=\"avatar-uploader\"\n showUploadList={false}\n customRequest={request => uploadMedia(request)}\n beforeUpload={validateFile}\n onChange={handleUpload}\n >\n {mediaPreview && (\n <Button size={'small'} loading={uploading} type={'default'}>\n {uploadButtonText}\n </Button>\n )}\n <TestimonialMediaPreview file={mediaPreview} contentType={testimonialNoteType} />\n {!mediaPreview && (\n <Button loading={uploading} type={'link'}>\n <PlusOutlined /> {uploadButtonText}\n </Button>\n )}\n </Upload>\n </Preview>\n\n <Subtitle>{t('activity.testimonial.note')}</Subtitle>\n <TextArea\n placeholder={t('activity.testimonial.note_description')}\n onChange={e => setTestimonialNote(e.target.value)}\n value={testimonialNote}\n />\n\n <Button\n style={{ marginTop: '1rem' }}\n type=\"primary\"\n block\n loading={submitting}\n disabled={!mediaPreview || uploading}\n onClick={handleSubmit}\n >\n {t('common.submit')}\n </Button>\n </div>\n </AppContainer>\n </>\n );\n};\n\nTestimonialActivity.propTypes = {};\n\nexport default TestimonialActivity;\n","import { LeftOutlined } from '@ant-design/icons';\nimport { Input, List } from 'antd';\nimport debounce from 'lodash/debounce';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport InfiniteScroll from 'react-infinite-scroller';\nimport { Link } from 'react-router-dom';\nimport styled from 'styled-components';\nimport defaultCampaignProfile from '../../../../../assets/images/web/default-campaign-profile.png';\nimport { toObject, usePaginatedApi } from '../../../hooks/usePaginatedApi';\nimport { users } from '../../../services/api';\nimport { media } from '../../../styles/theme';\nimport { replaceDefaultCampaignImage } from '@web/utils/string';\n\nimport ContactListItem from '../../Contacts/ContactListItem';\nimport ImpactiveButton from '../../ImpactiveButton';\nimport FilterButton from '../../common/FilterButton';\nimport Loading from '../../common/Loading';\n\nconst Wrapper = styled.div`\n padding-bottom: 120px;\n`;\n\nconst BackLink = styled.a`\n color: ${({ theme }) => theme.colors.black};\n font-size: 16px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n cursor: pointer;\n margin-bottom: 20px;\n`;\n\nconst CampaignHeader = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 38px;\n`;\n\nconst CampaignAvatar = styled.img`\n width: 40px;\n height: 40px;\n border-radius: 100%;\n margin-right: 15px;\n flex: none;\n`;\n\nconst CampaignName = styled.h2`\n font-size: 28px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n letter-spacing: 0.015em;\n margin: 0;\n`;\n\nconst Title = styled.h3`\n font-size: 23px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n letter-spacing: 0.015em;\n margin-bottom: 8px;\n`;\n\nconst Section = styled.div`\n margin-top: 30px;\n`;\n\nconst SectionTitle = styled.h4`\n font-size: 17px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n text-transform: uppercase;\n letter-spacing: 0.05em;\n`;\n\nconst Filters = styled.div`\n margin: 0 -7px;\n\n > * {\n margin: 0.3em 0.5em;\n }\n`;\n\nconst SearchInput = styled(Input)`\n && {\n font-size: 16px;\n padding: 5px 1em;\n }\n`;\n\nconst SelectAllLabel = styled.label`\n display: inline-block;\n margin: 0 0 20px 24px;\n font-size: 16px;\n cursor: pointer;\n\n input {\n margin-right: 16px;\n }\n`;\n\nconst SuggestionMessage = styled.div`\n text-align: center;\n font-family: ${({ theme }) => theme.fonts.semibold};\n color: black;\n margin-top: 2rem;\n padding: 1rem;\n border-radius: 8px;\n border: 2px dashed #a9a9a9;\n`;\n\nconst FixedBottom = styled.div`\n position: fixed;\n left: 0;\n right: 0;\n bottom: 30px;\n padding: 0 16px;\n ${media.ns} {\n margin-left: 240px;\n }\n`;\n\nconst ActionBar = styled.div`\n max-width: 820px;\n width: 100%;\n margin: 0 auto;\n background: #e6f7ff;\n border-radius: 7px;\n box-shadow: 0 5px 8px 0 rgba(0, 0, 0, 0.15);\n padding: 20px 25px 20px 33px;\n line-height: 1.35em;\n\n @media screen and (min-width: 800px) {\n display: flex;\n align-items: center;\n }\n`;\n\nconst ActionButtons = styled.div`\n flex: none;\n margin-top: 16px;\n\n @media screen and (min-width: 800px) {\n margin-top: 0;\n margin-left: 30px;\n }\n`;\n\nconst ActionButtonsInner = styled.div`\n display: flex;\n flex-wrap: wrap;\n margin: -4px -6px;\n\n > * {\n flex: none;\n width: 196px;\n margin: 4px 6px;\n }\n\n @media screen and (min-width: 800px) {\n flex-direction: column;\n }\n\n ${media.xl} {\n flex-direction: row;\n }\n`;\n\nconst ContactSelection = ({\n userActivity = {},\n selectedContacts,\n setSelectedContacts,\n onGoBack,\n onSendIndividual,\n onSendBulk,\n}) => {\n const { t } = useTranslation();\n const {\n id: userActivityId,\n activity: { campaign },\n activity,\n } = userActivity;\n\n // Contact filters\n const [contactsQuery, setContactsQuery] = useState(null);\n const [voterFrequency, setVoterFrequency] = useState(activity?.autofilters?.voter_frequency);\n const [unmatched, setUnmatched] = useState(undefined);\n const [inDistrict, setInDistrict] = useState(activity?.autofilters?.in_district);\n const [inSwingDistrict, setInSwingDistrict] = useState(undefined);\n const [isSuggested] = useState(undefined);\n const [partyAffiliation, setPartyAffiliation] = useState(activity?.autofilters?.party);\n\n // Paginator for contacts\n const contactsPaginator = toObject(\n usePaginatedApi(users.getContacts, null, {\n in_district: inDistrict || undefined,\n in_swing_district: inSwingDistrict || undefined,\n is_suggested: isSuggested || undefined,\n party_affiliation: partyAffiliation || undefined,\n search: contactsQuery,\n unmatched: unmatched || undefined,\n user_activity_id: userActivityId,\n voter_frequency: voterFrequency,\n }),\n );\n\n const allSelected = selectedContacts.length === contactsPaginator.items.length;\n\n const allFiltersUnchecked = () => {\n const filters = [\n contactsQuery,\n voterFrequency,\n unmatched,\n inDistrict,\n inSwingDistrict,\n isSuggested,\n partyAffiliation,\n ];\n return !filters.some(query => query);\n };\n\n // Infinite scrolling for contacts\n const [shouldLoadContacts, setShouldLoadContacts] = useState(false);\n\n // contact handling helper functions\n const debouncedHandleSearch = debounce(e => {\n const { value } = e.target;\n setContactsQuery(value);\n }, 200);\n\n const handleSearch = e => {\n e.persist();\n debouncedHandleSearch(e); // Debounced contact search - delay querying backend while user is still typing\n };\n\n const isContactSelected = contactId => {\n return selectedContacts.some(contact => contact.id === contactId);\n };\n\n const toggleContactSelection = contactId => {\n const newSelection = isContactSelected(contactId)\n ? selectedContacts.filter(contact => contact.id !== contactId)\n : selectedContacts.concat(contactsPaginator.items.find(contact => contact.id === contactId));\n\n setSelectedContacts(newSelection);\n };\n\n const toggleAllContactsSelection = () => {\n // if the selected list was not empty, deselect all elements, otherwise select all\n const newSelection = !allSelected ? contactsPaginator.items : [];\n setSelectedContacts(newSelection);\n };\n\n // Handling filters\n const handleFrequencyChange = frequency => {\n // allow toggling filter off if the same button is pressed again\n const toFrequency = frequency !== voterFrequency ? frequency : undefined;\n setVoterFrequency(toFrequency);\n };\n\n const handlePartyChange = party => {\n // allow toggling filter off if the same button is pressed again\n const toParty = partyAffiliation !== party ? party : undefined;\n setPartyAffiliation(toParty);\n };\n\n // Reset pagination on query change or filters change\n useEffect(() => {\n contactsPaginator.resetPagination();\n setShouldLoadContacts(true);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n contactsQuery,\n voterFrequency,\n unmatched,\n inDistrict,\n inSwingDistrict,\n isSuggested,\n partyAffiliation,\n ]);\n\n // Load more contacts if the flag is set\n useEffect(() => {\n if (shouldLoadContacts) {\n contactsPaginator.loadMore();\n setShouldLoadContacts(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [shouldLoadContacts]);\n\n // If contacts are still loading or there are contacts, show them.\n const showContacts =\n contactsPaginator.initialLoading ||\n (contactsPaginator.items && contactsPaginator.items.length > 0);\n\n // If there aren't contacts to show but some filters are checked, suggest clearing filters.\n const showTryClearingFilters =\n contactsPaginator.items && contactsPaginator.items.length === 0 && !allFiltersUnchecked();\n\n // If we have gotten to this point, there are no contacts to show,\n // so if all filters are unchecked, link to the sync contacts page.\n const showSuggestSyncContacts = allFiltersUnchecked();\n\n return (\n <Wrapper>\n <BackLink className=\"d-flex flex-row align-items-center\" onClick={onGoBack}>\n <LeftOutlined />\n <div className=\"ml-2\">{t('common.back')}</div>\n </BackLink>\n <CampaignHeader>\n <CampaignAvatar\n src={replaceDefaultCampaignImage(campaign.url_profile_img) || defaultCampaignProfile}\n alt={campaign.name}\n />\n <CampaignName>{campaign.name}</CampaignName>\n </CampaignHeader>\n <Title>{t('activity.f2f.contact_selection.title')}</Title>\n <div>{t('activity.f2f.contact_selection.description')}</div>\n <Section>\n <SectionTitle>{t('filters.filter_by')}:</SectionTitle>\n <Filters className=\"d-flex flex-row flex-wrap\">\n {!userActivity.activity.campaign.no_labels && (\n <FilterButton\n active={partyAffiliation === 'Democrat'}\n icon=\"democrat\"\n onClick={() => handlePartyChange('Democrat')}\n >\n {t('filters.democrat')}\n </FilterButton>\n )}\n {!userActivity.activity.campaign.no_labels && (\n <FilterButton\n active={partyAffiliation === 'Republican'}\n icon=\"republican\"\n onClick={() => handlePartyChange('Republican')}\n >\n {t('filters.republican')}\n </FilterButton>\n )}\n <FilterButton\n active={inDistrict}\n icon=\"inDistrict\"\n onClick={() => setInDistrict(!inDistrict)}\n >\n {t('filters.in_district')}\n </FilterButton>\n <FilterButton\n active={inSwingDistrict}\n icon=\"inSwing\"\n onClick={() => setInSwingDistrict(!inSwingDistrict)}\n >\n {t('filters.in_swing')}\n </FilterButton>\n <FilterButton\n active={voterFrequency === 'super'}\n icon=\"super\"\n onClick={() => handleFrequencyChange('super')}\n >\n {t('filters.super_voter')}\n </FilterButton>\n <FilterButton\n active={voterFrequency === 'frequent'}\n icon=\"frequent\"\n onClick={() => handleFrequencyChange('frequent')}\n >\n {t('filters.frequent')}\n </FilterButton>\n <FilterButton\n active={voterFrequency === 'infrequent'}\n icon=\"infrequent\"\n onClick={() => handleFrequencyChange('infrequent')}\n >\n {t('filters.infrequent')}\n </FilterButton>\n <FilterButton\n active={unmatched}\n icon=\"unmatched\"\n onClick={() => setUnmatched(!unmatched)}\n >\n {t('filters.unmatched')}\n </FilterButton>\n </Filters>\n </Section>\n <Section>\n <SectionTitle>{t('activity.f2f.contact_selection.search_gmail_contacts')}:</SectionTitle>\n <SearchInput\n placeholder={t('activity.f2f.contact_selection.type_name')}\n onChange={handleSearch}\n />\n </Section>\n {showContacts && (\n <Section>\n {contactsPaginator.items.length > 0 && (\n <SelectAllLabel>\n <input type=\"checkbox\" checked={allSelected} onChange={toggleAllContactsSelection} />\n {t('activity.f2f.contact_selection.select_all_contacts')}\n </SelectAllLabel>\n )}\n <div>\n <InfiniteScroll\n initialLoad={false}\n pageStart={0}\n threshold={0}\n loadMore={contactsPaginator.loadMore}\n hasMore={!contactsPaginator.loading && contactsPaginator.hasMore}\n useWindow\n >\n <List>\n {contactsPaginator.items.map(contact => (\n <ContactListItem\n key={contact.id}\n noLabels={userActivity.activity.campaign.no_labels}\n contact={contact}\n withSelection\n selected={isContactSelected(contact.id)}\n onClickHandler={() => toggleContactSelection(contact.id)}\n />\n ))}\n </List>\n {contactsPaginator.loading && <Loading centered />}\n </InfiniteScroll>\n </div>\n </Section>\n )}\n {!showContacts && showTryClearingFilters && (\n <SuggestionMessage>\n {t('activity.f2f.contact_selection.try_clearing_filters')}\n </SuggestionMessage>\n )}\n {!showContacts && !showTryClearingFilters && showSuggestSyncContacts && (\n <SuggestionMessage>\n <Link to={'/settings'}>{t('activity.f2f.contact_selection.suggest_sync_contacts')}</Link>\n </SuggestionMessage>\n )}\n <FixedBottom>\n <ActionBar>\n <div>{t('activity.f2f.contact_selection.action_description')}</div>\n <ActionButtons>\n <ActionButtonsInner>\n <ImpactiveButton\n size=\"large\"\n disabled={!selectedContacts.length}\n onClick={onSendIndividual}\n >\n {t('activity.f2f.contact_selection.email_separately')}\n </ImpactiveButton>\n <ImpactiveButton\n size=\"large\"\n disabled={selectedContacts.length < 2}\n onClick={onSendBulk}\n >\n {t('activity.f2f.contact_selection.email_everyone')}\n </ImpactiveButton>\n </ActionButtonsInner>\n </ActionButtons>\n </ActionBar>\n </FixedBottom>\n </Wrapper>\n );\n};\n\nContactSelection.propTypes = {\n onGoBack: PropTypes.func.isRequired,\n onSendBulk: PropTypes.func.isRequired,\n onSendIndividual: PropTypes.func.isRequired,\n selectedContacts: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n setSelectedContacts: PropTypes.func.isRequired,\n userActivity: PropTypes.shape({\n id: PropTypes.number.isRequired,\n }).isRequired,\n};\n\nexport default ContactSelection;\n","import { Input, Collapse } from 'antd';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport { users } from '../../../../services/api';\nimport { interpolateMessage } from '../../../../utils/other';\nimport ImpactiveButton from '../../../ImpactiveButton';\n\nconst Wrapper = styled.div`\n display: flex;\n`;\n\nconst Left = styled.div`\n flex: 1;\n`;\n\nconst LeftHeading = styled.h3`\n font-size: 23px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n letter-spacing: 0.015em;\n margin-bottom: 16px;\n`;\n\nconst MessageInput = styled(Input.TextArea)`\n && {\n height: 360px;\n font-size: 16px;\n padding: 10px 16px;\n }\n`;\n\nconst Right = styled.div`\n width: 40%;\n flex: none;\n margin-left: 40px;\n`;\n\nconst RightHeading = styled.h3`\n font-size: 17px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin: 6px 0 18px;\n`;\n\nconst ScriptsBox = styled(Collapse).attrs({ accordion: true })`\n && {\n background: none;\n border: 1px dashed #b1b1b1;\n height: 360px;\n padding: 0 22px;\n overflow-y: auto;\n\n & > .ant-collapse-item {\n &:last-child {\n border-bottom: none;\n }\n\n & > .ant-collapse-header {\n font-family: ${({ theme }) => theme.fonts.semibold};\n padding: 19px 16px 19px 0;\n\n & > .ant-collapse-arrow {\n left: auto;\n right: 0;\n font-size: 14px;\n }\n }\n }\n\n .ant-collapse-content {\n background: none;\n border-top: none;\n }\n\n .ant-collapse-content-box {\n padding: 0 0 18px 0;\n }\n }\n`;\n\nconst ScriptBody = styled.div`\n margin-bottom: 15px;\n`;\n\nconst UseScriptButton = styled(ImpactiveButton)`\n font-size: 16px;\n`;\n\n// Input message handling component\nconst ScriptMessageInput = ({\n scripts,\n message,\n setMessage,\n setScriptId,\n contact,\n userActivity,\n disabled,\n}) => {\n const { t } = useTranslation();\n const [me, setMe] = useState();\n const [selectedScript, setSelectedScript] = useState(null);\n const [showBulkInterpolationWarning, setShowBulkInterpolationWarning] = useState(false);\n\n // Pluck out campaign from userActivity for message interpolation\n const {\n activity: { campaign },\n } = userActivity;\n\n // Fetch data about the sender (logged in user)\n // TODO: check if we need to do this because scripts seem to be interpolated on backed first\n useEffect(() => {\n users.get().then(({ data: { data } }) => setMe(data));\n }, []);\n\n // Run interpolations whenever new script is selected or different user is at turn\n useEffect(() => {\n if (selectedScript) {\n const { body: scriptBody } = selectedScript;\n\n const interpolatedMessage = interpolateMessage(scriptBody, contact, me, campaign);\n setMessage(interpolatedMessage);\n setScriptId(selectedScript.id);\n\n // Notify user when batch sending and some of the scripts include interpolations.\n const scriptInterpolatable = scriptBody.match(/\\{\\{[\\w.]*\\}\\}/);\n setShowBulkInterpolationWarning(!contact && scriptInterpolatable);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedScript, contact]);\n\n return (\n <Wrapper>\n <Left>\n <LeftHeading>{t('activity.f2f.emailing.write_your_message')}:</LeftHeading>\n <MessageInput\n disabled={disabled}\n value={message}\n placeholder={t('activity.f2f.emailing.message_placeholder')}\n onChange={e => setMessage(e.target.value)}\n />\n {!disabled && !message && (\n <p className=\"text-error\">{t('activity.f2f.emailing.body_required')}</p>\n )}\n {!disabled && showBulkInterpolationWarning && (\n <p className=\"text-error\">{t('activity.f2f.emailing.bulk_interpolations_caveat')}</p>\n )}\n </Left>\n {scripts.length > 0 && (\n <Right>\n <RightHeading>{t('activity.f2f.emailing.use_a_script')}:</RightHeading>\n <ScriptsBox defaultActiveKey={scripts[0].id}>\n {scripts.map(({ name, body, id }) => (\n <Collapse.Panel header={name} key={id}>\n <ScriptBody>{body}</ScriptBody>\n <UseScriptButton onClick={() => setSelectedScript({ body, id, name })}>\n {t('activity.f2f.emailing.use_this_script')}\n </UseScriptButton>\n </Collapse.Panel>\n ))}\n </ScriptsBox>\n </Right>\n )}\n </Wrapper>\n );\n};\n\nScriptMessageInput.propTypes = {\n contact: PropTypes.shape({}),\n disabled: PropTypes.bool,\n message: PropTypes.string.isRequired,\n scripts: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.number })).isRequired,\n setMessage: PropTypes.func.isRequired,\n setScriptId: PropTypes.func.isRequired,\n userActivity: PropTypes.shape({\n activity: PropTypes.shape({\n campaign: PropTypes.shape({}),\n }),\n }).isRequired,\n};\n\nexport default ScriptMessageInput;\n","import { Buffer } from 'buffer';\n\nfunction buildEmail({ bcc = '', from = '', subject, message, to }) {\n // MTS - This is the crazy way we have to format an email\n const str = [\n 'Content-Type: text/plain; charset=\"UTF-8\"\\n',\n 'MIME-Version: 1.0\\n',\n 'Content-Transfer-Encoding: 7bit\\n',\n 'To: ',\n to,\n '\\n',\n 'Bcc: ',\n bcc,\n '\\n',\n 'From: ',\n from,\n '\\n',\n 'Subject: ',\n subject,\n '\\n\\n',\n message,\n ].join('');\n\n const encodedMail = new Buffer(str).toString('base64').replace(/\\+/g, '-').replace(/\\//g, '_');\n return encodedMail;\n}\n\nexport default buildEmail;\n","import styled from 'styled-components';\n\nexport const BackLink = styled.a`\n display: inline-block;\n color: ${({ theme }) => theme.colors.black};\n font-size: 16px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n cursor: pointer;\n margin-bottom: 20px;\n`;\n\nexport const Top = styled.div`\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n`;\n\nexport const TopLeft = styled.div`\n flex: 1;\n`;\n\nexport const Title = styled.h2`\n font-size: 30px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n letter-spacing: 0.015em;\n margin: 0 0 12px;\n`;\n\nexport const EmailInfo = styled.div`\n margin-bottom: 3px;\n`;\n\nexport const EmailInfoLabel = styled.span`\n font-family: ${({ theme }) => theme.fonts.bold};\n margin-right: 4px;\n`;\n\nexport const TopRight = styled.div`\n flex: none;\n margin-left: 20px;\n text-align: right;\n`;\n\nexport const Step = styled.div`\n font-family: ${({ theme }) => theme.fonts.semibold};\n text-transform: uppercase;\n letter-spacing: 0.075em;\n margin-bottom: 4px;\n`;\n\nexport const SkipToNextLink = styled.a`\n color: #4680d9;\n font-size: 16px;\n font-family: ${({ theme }) => theme.fonts.semibolditalic};\n`;\n\nexport const Section = styled.div`\n margin-top: 40px;\n`;\n\nexport const SectionTitle = styled.h3`\n font-size: 23px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n letter-spacing: 0.015em;\n margin-bottom: 8px;\n`;\n\nexport const ActionButtons = styled.div`\n margin: 12px -7px 0;\n\n > * {\n display: inline-block;\n margin: 4px 7px;\n }\n`;\n","import PropTypes from 'prop-types';\nimport React, { useEffect, useState, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { track } from '../../../../services/analytics';\nimport { users } from '../../../../services/api';\nimport ImpactiveButton from '../../../ImpactiveButton';\nimport ScriptMessageInput from './ScriptMessageInput';\nimport buildEmail from './buildEmail';\nimport {\n Top,\n TopLeft,\n Title,\n EmailInfo,\n EmailInfoLabel,\n TopRight,\n Step,\n Section,\n SectionTitle,\n ActionButtons,\n} from './styles';\n\nconst CONTACTS_PER_EMAIL = 50;\n\n// Helper component which is rendered when contacts are selected, and bulk email is ready to be sent\nconst BulkSendingScreen = ({\n contactList,\n scripts,\n userActivity,\n googleUser,\n skippedInAppEmail,\n onCompleted,\n onShowActivityCompletedModal,\n}) => {\n const { t } = useTranslation();\n const [messageBody, setMessageBody] = useState('');\n const [scriptId, setScriptId] = useState(null);\n\n useEffect(() => {\n track('VIEW_SEND_BULK_MESSAGE_SCREEN');\n }, []);\n\n // Bulk sending helpers - used to split large bcc lists into multiple emails.\n const validContacts = useMemo(() => {\n return contactList.filter(contact => contact.email);\n }, [contactList]);\n const totalBatches = Math.ceil(validContacts.length / CONTACTS_PER_EMAIL);\n const [batchPage, setBatchPage] = useState(0);\n const finishedSending = batchPage === totalBatches;\n\n // Callback when send email to selected contacts\n const handleSendMessage = async () => {\n // Only use contacts from current batch\n const contactIds = validContacts\n .slice(batchPage * CONTACTS_PER_EMAIL, (batchPage + 1) * CONTACTS_PER_EMAIL)\n .map(c => c.id);\n\n // Store sent messages\n await users.bulkUpdateMessageSent(contactIds, {\n message: {\n activity_id: userActivity.activity.id,\n activity_script_id: scriptId,\n body: messageBody,\n lock: false,\n rate_limit: false,\n type: 'EmailMessage',\n user_activity_id: userActivity.id,\n visible: true,\n },\n });\n setBatchPage(batchPage + 1);\n };\n\n function handleSendEmail() {\n const email = buildEmail({\n bcc: validContacts.map(contact => contact.email).join(', '),\n from: `${googleUser.name} <${googleUser.email}>`,\n message: messageBody,\n subject: 'New Impactive Message',\n to: '',\n });\n window.gapi.client.gmail.users.messages\n .send({\n resource: {\n raw: email,\n },\n userId: 'me',\n })\n .then(res => {\n handleSendMessage();\n })\n .catch(err => console.error({ err }));\n }\n\n // Prompt user to mark activity as completed when all bulk emails are sent\n useEffect(() => {\n if (!userActivity.completed && finishedSending) {\n onShowActivityCompletedModal();\n }\n // eslint-disable-next-line\n }, [finishedSending, userActivity.completed, onShowActivityCompletedModal]);\n\n useEffect(() => {\n if (finishedSending) {\n onCompleted();\n }\n }, [finishedSending, onCompleted]);\n\n // creates \"paginated\" mailto link, split into batches of CONTACTS_PER_EMAIL contacts until the list is exhausted\n const mailToLink = React.useMemo(() => {\n const subject = encodeURI(t('common.new_outvote_message'));\n const encodedBody = encodeURIComponent(messageBody);\n const recipients = validContacts\n .map(c => c.email)\n .slice(batchPage * CONTACTS_PER_EMAIL, (batchPage + 1) * CONTACTS_PER_EMAIL);\n\n return `mailto:?bcc=${recipients.join(',')}&subject=${subject}&body=${encodedBody}`;\n }, [t, messageBody, validContacts, batchPage]);\n\n if (finishedSending) {\n return null;\n }\n\n return (\n <>\n <Top>\n <TopLeft>\n <Title>{t('activity.f2f.emailing.send_to_all')}</Title>\n {googleUser && googleUser.email && (\n <EmailInfo>\n <EmailInfoLabel>{t('activity.f2f.emailing.from')}:</EmailInfoLabel>\n {googleUser.email}\n </EmailInfo>\n )}\n {contactList.length !== validContacts.length && (\n <p className=\"text-error\">\n {t('activity.f2f.emailing.bulk_emails_missing', {\n selected: contactList.length,\n valid: validContacts.length,\n })}\n </p>\n )}\n </TopLeft>\n <TopRight>\n <Step>\n {t('activity.f2f.emailing.bulk_counter', {\n count: validContacts.length,\n })}\n </Step>\n </TopRight>\n </Top>\n\n <Section>\n <ScriptMessageInput\n scripts={scripts}\n message={messageBody}\n setScriptId={setScriptId}\n setMessage={setMessageBody}\n userActivity={userActivity}\n />\n </Section>\n\n <Section>\n <SectionTitle>{t('activity.f2f.emailing.ready_to_send')}</SectionTitle>\n <div>{t('activity.f2f.emailing.actions_description')}</div>\n <ActionButtons>\n {!skippedInAppEmail && (\n <ImpactiveButton size=\"large\" disabled={!messageBody} onClick={handleSendEmail}>\n {t('activity.f2f.emailing.send_with_outvote')}\n </ImpactiveButton>\n )}\n <a target=\"_blank\" rel=\"noreferrer\" href={mailToLink}>\n <ImpactiveButton\n size=\"large\"\n secondary\n disabled={!messageBody}\n onClick={handleSendMessage}\n >\n {t('activity.f2f.emailing.batch_send')}\n {totalBatches > 1 ? `(${batchPage + 1} / ${totalBatches})` : ``}\n </ImpactiveButton>\n </a>\n </ActionButtons>\n </Section>\n </>\n );\n};\n\nBulkSendingScreen.propTypes = {\n contactList: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n googleUser: PropTypes.shape({\n email: PropTypes.string,\n name: PropTypes.string,\n }),\n onCompleted: PropTypes.func.isRequired,\n onShowActivityCompletedModal: PropTypes.func.isRequired,\n scripts: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n skippedInAppEmail: PropTypes.bool,\n userActivity: PropTypes.shape({\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n id: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n }),\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n }),\n completed: PropTypes.bool.isRequired,\n id: PropTypes.number.isRequired,\n }).isRequired,\n};\n\nexport default BulkSendingScreen;\n","import { RightOutlined } from '@ant-design/icons';\nimport { Button } from 'antd';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport GoogleAuthButton from 'web/components/ContactSync/components/GoogleAuthButton';\nimport Text from 'web/components/common/Text';\n\nfunction GmailApproval({ googleUser, onSkip, setGoogleUser }) {\n const { t } = useTranslation();\n return (\n <>\n <Text>{t('activity.f2f.gmail_approval.description')}</Text>\n <GoogleAuthButton\n appApproval\n googleUser={googleUser}\n scopes={'https://www.googleapis.com/auth/gmail.send'}\n hideText\n incrementStep={() => null}\n setGoogleUser={setGoogleUser}\n />\n <Button onClick={onSkip} type=\"default\">\n {t('activity.f2f.gmail_approval.skip')} <RightOutlined />{' '}\n </Button>\n </>\n );\n}\n\nGmailApproval.propTypes = {\n googleUser: PropTypes.any,\n onSkip: PropTypes.func.isRequired,\n setGoogleUser: PropTypes.func.isRequired,\n};\n\nGmailApproval.defaultProps = {\n googleUser: null,\n};\n\nexport default GmailApproval;\n","import PropTypes from 'prop-types';\nimport React, { useEffect, useState, useCallback, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { track } from '../../../../services/analytics';\nimport { users } from '../../../../services/api';\nimport ImpactiveButton from '../../../ImpactiveButton';\nimport ScriptMessageInput from './ScriptMessageInput';\nimport buildEmail from './buildEmail';\nimport {\n Top,\n TopLeft,\n Title,\n EmailInfo,\n EmailInfoLabel,\n TopRight,\n Step,\n SkipToNextLink,\n Section,\n SectionTitle,\n ActionButtons,\n} from './styles';\n\n// Helper component which is rendered when contacts are selected, and individual emails are ready to be sent\nconst IndividualSendingScreen = ({\n contactList,\n scripts,\n userActivity,\n googleUser,\n skippedInAppEmail,\n onCompleted,\n onShowActivityCompletedModal,\n}) => {\n const { t } = useTranslation();\n const [contactIndex, setContactIndex] = useState(0);\n const contact = contactList[contactIndex] || null; // shorthand for accessing current contact\n const [askedOnce, setAskedOnce] = useState(false);\n const [messageBody, setMessageBody] = useState('');\n const [scriptId, setScriptId] = useState(null);\n\n const mailToLink = useMemo(() => {\n if (!contact || !contact.email) {\n return '';\n }\n\n const subject = encodeURI(t('common.new_outvote_message'));\n const encodedBody = encodeURIComponent(messageBody);\n return `mailto:${contact.email}?subject=${subject}&body=${encodedBody}`;\n }, [contact, messageBody, t]);\n\n React.useEffect(() => {\n track('VIEW_SEND_MESSAGE_SCREEN');\n }, []);\n\n const handleSkipToNext = useCallback(() => {\n setContactIndex(current => current + 1);\n }, []);\n\n // Callback when send email to current contact (if any, and updates indexes for the next contact)\n const handleSendMessage = ({ manuallySending = true }) => {\n // Store the sent message\n users.updateMessageSent(contact.id, {\n message: {\n activity_id: userActivity.activity.id,\n activity_script_id: scriptId,\n body: messageBody, //need to interpolate too?\n lock: false,\n rate_limit: false,\n type: 'EmailMessage',\n user_activity_id: userActivity.id,\n visible: true,\n },\n });\n\n setTimeout(() => {\n // handling next contact needs to happen in setTimeout fn, otherwise the link is changed before it's open.\n setContactIndex(contactIndex => contactIndex + 1);\n }, 0);\n\n // prompt user to mark activity as completed. googleUser will be present when\n // a user authorizes Impactive \"send on behalf of\" permission and we shouldn't\n // show the modal in this case.\n if (!userActivity.completed && !askedOnce && manuallySending) {\n onShowActivityCompletedModal();\n setAskedOnce(true);\n }\n };\n\n function handleSendEmail() {\n const email = buildEmail({\n from: `${googleUser.name} <${googleUser.email}>`,\n message: messageBody,\n subject: 'New Impactive Message',\n to: contact.email,\n });\n window.gapi.client.gmail.users.messages\n .send({\n resource: {\n raw: email,\n },\n userId: 'me',\n })\n .then(res => {\n handleSendMessage({ manuallySending: false });\n })\n .catch(err => console.error({ err }));\n }\n\n const completed = contactIndex >= contactList.length;\n\n useEffect(() => {\n if (completed) {\n onCompleted();\n }\n }, [completed, onCompleted]);\n\n if (!contact) {\n return null;\n }\n\n const hasNoEmail = !contact.email;\n const contactName = `${contact.first_name || ''} ${contact.last_name || ''}`;\n\n return (\n <>\n <Top>\n <TopLeft>\n <Title>{t('activity.f2f.emailing.title_with_name', { name: contactName })}</Title>\n {googleUser && googleUser.email && (\n <EmailInfo>\n <EmailInfoLabel>{t('activity.f2f.emailing.from')}:</EmailInfoLabel>\n {googleUser.email}\n </EmailInfo>\n )}\n {!hasNoEmail && (\n <EmailInfo>\n <EmailInfoLabel>{t('activity.f2f.emailing.to')}:</EmailInfoLabel>\n {contact.email}\n </EmailInfo>\n )}\n {hasNoEmail && <p className=\"text-error\">{t('activity.f2f.emailing.email_missing')}</p>}\n </TopLeft>\n <TopRight>\n <Step>\n {t('activity.f2f.emailing.email_counter', {\n count: contactList.length,\n index: contactIndex + 1,\n })}\n </Step>\n <SkipToNextLink onClick={handleSkipToNext}>\n {t('activity.f2f.emailing.skip_to_next_person')}\n </SkipToNextLink>\n </TopRight>\n </Top>\n\n <Section>\n <ScriptMessageInput\n disabled={hasNoEmail}\n scripts={scripts}\n message={messageBody}\n setMessage={setMessageBody}\n setScriptId={setScriptId}\n userActivity={userActivity}\n contact={contact}\n />\n </Section>\n\n <Section>\n <SectionTitle>{t('activity.f2f.emailing.ready_to_send')}</SectionTitle>\n <div>{t('activity.f2f.emailing.actions_description')}</div>\n <ActionButtons>\n {!skippedInAppEmail && (\n <ImpactiveButton\n size=\"large\"\n disabled={hasNoEmail || !messageBody}\n onClick={handleSendEmail}\n >\n {t('activity.f2f.emailing.send_with_outvote')}\n </ImpactiveButton>\n )}\n <a target=\"_blank\" rel=\"noreferrer\" href={mailToLink}>\n <ImpactiveButton\n size=\"large\"\n secondary\n disabled={hasNoEmail || !messageBody}\n onClick={handleSendMessage}\n >\n {t('activity.f2f.emailing.open_in_mail_app')}\n </ImpactiveButton>\n </a>\n </ActionButtons>\n </Section>\n </>\n );\n};\n\nIndividualSendingScreen.propTypes = {\n contactList: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n googleUser: PropTypes.shape({\n email: PropTypes.string,\n name: PropTypes.string,\n }),\n onCompleted: PropTypes.func.isRequired,\n onShowActivityCompletedModal: PropTypes.func.isRequired,\n scripts: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n skippedInAppEmail: PropTypes.bool,\n userActivity: PropTypes.shape({\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n id: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n }),\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n }),\n completed: PropTypes.bool.isRequired,\n id: PropTypes.number.isRequired,\n }).isRequired,\n};\n\nexport default IndividualSendingScreen;\n","import { LeftOutlined } from '@ant-design/icons';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { useModal } from '../../../../hooks';\nimport ImpactiveButton from '../../../ImpactiveButton';\nimport ActivityCompletedModal from '../../ActivityCompletedModal';\nimport BulkSendingScreen from './BulkSendingScreen';\nimport GmailApproval from './GmailApproval';\nimport IndividualSendingScreen from './IndividualSendingScreen';\nimport { BackLink } from './styles';\n\nconst SendingScreen = ({ userActivity, isBulk, onGoBack, ...rest }) => {\n const { t } = useTranslation();\n const [googleUser, setGoogleUser] = React.useState(null);\n const [skippedInAppEmail, setSkippedInAppEmail] = React.useState(false);\n const [completed, setCompleted] = React.useState(false);\n const [openActivityCompletedModal, closeActivityCompletedModal] =\n useModal(ActivityCompletedModal);\n\n const handleSkip = React.useCallback(() => {\n setSkippedInAppEmail(true);\n }, []);\n\n const handleCompleted = React.useCallback(() => {\n setCompleted(true);\n }, []);\n\n const handleShowActivityCompletedModal = React.useCallback(() => {\n openActivityCompletedModal({\n activityId: userActivity.activity.id,\n activityTitle: userActivity.activity.title,\n campaignId: userActivity.activity.campaign.id,\n campaignName: userActivity.activity.campaign.name,\n onModalClosedCallback: closeActivityCompletedModal,\n userActivityId: userActivity.id,\n });\n }, [userActivity, openActivityCompletedModal, closeActivityCompletedModal]);\n\n // Allow a user to choose to authorize Impactive to send emails on behalf of\n if (!googleUser && !skippedInAppEmail) {\n return (\n <GmailApproval googleUser={googleUser} onSkip={handleSkip} setGoogleUser={setGoogleUser} />\n );\n }\n\n if (completed) {\n return (\n <div className=\"flex-col align-items-center\">\n <h3 className=\"text-center my-4\">{t('activity.f2f.emailing.way_to_go_text')}</h3>\n <Link\n to={{\n pathname: '/messages',\n }}\n >\n <ImpactiveButton>{t('activity.f2f.emailing.fill_reports')}</ImpactiveButton>\n </Link>\n </div>\n );\n }\n\n const Component = isBulk ? BulkSendingScreen : IndividualSendingScreen;\n return (\n <>\n <BackLink onClick={onGoBack}>\n <LeftOutlined /> {t('activity.f2f.emailing.back')}\n </BackLink>\n <Component\n {...rest}\n userActivity={userActivity}\n googleUser={googleUser}\n skippedInAppEmail={skippedInAppEmail}\n onCompleted={handleCompleted}\n onShowActivityCompletedModal={handleShowActivityCompletedModal}\n />\n </>\n );\n};\n\nSendingScreen.propTypes = {\n isBulk: PropTypes.bool,\n onGoBack: PropTypes.func.isRequired,\n userActivity: PropTypes.shape({\n activity: PropTypes.shape({\n campaign: PropTypes.shape({\n id: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n }),\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n }),\n completed: PropTypes.bool.isRequired,\n id: PropTypes.number.isRequired,\n }).isRequired,\n};\n\nexport default SendingScreen;\n","import { message } from 'antd';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Redirect, useParams } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { campaigns, user } from '../../../services/api';\nimport AppContainer from '../../AppContainer';\nimport AppHeader from '../../AppHeader';\nimport Container from '../../Container';\nimport MaxWidthContainer from '../../common/MaxWidthContainer';\nimport ContactSelection from './ContactSelection';\nimport SendingScreen from './SendingScreen';\nimport { useSelector } from 'react-redux';\n\nconst Content = styled(MaxWidthContainer)`\n max-width: 806px;\n font-size: 15px;\n color: ${({ theme }) => theme.colors.black};\n\n && {\n padding-top: 35px;\n }\n`;\n\nconst TextAFriendActivity = () => {\n const { t } = useTranslation();\n const { userActivityId } = useParams();\n const [userActivity, setUserActivity] = useState({});\n const { activity: { _type: activityType } = {} } = userActivity; // Extract activity type\n const [initialScripts, setInitialScripts] = useState([]);\n const [selectedContacts, setSelectedContacts] = useState([]);\n const [loading, setLoading] = useState(true);\n const [displaySendingScreen, setDisplaySendingScreen] = useState(null);\n const [redirect, setRedirect] = useState(false);\n\n const oneCampaignData = useSelector(state => state.oneCampaign);\n\n // Fetches initial data\n const loadData = useCallback(\n async userActivityId => {\n try {\n // First fetch userActivity data\n const {\n data: { data: userActivity },\n } = await user.getUserActivity(userActivityId);\n\n const {\n activity: {\n id: activityId,\n campaign: { id: campaignId },\n },\n } = userActivity;\n\n // Next get the script based on campaign and activity ids\n const {\n data: { data: activityScripts },\n } = await campaigns.getActivityScripts(campaignId, activityId, {\n mode_priority: ['email', 'sms', 'phone', 'social'],\n script_type: 'initial',\n });\n\n const initialScripts = Object.values(activityScripts).map(({ id, name, script }) => ({\n body: script,\n id,\n name,\n }));\n\n // Set data\n setUserActivity(userActivity);\n setInitialScripts(initialScripts);\n setLoading(false);\n } catch (err) {\n message.error(t('errors.activity_loading_failed'));\n }\n },\n [t],\n );\n\n const handleGoBack = useCallback(() => {\n setRedirect(true);\n }, []);\n\n const handleSendIndividual = useCallback(() => {\n setDisplaySendingScreen('individual');\n }, []);\n\n const handleSendBulk = useCallback(() => {\n setDisplaySendingScreen('bulk');\n }, []);\n\n const handleGoBackToSelect = useCallback(() => {\n setDisplaySendingScreen(null);\n }, []);\n\n // Load initial data\n useEffect(() => {\n loadData(userActivityId);\n }, [loadData, userActivityId]);\n\n // Redirect to one campaign frontline page if campaign has been changed\n useEffect(() => {\n const id = oneCampaignData.selectedCampaign?.id;\n const lastCampaignId = oneCampaignData.lastCampaignId;\n if (!id || !lastCampaignId || id === lastCampaignId) return;\n setRedirect(true);\n }, [oneCampaignData]);\n\n // Redirect if activity type doesn't match this action\n if (activityType && activityType !== 'text_a_friend_activities') {\n message.error(t('errors.activity_type_mismatch'));\n return <Redirect to={`/frontline`} />;\n }\n\n if (loading) {\n return (\n <>\n <AppHeader title={t('activity.f2f.header_title')} />\n <AppContainer>\n <Container>{t('common.loading')}</Container>\n </AppContainer>\n </>\n );\n }\n\n if (redirect) {\n return <Redirect to={`/frontline`} />;\n }\n\n return (\n <>\n <AppHeader title={t('activity.f2f.header_title')} />\n <AppContainer>\n <Content>\n {displaySendingScreen ? (\n <SendingScreen\n isBulk={displaySendingScreen === 'bulk'}\n contactList={selectedContacts}\n scripts={initialScripts}\n userActivity={userActivity}\n onGoBack={handleGoBackToSelect}\n />\n ) : (\n <ContactSelection\n selectedContacts={selectedContacts}\n setSelectedContacts={setSelectedContacts}\n userActivity={userActivity}\n onGoBack={handleGoBack}\n onSendIndividual={handleSendIndividual}\n onSendBulk={handleSendBulk}\n />\n )}\n </Content>\n </AppContainer>\n </>\n );\n};\n\nTextAFriendActivity.propTypes = {};\n\nexport default TextAFriendActivity;\n","import { Button, Col, message, Progress, Row, Skeleton } from 'antd';\nimport _ from 'lodash';\nimport React, { useEffect, useState, useCallback, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { Link, Redirect, useParams } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { media } from 'web/styles/theme';\nimport quoteIcon from '../../../../assets/images/web/quote_icon.png';\nimport { track } from '../../services/analytics';\nimport { campaigns, user, users } from '../../services/api';\nimport theme from '../../styles/theme';\nimport { interpolateMessage } from '../../utils/other';\nimport AppContainer from '../AppContainer';\nimport AppHeader from '../AppHeader';\nimport Container from '../Container';\nimport BackButton from '../common/BackButton';\nimport { checkForPersonalizedLinks, convertLinks, personalizedLinkRegex } from '@web/utils/string';\n\nconst StyledButton = styled(Button)`\n color: ${theme.colors.white};\n font-family: ${theme.fonts.blackItalic};\n font-size: 16px;\n letter-spacing: 1.15px;\n text-align: center;\n text-transform: uppercase;\n\n ${({ $confirmContactState }) => {\n return (\n $confirmContactState &&\n `\n background: ${theme.colors.green} !important;\n border-color: ${theme.colors.green} !important;\n color: ${theme.colors.white} !important;\n `\n );\n }}\n\n &&& {\n height: 60px;\n line-height: 56px;\n }\n`;\n\nconst ProgressBar = styled(Progress)`\n .ant-progress-inner {\n background-color: #ddd;\n }\n\n &&& {\n .ant-progress-bg,\n .ant-progress-success-bg {\n background-color: ${theme.colors.red};\n }\n }\n`;\n\nconst ProgressCount = styled.p`\n color: ${theme.colors.lightBlack};\n font-family: ${theme.fonts.bold};\n letter-spacing: 1px;\n margin-bottom: 0;\n opacity: 0.6;\n padding: 0.5em 0;\n`;\n\nconst Title = styled.h3`\n font-family: ${theme.fonts.semibold};\n font-size: 1.75em;\n margin-bottom: 1em;\n`;\n\nconst Content = styled.div`\n margin: 2em 0;\n`;\n\nconst ScriptIcon = styled.img`\n position: absolute;\n`;\n\nconst ScriptText = styled.p`\n opacity: 0.6;\n padding: 2.5rem 1rem;\n white-space: pre-line;\n\n ${media.ns} {\n font-size: 1.25rem;\n }\n`;\n\nconst SuccessMessage = styled.p`\n font-family: ${theme.fonts.black};\n font-size: 1.5em;\n letter-spacing: 1px;\n margin: 1em 0;\n text-align: center;\n text-transform: uppercase;\n`;\n\nconst ButtonSection = styled.div`\n margin-top: 1rem;\n`;\n\nconst ScriptContainer = styled.div`\n min-height: 20rem;\n`;\n\nconst ScriptSkeleton = styled(Skeleton)`\n padding: 3rem 1rem;\n`;\n\nconst PersonalizedDisclaimer = styled.p`\n font-style: italic;\n text-align: center;\n font-size: 12px;\n`;\n\nconst TextAListActivity = () => {\n const { t } = useTranslation();\n const { userActivityId } = useParams();\n const [userActivity, setUserActivity] = useState();\n const { activity: { _type: activityType } = {} } = userActivity || {}; // extract activity type\n\n const { lastCampaignId, selectedCampaign } = useSelector(state => state.oneCampaign);\n\n const [loading, setLoading] = useState(true); // when loading initial data\n const [loadingScripts, setLoadingScripts] = useState(true); // when loading scripts for next contact\n const [sending, setSending] = useState(false); // when sending a message\n\n const [initialScript, setInitialScript] = useState(null);\n const [contactList, setContactList] = useState([]);\n const [contactIndex, setContactIndex] = useState(0);\n\n const [confirmContactMode, setConfirmContactMode] = useState(false);\n const [isConfirmContactState, setIsConfirmContactState] = useState(false);\n\n const [activityCompleted, setActivityCompleted] = useState(false);\n const [batchSendInfo, setBatchSendInfo] = useState([]);\n const [batchSendTimeout, setBatchSendTimeout] = useState(null);\n\n const contact = contactList[contactIndex] || null; // shorthand for accessing current contact\n const contactListExhausted = contactIndex >= contactList.length;\n\n const textingAllowed = userActivity?.activity?.campaign?.is_allowing_texting;\n const isSendButtonDisabled = !textingAllowed || !contact || loadingScripts || sending;\n\n const loadData = async () => {\n try {\n // First fetch userActivity data\n const {\n data: { data: activity },\n } = await user.getUserActivity(userActivityId);\n\n const {\n activity: {\n id: activityId,\n campaign: { p2p_confirm_mode },\n completed,\n },\n } = activity;\n\n if (completed) {\n setActivityCompleted(true);\n }\n\n // Next load contacts\n const {\n data: { data: contacts },\n } = await campaigns.getUserContactListContacts({ id: activityId, interpolate: true });\n\n // Set data\n if (p2p_confirm_mode) {\n setConfirmContactMode(true);\n setIsConfirmContactState(true);\n }\n\n setUserActivity(activity);\n setContactList(contacts);\n setLoading(false);\n } catch (err) {\n message.error(t('errors.activity_loading_failed'));\n }\n };\n\n // Load initial data required: userActivity + contactList\n useEffect(() => {\n loadData(userActivityId);\n // eslint-disable-next-line\n }, [userActivityId]);\n\n // Load scripts for each contacts because interpolation happens on the backend:\n useEffect(() => {\n if (!userActivity || !contact) return;\n\n const {\n activity: {\n id: activityId,\n campaign: { id: campaignId },\n },\n } = userActivity;\n\n const fetchScripts = async () => {\n if (contact.hasOwnProperty('activity_script')) {\n setInitialScript(contact.activity_script);\n return setLoadingScripts(false);\n }\n\n // Get scripts based on campaign, activity and currently selected contact\n setLoadingScripts(true);\n const {\n data: { data: activityScripts },\n } = await campaigns.getActivityScripts(campaignId, activityId, {\n contact_id: contact?.contact_id,\n preview_links: true,\n script_type: 'initial',\n });\n\n // Extract initial script(s) to be used for messaging and randomize if multiple\n const scripts = Object.values(activityScripts).filter(el => el.script_type === 'initial');\n const script = scripts[Math.floor(Math.random() * scripts.length)];\n\n setInitialScript(script);\n setLoadingScripts(false);\n };\n fetchScripts();\n }, [userActivity, contact]);\n\n useEffect(() => {\n const totalToSend = totalContactsToSend();\n if (!totalToSend) {\n return;\n }\n\n if (batchSendTimeout) {\n clearTimeout(batchSendTimeout);\n setBatchSendTimeout(null);\n }\n\n const reachedBatchThreshold = totalToSend >= 50;\n if (contactListExhausted || reachedBatchThreshold) {\n sendBatch();\n return;\n }\n\n const batchTimeout = setTimeout(() => {\n sendBatch();\n }, 2500);\n\n setBatchSendTimeout(batchTimeout);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [batchSendInfo, contactListExhausted]);\n\n const addContactForScript = useCallback(\n (scriptId, contact) => {\n if (!scriptId || !contact || !contact.id) {\n return;\n }\n\n const contactId = contact.id;\n const batchCopy = [...batchSendInfo];\n const existing = batchCopy.find(x => x.script_id === scriptId);\n if (!existing) {\n const newBatch = [\n ...batchCopy,\n {\n contact_ids: [contactId],\n script_id: scriptId,\n },\n ];\n setBatchSendInfo(newBatch);\n return;\n }\n\n if (!existing.contact_ids) {\n existing.contact_ids = [contactId];\n } else {\n existing.contact_ids.push(contactId);\n }\n\n setBatchSendInfo(batchCopy);\n },\n [batchSendInfo],\n );\n\n // Sends message to current contact (if any, and updates indexes for the next contact)\n const handleSendMessage = useCallback(() => {\n if (isSendButtonDisabled) {\n return;\n }\n\n if (isConfirmContactState) {\n setIsConfirmContactState(false);\n return;\n }\n\n addContactForScript(initialScript.id, contact);\n\n setContactIndex(contactIndex + 1);\n\n if (confirmContactMode) {\n setIsConfirmContactState(true);\n }\n }, [\n addContactForScript,\n confirmContactMode,\n contact,\n contactIndex,\n initialScript?.id,\n isConfirmContactState,\n isSendButtonDisabled,\n ]);\n\n useEffect(() => {\n const handleKeyDown = e => {\n if (e.key === 'Enter' || e.key === ' ') {\n handleSendMessage();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n\n return () => {\n window.removeEventListener('keydown', handleKeyDown);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [handleSendMessage]);\n\n const sendBatch = () => {\n setSending(true);\n\n if (!totalContactsToSend()) {\n setSending(false);\n return;\n }\n\n try {\n users.twilioBatchSend(userActivityId, batchSendInfo).then(() => {});\n } finally {\n setBatchSendInfo([]);\n setSending(false);\n }\n\n if (!activityCompleted) {\n track('COMPLETED_ACTIVITY', {\n activity_id: userActivity?.activity?.id,\n activity_title: userActivity?.activity?.title,\n campaign_id: userActivity?.activity?.campaign.id,\n campaign_name: userActivity?.activity?.campaign.name,\n });\n\n user.updateUserActivity(userActivityId, { completed: true });\n setActivityCompleted(true);\n }\n };\n\n const totalContactsToSend = () => {\n if (!batchSendInfo || !batchSendInfo.length) {\n return 0;\n }\n\n let count = 0;\n\n for (let i = 0; i < batchSendInfo.length; i++) {\n const info = batchSendInfo[i];\n count += (info.contact_ids && info.contact_ids.length) || 0;\n }\n\n return count;\n };\n\n const capitalizedContactName = contact => {\n const full_name = `${contact.first_name?.trim()} ${contact.last_name?.trim()}`;\n return full_name\n .split(' ')\n .map(el => (el === el.toUpperCase() ? _.capitalize(el) : el))\n .join(' ');\n };\n\n const script = useMemo(() => {\n if (loading || !initialScript?.script) return '';\n let interpolatedData = interpolateMessage(initialScript?.script, contact || 'complete');\n interpolatedData = convertLinks(interpolatedData, {\n skipRegex: personalizedLinkRegex,\n });\n\n return interpolatedData;\n }, [contact, initialScript?.script, loading]);\n\n const showPersonalizedDisclaimer = checkForPersonalizedLinks(script);\n\n // Redirect if activity type doesn't match this action\n if (activityType && activityType !== 'text_a_list_activities') {\n message.error(t('errors.activity_type_mismatch'));\n return <Redirect to={`/activities/${userActivityId}`} />;\n }\n\n if (selectedCampaign?.id && lastCampaignId && selectedCampaign?.id !== lastCampaignId) {\n return <Redirect to={`/frontline`} />;\n }\n\n if (loading) {\n return (\n <>\n <AppHeader title={t('activity.p2p.header_title')} />\n <AppContainer>\n <Container>{t('common.loading')}</Container>\n </AppContainer>\n </>\n );\n }\n\n return (\n <>\n <AppHeader title={t('activity.p2p.header_title')} />\n <AppContainer>\n <div className=\"flex-row justify-content-center\">\n <div style={{ maxWidth: '500px', width: '100%' }}>\n <Container>\n <>\n <Row style={{ marginBottom: '1rem' }}>\n <BackButton />\n </Row>\n <Row>\n <Col span={24} style={{ textAlign: 'right' }}>\n <Row>\n <ProgressBar\n percent={(contactIndex / contactList.length) * 100}\n showInfo={false}\n />\n </Row>\n <Row>\n <ProgressCount>{`${contactIndex} ${t('activity.p2p.of')} ${\n contactList.length\n } ${t('activity.p2p.messages')}`}</ProgressCount>\n </Row>\n </Col>\n </Row>\n {contact && (\n <Row>\n <Col span={24}>\n <Content>\n <Title>\n {t('activity.p2p.send_to')} {capitalizedContactName(contact)}\n </Title>\n <ScriptIcon src={quoteIcon} width={40} height={40} alt=\"quote\" />\n <ScriptContainer>\n {loadingScripts ? (\n <ScriptSkeleton active title={false} paragraph={{ rows: 6 }} />\n ) : (\n <ScriptText\n dangerouslySetInnerHTML={{\n __html: script,\n }}\n />\n )}\n </ScriptContainer>\n </Content>\n <ButtonSection>\n {showPersonalizedDisclaimer && (\n <PersonalizedDisclaimer>\n {t('activity.p2p.personalized_disclaimer')}\n </PersonalizedDisclaimer>\n )}\n <StyledButton\n block\n $confirmContactState={isConfirmContactState}\n type=\"primary\"\n size=\"large\"\n loading={sending}\n disabled={isSendButtonDisabled}\n onClick={handleSendMessage}\n >\n {isConfirmContactState\n ? `${t('activity.p2p.confirm_send')} ${contact.first_name}`\n : t('common.send')}\n </StyledButton>\n </ButtonSection>\n {!textingAllowed && (\n <p>\n <b>{t('activity.p2p.texting_not_allowed')}</b>{' '}\n <i>{t('activity.p2p.try_later')}</i>\n </p>\n )}\n </Col>\n </Row>\n )}\n\n {!contact && contactList.length > 0 && contactListExhausted && (\n <Row>\n <Col span={24}>\n <Content>\n <SuccessMessage>{t('activity.p2p.nice_work')}</SuccessMessage>\n <SuccessMessage>{t('activity.p2p.responses_inbox')}</SuccessMessage>\n </Content>\n <ButtonSection>\n <StyledButton block type=\"primary\" size=\"large\" href=\"\">\n {t('activity.p2p.keep_texting')}\n </StyledButton>\n </ButtonSection>\n </Col>\n </Row>\n )}\n\n {!contact && contactList.length === 0 && (\n <Row>\n <Col span={24}>\n <Content>\n <SuccessMessage>{t('activity.p2p.no_contacts')} </SuccessMessage>\n <SuccessMessage>{t('activity.p2p.check_inbox_responses')}</SuccessMessage>\n </Content>\n <ButtonSection>\n <Link to=\"/messages\">\n <StyledButton block type=\"primary\" size=\"large\">\n {t('activity.p2p.check_inbox')}\n </StyledButton>\n </Link>\n </ButtonSection>\n </Col>\n </Row>\n )}\n </>\n </Container>\n </div>\n </div>\n </AppContainer>\n </>\n );\n};\n\nTextAListActivity.propTypes = {};\n\nexport default TextAListActivity;\n","import { string, oneOfType, arrayOf } from 'prop-types';\nimport React, { useContext } from 'react';\nimport { Route, useHistory, useLocation } from 'react-router-dom';\nimport { user as userAPI } from 'web/services/api';\nimport { AuthContext } from 'web/utils/context';\nimport { isAuthFinished } from '@web/utils/other';\n\nconst UnauthenticatedRoute = props => {\n const history = useHistory();\n const { token, campaign, setUser } = useContext(AuthContext);\n const { pathname } = useLocation();\n\n const isUnauthenticatedRoute =\n pathname.includes('auth') ||\n pathname.includes('pledge_to_vote') ||\n pathname.includes('check_registration') ||\n pathname.includes('confirm_address') ||\n pathname.includes('voting_information');\n\n React.useEffect(() => {\n // Keep logged in users on magic-auth page if they landed there\n if (token && pathname.includes('auth/magic-link')) {\n return;\n }\n\n // redirect when someone is logged in but lands on any other auth page\n // (this includes visiting app domiain directly)\n if (token && pathname.includes('auth')) {\n userAPI.getProfile().then(({ data }) => {\n const { data: userData } = data;\n setUser(userData);\n\n if (userData?.is_campaign_admin) {\n // hard reload (switch to) admin react app\n window.location.href = '/admin';\n } else {\n if (isAuthFinished(userData)) {\n history.push('/frontline');\n } else {\n if (campaign?.slug) {\n history.push(`/auth/join-campaign/${campaign.slug}`);\n } else {\n history.push('/auth/join-campaign');\n }\n }\n }\n });\n }\n // Purpusefully only running on initial page loads to redirect anyone that lands on these pages while logged in\n // but not when redirected\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (!token || !isUnauthenticatedRoute) {\n return <Route {...props} />;\n }\n\n return <Route {...props} />;\n};\n\nUnauthenticatedRoute.propTypes = {\n path: oneOfType([string, arrayOf(string)]).isRequired,\n};\n\nexport default UnauthenticatedRoute;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory, useLocation } from 'react-router-dom';\n\nimport { useDocumentTitle } from '../../hooks/useDocumentTitle';\nimport AppContainer from '../AppContainer';\nimport AppHeader from '../AppHeader';\nimport VoterMatchCore from './VoterMatchCore';\n\nconst VoterMatch = () => {\n const { t } = useTranslation();\n const { state } = useLocation();\n const {\n contactId,\n voter: voterParams,\n voterbaseId,\n isFriend,\n userActivityId,\n activityId,\n campaignId,\n } = state || {};\n\n useDocumentTitle(t('titles.voter_file'));\n\n const history = useHistory();\n const vfirst =\n voterParams && voterParams['vb.tsmart_first_name']\n ? voterParams && voterParams['vb.tsmart_first_name']\n : '';\n const vsecond =\n voterParams && voterParams['vb.tsmart_last_name']\n ? voterParams && voterParams['vb.tsmart_last_name']\n : '';\n\n return (\n <div>\n <AppHeader title={t('titles.voter_file')} />\n <AppContainer>\n <VoterMatchCore\n contactId={contactId}\n voterParams={voterParams}\n voterbaseId={voterbaseId}\n isFriend={isFriend}\n userActivityId={userActivityId}\n activityId={activityId}\n campaignId={campaignId}\n onBadMatch={() => {\n history.push({\n pathname: '/voters',\n state: {\n contact_id: contactId,\n firstName: vfirst,\n lastName: vsecond,\n },\n });\n }}\n onSaveMatchFinally={() => null}\n redirectIfNoVoterInfo\n />\n </AppContainer>\n </div>\n );\n};\n\nVoterMatch.propTypes = {};\n\nexport default VoterMatch;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nconst Wrapper = styled.div``;\n\nconst Term = styled.span`\n font-family: ${({ theme }) => theme.fonts.bold};\n`;\n\nconst Description = styled.span`\n ${({ vertical }) =>\n vertical\n ? `\n display: block;\n margin-top: 6px;\n `\n : `\n padding-left: 5px;\n\n @media screen and (max-width: 767px) {\n padding-left: 0;\n display: block;\n margin-top: 6px;\n }\n `}\n`;\n\nconst Help = styled.div`\n font-size: 0.75em;\n line-height: 1.4;\n margin-top: 0.5em;\n`;\n\nconst Definition = ({ term, description, help, vertical, ...rest }) => (\n <Wrapper {...rest}>\n <Term>{term}</Term>\n {description && <Description vertical={vertical}>{description}</Description>}\n {help && <Help>{help}</Help>}\n </Wrapper>\n);\n\nDefinition.propTypes = {\n description: PropTypes.node,\n help: PropTypes.string,\n term: PropTypes.string.isRequired,\n vertical: PropTypes.bool,\n};\n\nexport default Definition;\n","import { CheckCircleOutlined } from '@ant-design/icons';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport styled from 'styled-components';\n\nconst Wrapper = styled.span`\n color: #096e03;\n font-family: ${({ theme }) => theme.fonts.bold};\n`;\n\nconst CheckIcon = styled(CheckCircleOutlined)`\n && {\n font-size: 20px;\n margin-left: 8px;\n vertical-align: top;\n }\n`;\n\nconst SuccessText = ({ children, ...rest }) => (\n <Wrapper {...rest}>\n {children}\n <CheckIcon />\n </Wrapper>\n);\n\nSuccessText.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n};\n\nexport default SuccessText;\n","import styled from 'styled-components';\nimport ImpactiveButton from '../ImpactiveButton';\n\nexport const Section = styled.div`\n font-size: 16px;\n line-height: 1.25;\n margin-top: 1.5em;\n padding-bottom: 2em;\n\n &:not(:last-child) {\n border-bottom: 1px solid ${({ theme }) => theme.colors.borderGray};\n margin-bottom: 2em;\n }\n`;\n\nexport const Heading = styled.h4`\n color: #000;\n font-size: 1.25em;\n font-family: ${({ theme }) => theme.fonts.semibold};\n line-height: 1.3;\n text-transform: capitalize;\n margin: 0;\n`;\n\nexport const Description = styled.div`\n font-size: 16px;\n line-height: 22px;\n opacity: 0.85;\n margin: 8px 0 12px;\n`;\n\nexport const DefinitionList = styled.div`\n > * {\n margin-top: 1em;\n }\n`;\n\nexport const Link = styled.a`\n display: inline-block;\n font-family: ${({ theme }) => theme.fonts.boldItalic};\n`;\n\nexport const BoldText = styled.span`\n font-family: ${({ theme }) => theme.fonts.bold};\n ${({ danger, theme }) => danger && `color: ${theme.colors.red};`}\n`;\n\nexport const TeamSection = styled(Section)`\n font-size: 18px;\n`;\n\nexport const TeamButtonsContainer = styled.div`\n margin-top: 20px;\n`;\n\nexport const TeamInviteLink = styled.div`\n font-size: 14px;\n opacity: 0.6;\n margin: 10px 0 16px;\n`;\n\nexport const ButtonsRow = styled.div`\n margin-top: 0.5rem;\n margin-bottom: -10px;\n\n > * {\n margin-bottom: 10px;\n\n &:not(:last-child) {\n margin-right: 10px;\n }\n }\n\n ${({ fullWithOnMobile }) =>\n fullWithOnMobile &&\n `\n @media screen and (max-width: 767px) {\n > *, button {\n display: block;\n width: 100%;\n }\n }\n `}\n`;\n\nexport const ShareButtonInner = styled(ImpactiveButton).attrs({ forwardedAs: 'span' })`\n display: flex;\n align-items: center;\n`;\n","import {\n LoadingOutlined,\n TwitterOutlined,\n FacebookOutlined,\n MailOutlined,\n UploadOutlined,\n ExclamationCircleOutlined,\n} from '@ant-design/icons';\nimport { Tag, Alert, Button, Spin, Row, Col, Tooltip, message } from 'antd';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/es';\nimport PropTypes from 'prop-types';\nimport queryString from 'query-string';\nimport React, { useEffect, useState, useCallback } from 'react';\nimport Clipboard from 'react-clipboard.js';\nimport { useTranslation } from 'react-i18next';\nimport { FacebookShareButton, TwitterShareButton } from 'react-share';\nimport { ContactRegistrationStatusTypes as RegistrationStatusTypes } from '../../constants';\nimport { track, trackPageViewWithDynamicIDs } from '../../services/analytics';\nimport { campaigns, users, teams } from '../../services/api';\nimport ImpactiveButton from '../ImpactiveButton';\nimport VoterRegistrationTemplate from '../templates/VoterRegistrationTemplate';\nimport Definition from './Definition';\nimport SuccessText from './SuccessText';\nimport {\n Section,\n Heading,\n Description,\n DefinitionList,\n Link,\n BoldText,\n TeamSection,\n TeamButtonsContainer,\n TeamInviteLink,\n ButtonsRow,\n ShareButtonInner,\n} from './styles';\n\nconst VotingInformation = props => {\n const { campaignId, contactId } = props.match.params; // can be either campaign `id` or `slug`\n const { h, referral_hash } = queryString.parse(props.location.search);\n const { t } = useTranslation();\n const locale = window.localStorage.getItem('locale');\n\n const formatDate = str => {\n if (str) {\n return dayjs(str, 'MM-DD-YY').locale(locale).format('MMMM D');\n }\n };\n\n const [campaign, setCampaign] = useState({});\n const [contact, setContact] = useState({});\n const [team, setTeam] = useState();\n const [loading, setLoading] = useState(true);\n\n const hostname = `${window.location.protocol}//${window.location.host}`;\n const query = queryString.stringify({ contact_referral_id: contactId, referral_hash });\n const checkRegistrationLink = `${hostname}/campaigns/${campaignId}/check_registration?${query}`;\n\n useEffect(() => {\n track('VIEW_VOTING_INFORMATION');\n setLoading(true);\n Promise.all([\n campaigns.getPublicCampaign({ id: campaignId }),\n campaigns.getMyRecord({ h, id: contactId }),\n ])\n .then(([campaignResponse, contactResponse]) => {\n const campaign = campaignResponse.data.data;\n setCampaign(campaign);\n setContact(contactResponse.data);\n\n trackPageViewWithDynamicIDs({\n fbPixelId: campaign.fb_pixel_id,\n gaTrackingId: campaign.ga_tracking_id,\n snapchatPixelId: campaign.snapchat_pixel_id,\n });\n\n if (referral_hash) {\n return users\n .getUserByReferralHash(referral_hash)\n .then(({ data: { data: user } }) => {\n return teams.getTeam({ filters: { campaign_id: campaign.id }, id: user.id });\n })\n .then(({ data: { data: team } }) => setTeam(team))\n .catch(error => {\n // Catch error and make this promise always resolved,\n // so we can render this view at least\n console.error('get team data >', error);\n });\n }\n\n return;\n })\n .then(() => setLoading(false));\n }, [campaignId, contactId, h, referral_hash]);\n\n const updateContact = useCallback(\n body => {\n users\n .updateContact(contactId, body, h)\n .then(({ data }) => setContact(contact => ({ ...contact, ...data })));\n },\n [contactId, h],\n );\n\n const handleNativeShare = useCallback(() => {\n if (navigator.share) {\n navigator.share({ url: checkRegistrationLink }).catch(console.error);\n }\n }, [checkRegistrationLink]);\n\n if (loading) {\n return (\n <div className=\"flex-row justify-content-center mt-4\">\n <Spin indicator={<LoadingOutlined style={{ fontSize: 24 }} spin />} />\n </div>\n );\n }\n\n const shareNowVisible = !!navigator.share;\n const inviteSection = (\n <TeamSection id=\"team-section\">\n <Heading>{t('voting_information.share.title')}</Heading>\n <Description>{campaign.rewards || t('voting_information.share.description')}</Description>\n <ButtonsRow fullWithOnMobile>\n {shareNowVisible && (\n <ImpactiveButton onClick={handleNativeShare}>\n <UploadOutlined /> {t('voting_information.share.share_now')}\n </ImpactiveButton>\n )}\n {!shareNowVisible && (\n <Clipboard\n component=\"span\"\n data-clipboard-text={checkRegistrationLink}\n onSuccess={() => message.info(t('common.copied_to_clipboard'))}\n >\n <Tooltip placement=\"top\" title={checkRegistrationLink}>\n <ImpactiveButton>{t('voting_information.share.copy_share_link')}</ImpactiveButton>\n </Tooltip>\n </Clipboard>\n )}\n <FacebookShareButton url={checkRegistrationLink}>\n <ShareButtonInner>\n <FacebookOutlined /> {t('voting_information.share.facebook')}\n </ShareButtonInner>\n </FacebookShareButton>\n <TwitterShareButton url={checkRegistrationLink}>\n <ShareButtonInner>\n <TwitterOutlined /> {t('voting_information.share.twitter')}\n </ShareButtonInner>\n </TwitterShareButton>\n <ImpactiveButton\n onClick={() =>\n window.open(`mailto:?body=${encodeURIComponent(checkRegistrationLink)}`, '_blank')\n }\n >\n <MailOutlined /> {t('voting_information.share.email')}\n </ImpactiveButton>\n </ButtonsRow>\n </TeamSection>\n );\n\n if (contact.registration_status === RegistrationStatusTypes.UNABLE_TO_VOTE) {\n return (\n <VoterRegistrationTemplate campaign={campaign} team={team} stepCount={2} currentStep={2}>\n {inviteSection}\n </VoterRegistrationTemplate>\n );\n }\n\n // TODO: Wire up with team API data\n // const joinedTeam = false;\n const state = contact.state_abbrev ? t(`states.${contact.state_abbrev}`) : undefined;\n const vbm_request_deadline = contact.voting_info.general_vbm_request_deadline\n ? formatDate(contact.voting_info.general_vbm_request_deadline)\n : '';\n\n return (\n <VoterRegistrationTemplate\n campaign={campaign}\n team={team}\n stepCount={3}\n currentStep={3}\n title={t('voting_information.title_with_state', { state })}\n instruction={t('voting_information.disclaimer')}\n data-testid=\"voting-information\"\n >\n <Alert\n style={{ marginTop: 20 }}\n message=\"Thanks for checking your registration! You should receive an email with a link to this page which you can use to check your current status at any time.\"\n type=\"success\"\n showIcon\n closable\n />\n <Section>\n <Heading>{t('voting_information.voter_registration')}</Heading>\n <Row gutter={60}>\n <Col span={24} md={24}>\n {contact.registration_status === RegistrationStatusTypes.REGISTERED ? (\n <DefinitionList>\n <Definition\n term={t('voting_information.your_registration_status')}\n description={<SuccessText>{t('voting_information.confirmed')}</SuccessText>}\n />\n </DefinitionList>\n ) : (\n <DefinitionList>\n <Definition\n term={t('voting_information.your_registration_status')}\n description={\n <BoldText danger={!contact.reported_registered}>\n {contact.registration_status}\n </BoldText>\n }\n help={\n contact.registration_status === RegistrationStatusTypes.DIFFERENT_ADDRESS\n ? `Your addresses don't match. You provided an address beginning with: ${contact.address}, but the address on the voter file begins with: ${contact.voterfile.address}`\n : contact.registration_status === RegistrationStatusTypes.UNCONFIRMED\n ? t('voting_information.your_registration_status_help')\n : ''\n }\n />\n </DefinitionList>\n )}\n </Col>\n <Col span={24} md={24}>\n <DefinitionList>\n <Definition\n term={t('voting_information.deadline_to_register')}\n description={formatDate(\n contact.voting_info.can_register_online\n ? contact.voting_info.online_reg_deadline\n : contact.voting_info.mail_reg_deadline_postmarked,\n )}\n />\n {contact.registration_status !== RegistrationStatusTypes.REGISTERED &&\n (!contact.reported_registered ||\n contact.registration_status === RegistrationStatusTypes.DIFFERENT_ADDRESS) && (\n <>\n <Tag\n style={{ marginTop: 20 }}\n icon={<ExclamationCircleOutlined />}\n color=\"error\"\n >\n Next Steps\n </Tag>\n {contact.voting_info.can_register_online ? (\n <Link\n style={{ display: 'block', marginTop: 10 }}\n href={contact.voting_info.online_reg_link}\n target=\"_blank\"\n >\n {t('voting_information.online_registration_link')}\n </Link>\n ) : (\n <Definition\n term={t('voting_information.can_register_online')}\n description={t('common.no')}\n />\n )}\n <Link\n style={{ display: 'block' }}\n target=\"_blank\"\n href={contact.voting_info.paper_reg_link}\n >\n {t('voting_information.how_to_register_by_mail')}\n </Link>\n {!campaign.is_sending_registration_forms &&\n contact.voting_info.accepts_national_reg_form && (\n <Link\n style={{ display: 'block' }}\n target=\"_blank\"\n href=\"https://www.eac.gov/sites/default/files/eac_assets/1/6/Federal_Voter_Registration_ENG.pdf\"\n >\n {t('voting_information.national_voter_registration_form')}\n </Link>\n )}\n </>\n )}\n <div>\n {((contact.registration_status !== RegistrationStatusTypes.REGISTERED &&\n contact.registration_status !== RegistrationStatusTypes.UNCONFIRMED) ||\n !campaign.is_sending_registration_forms ||\n contact.requested_registration_form === 'no') && (\n <div style={{ marginTop: 15 }}>\n <Definition\n term={\n contact.registration_status === RegistrationStatusTypes.DIFFERENT_ADDRESS\n ? t('Were you able to update your registration?')\n : t('Were you able to register to vote?')\n }\n />\n <ButtonsRow>\n <Button\n type={\n contact.reported_registered &&\n contact.registration_status !== RegistrationStatusTypes.DIFFERENT_ADDRESS\n ? 'primary'\n : 'default'\n }\n onClick={() => {\n updateContact({\n reg_state: 'not_sent',\n registration_status: RegistrationStatusTypes.UNCONFIRMED,\n reported_registered: true,\n });\n message.success(\n 'Amazing! The next step is to get your absentee ballot.',\n 3,\n );\n }}\n >\n {t('Yes')}\n </Button>\n <Button\n type={!contact.reported_registered ? 'primary' : 'default'}\n onClick={() => {\n updateContact({\n reg_state: 'unable_to_register_online',\n registration_status: RegistrationStatusTypes.UNREGISTERED,\n reported_registered: false,\n });\n }}\n >\n {t('No')}\n </Button>\n {contact.registration_status ===\n RegistrationStatusTypes.DIFFERENT_ADDRESS && (\n <Button\n onClick={() => {\n updateContact({\n registration_status: RegistrationStatusTypes.REGISTERED,\n });\n }}\n >\n {t('Addresses are fine.')}\n </Button>\n )}\n </ButtonsRow>\n </div>\n )}\n {campaign.is_sending_registration_forms &&\n !contact.reported_registered &&\n contact.registration_status !== RegistrationStatusTypes.DIFFERENT_ADDRESS && (\n <div style={{ marginTop: 15 }}>\n <Definition term={t('Should we mail you a registration form?')} />\n <ButtonsRow>\n <Button\n type={\n contact.requested_registration_form === 'yes' ? 'primary' : 'default'\n }\n onClick={() => {\n updateContact({\n reported_registered: false,\n requested_registration_form: 'yes',\n });\n message.success(\n 'Success! You will receive a voter registration form in the mail in the next 5-7 days.',\n 3,\n );\n document\n .getElementById('team-section')\n .scrollIntoView({ behavior: 'smooth', block: 'center' });\n }}\n >\n {t('Yes')}\n </Button>\n <Button\n type={\n contact.requested_registration_form === 'no' ? 'primary' : 'default'\n }\n onClick={() => {\n updateContact({\n requested_registration_form: 'no',\n });\n }}\n >\n {t('No')}\n </Button>\n </ButtonsRow>\n </div>\n )}\n </div>\n </DefinitionList>\n </Col>\n </Row>\n </Section>\n {(contact.registration_status === RegistrationStatusTypes.REGISTERED ||\n contact.reported_registered) && (\n <Section id=\"vbm-section\">\n <Row gutter={60}>\n <Col span={24} md={12} style={{ marginBottom: 40 }}>\n <Heading>{t('voting_information.vbm')}</Heading>\n <DefinitionList>\n {contact.vbm_state === 'returned_ballot' && (\n <Definition\n term={'Your voting status:'}\n description={\n <SuccessText>\n {t('Congratulations! You have successfully voted.')}\n </SuccessText>\n }\n />\n )}\n {contact.vbm_state !== 'returned_ballot' && (\n <Definition\n term={'Your vote by mail status:'}\n description={\n <BoldText danger={!contact.reported_requested_vbm}>\n {contact.vbm_state === 'returned_ballot'\n ? 'Ballot Returned'\n : contact.vbm_state === 'received_ballot'\n ? 'Ballot Received'\n : contact.automatic_vbm\n ? 'Ballot Sent Automatically'\n : contact.reported_requested_vbm\n ? 'Ballot Requested'\n : 'Ballot Not Requested'}\n </BoldText>\n }\n />\n )}\n {contact.can_vbm && contact.automatic_vbm && (\n <Definition\n term={t('Automatic Vote By Mail')}\n description={<p>{t('voting_information.automatic_vbm_instruction')}</p>}\n />\n )}\n {contact.can_vbm && !contact.automatic_vbm && (\n <>\n <Definition\n term={t('voting_information.ballot_request_deadline')}\n description={vbm_request_deadline}\n />\n <Alert\n style={{ marginTop: 20 }}\n message={t('voting_information.voter_reg_required')}\n type=\"info\"\n showIcon\n closable\n />\n {!contact.reported_requested_vbm && (\n <Tag\n style={{ marginTop: 20 }}\n icon={<ExclamationCircleOutlined />}\n color=\"error\"\n >\n Next Steps\n </Tag>\n )}\n <Definition\n style={{ marginTop: 10 }}\n term={t('voting_information.request_absentee_ballot')}\n />\n <div className=\"mt-2\">\n <Link\n disabled={!contact.can_vbm_online}\n target=\"_blank\"\n href={contact.voting_info.online_vbm_request_link}\n >\n {t('Request your absentee ballot online')}\n </Link>\n </div>\n <div className=\"mt-2\">\n <Link target=\"_blank\" href={contact.voting_info.paper_vbm_request_link}>\n {t('voting_information.print_your_application')}\n </Link>\n </div>\n {campaign.is_sending_vbm_forms &&\n contact.state_abbrev &&\n !contact.state_abbrev.match(/KY|SC|MS/) &&\n !contact.automatic_vbm && (\n <>\n <Definition\n term={t('Should we mail you a form to request an absentee ballot?')}\n />\n <ButtonsRow>\n <Button\n type={\n contact.requested_absentee_form === 'yes' ? 'primary' : 'default'\n }\n onClick={() => {\n updateContact({\n reported_requested_vbm: false,\n requested_absentee_form: 'yes',\n });\n message.success(\n 'Success! You will receive an absentee ballot request form in the mail in the next 5-7 days.',\n 3,\n );\n document\n .getElementById('team-section')\n .scrollIntoView({ behavior: 'smooth', block: 'center' });\n }}\n >\n {t('Yes')}\n </Button>\n <Button\n type={\n contact.requested_absentee_form === 'no' ? 'primary' : 'default'\n }\n onClick={() => {\n updateContact({\n requested_absentee_form: 'no',\n });\n }}\n >\n {t('No')}\n </Button>\n </ButtonsRow>\n </>\n )}\n {(!campaign.is_sending_vbm_forms || contact.requested_absentee_form === 'no') &&\n !contact.automatic_vbm && (\n <>\n <Definition term={t('Were you able to request an absentee ballot?')} />\n <ButtonsRow>\n <Button\n type={contact.reported_requested_vbm ? 'primary' : 'default'}\n onClick={() => {\n updateContact({\n reported_requested_vbm: true,\n vbm_state: 'not_sent',\n });\n message.success(\n 'Congratulations! Now just wait to receive your ballot and return it right away when it arrives!',\n 3,\n );\n }}\n >\n {t('Yes')}\n </Button>\n <Button\n type={!contact.reported_requested_vbm ? 'primary' : 'default'}\n onClick={() => {\n updateContact({\n reported_requested_vbm: false,\n vbm_state: 'unable_to_request_online',\n });\n }}\n >\n {t('No')}\n </Button>\n </ButtonsRow>\n </>\n )}\n {contact.requested_absentee_form === 'yes' &&\n contact.vbm_state !== 'not_sent' && (\n <>\n <Definition term={t('voting_information.received_ballot_app.question')} />\n <ButtonsRow>\n <Button\n type={contact.vbm_state === 'received_form' ? 'primary' : 'default'}\n onClick={() => {\n updateContact({\n vbm_state: 'received_form',\n });\n }}\n >\n {t('Yes')}\n </Button>\n <Button\n type={\n contact.vbm_state === 'never_received_form' ? 'primary' : 'default'\n }\n onClick={() => {\n updateContact({\n vbm_state: 'never_received_form',\n });\n }}\n >\n {t('No')}\n </Button>\n </ButtonsRow>\n </>\n )}\n {contact.requested_absentee_form === 'yes' &&\n contact.vbm_state === 'received_form' && (\n <>\n <Definition\n term={t('voting_information.write_excuse')}\n description={\n contact.voting_info.vbm_excuse_info ||\n t('voting_information.no_excuse_with_state', { state })\n }\n vertical\n />\n <Definition\n term={t(\n 'You have received your application! Have you been able to return it yet?',\n )}\n />\n <ButtonsRow>\n <Button\n type={contact.reported_requested_vbm ? 'primary' : 'default'}\n onClick={() => {\n updateContact({\n reported_requested_vbm: true,\n });\n }}\n >\n {t('Yes')}\n </Button>\n <Button\n type={!contact.reported_requested_vbm ? 'primary' : 'default'}\n onClick={() => {\n updateContact({\n reported_requested_vbm: false,\n });\n }}\n >\n {t('No')}\n </Button>\n </ButtonsRow>\n </>\n )}\n {contact.reported_requested_vbm &&\n (contact.requested_absentee_form !== 'yes' ||\n (contact.requested_absentee_form === 'yes' &&\n [\n 'received_form',\n 'received_ballot',\n 'never_received_ballot',\n 'returned_ballot',\n ].includes(contact.vbm_state) && (\n <>\n <Definition\n term={t(\n 'You should be receiving your ballot in the mail. Have you received it yet?',\n )}\n />\n <ButtonsRow>\n <Button\n type={\n contact.vbm_state === 'received_ballot' ? 'primary' : 'default'\n }\n onClick={() => {\n updateContact({\n vbm_state: 'received_ballot',\n });\n message.success(\n 'Amazing! Make sure to return it right away!.',\n 3,\n );\n }}\n >\n {t('Yes')}\n </Button>\n <Button\n type={\n contact.vbm_state === 'never_received_ballot'\n ? 'primary'\n : 'default'\n }\n onClick={() => {\n updateContact({\n vbm_state: 'never_received_ballot',\n });\n }}\n >\n {t('No')}\n </Button>\n <Button\n type={\n contact.vbm_state === 'returned_ballot' ? 'primary' : 'default'\n }\n onClick={() => {\n updateContact({\n vbm_state: 'returned_ballot',\n });\n message.success(\n 'Congratulations, you voted! Now make sure your friends have voted too!',\n 3,\n );\n document\n .getElementById('team-section')\n .scrollIntoView({ behavior: 'smooth', block: 'center' });\n }}\n >\n {t('I already returned it!')}\n </Button>\n </ButtonsRow>\n </>\n )))}\n </>\n )}\n {!contact.voting_info.can_vbm && (\n <Definition>\n <div>\n <BoldText>\n {t('voting_information.cannot_vbm_with_state', { state })}\n </BoldText>\n </div>\n </Definition>\n )}\n </DefinitionList>\n </Col>\n <Col span={24} md={12}>\n <Heading>{t('voting_information.early_voting')}</Heading>\n {contact.voting_info.in_person_early_voting && (\n <DefinitionList>\n <Definition\n term={t('voting_information.early_voting_starts')}\n description={formatDate(contact.voting_info.early_vote_start)}\n />\n <Definition\n term={t('voting_information.early_voting_ends')}\n description={formatDate(contact.voting_info.early_vote_end)}\n />\n </DefinitionList>\n )}\n {!contact.voting_info.in_person_early_voting && (\n <DefinitionList>\n <div>\n <BoldText>\n {t('voting_information.cannot_early_voting_with_state', { state })}\n </BoldText>\n </div>\n </DefinitionList>\n )}\n </Col>\n </Row>\n </Section>\n )}\n {inviteSection}\n {false && (\n <TeamSection>\n <Heading>\n {t('voting_information.invite_friends_to_team_with_name', { name: 'Ashton Kutcher' })}\n </Heading>\n <TeamInviteLink>https://campaigns.impactive.io/akutcher9038479</TeamInviteLink>\n <ImpactiveButton>{t('voting_information.copy_invite_link')}</ImpactiveButton>\n </TeamSection>\n )}\n {false && (\n <TeamSection>\n <Heading>\n {t('voting_information.finish_joining_team_with_name', { name: 'Ashton Kutcher' })}\n </Heading>\n <Description\n dangerouslySetInnerHTML={{ __html: t('voting_information.signup_download_cta') }}\n />\n <Link href=\"#\">{t('voting_information.send_app_download_link')}</Link>\n <TeamButtonsContainer>\n <ImpactiveButton>{t('voting_information.signup_online')}</ImpactiveButton> \n <ImpactiveButton>{t('voting_information.signin')}</ImpactiveButton>\n </TeamButtonsContainer>\n </TeamSection>\n )}\n {contact.registration_status !== RegistrationStatusTypes.UNABLE_TO_VOTE && (\n <Alert\n message=\"Information was collected from secretaries of state offices, monitoring official websites, and local election officials. If you notice any updated voting rules not published on this website please email support@impactive.io.\"\n type=\"info\"\n showIcon\n />\n )}\n </VoterRegistrationTemplate>\n );\n};\n\nVotingInformation.propTypes = {\n location: PropTypes.shape({\n search: PropTypes.string.isRequired,\n }).isRequired,\n match: PropTypes.shape({\n params: PropTypes.shape({\n campaignId: PropTypes.string.isRequired,\n contactId: PropTypes.string.isRequired,\n }).isRequired,\n }).isRequired,\n};\n\nexport default VotingInformation;\n","import React from 'react';\n\nimport Title from '@web/components/common/Title';\nimport ImpactiveLink from '@web/components/common/Link';\n\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport { media } from '@web/styles/theme';\n\nconst Wrapper = styled.div`\n background: white;\n padding: 2.5rem 3.125rem 3.125rem;\n box-shadow: 4px 4px 20px rgba(0, 16, 72, 0.06);\n border-radius: 16px;\n margin-bottom: 2rem;\n ${media.nxl} {\n padding: 1.5rem 2.125rem 2.125rem;\n }\n`;\n\nconst TitleWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: ${({ allowMargin }) => (allowMargin ? '3rem' : '0')};\n`;\n\nconst TitleAndSubtitle = styled.div``;\n\nconst Subtitle = styled.div`\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1rem;\n color: ${({ theme }) => theme.colors.black};\n`;\n\nconst Buttons = styled.div`\n display: flex;\n`;\n\nconst ContentWrapper = ({\n children,\n title,\n showAddManuallyButton,\n showSearchAgainButton,\n subtitle,\n}) => {\n const { t } = useTranslation();\n\n const addManuallyButton = () => (\n <ImpactiveLink to={'/add-report/new-voter-report'}>\n {t('add_report.buttons.add_manually')}\n </ImpactiveLink>\n );\n\n const searchAgainButton = () => (\n <ImpactiveLink to={'/add-report'}>{t('add_report.buttons.search_again')}</ImpactiveLink>\n );\n\n return (\n <Wrapper>\n {title && (\n <TitleWrapper allowMargin={children}>\n <TitleAndSubtitle>\n <Title>{title}</Title>\n {subtitle && <Subtitle>{subtitle}</Subtitle>}\n </TitleAndSubtitle>\n <Buttons>\n {showAddManuallyButton && addManuallyButton()}\n {showSearchAgainButton && searchAgainButton()}\n </Buttons>\n </TitleWrapper>\n )}\n {children}\n </Wrapper>\n );\n};\n\nContentWrapper.propTypes = {\n buttons: PropTypes.node,\n children: PropTypes.node,\n showAddManuallyButton: PropTypes.bool,\n showSearchAgainButton: PropTypes.bool,\n subtitle: PropTypes.string,\n title: PropTypes.string,\n};\n\nContentWrapper.defaultProps = {\n buttons: null,\n children: null,\n showAddManuallyButton: false,\n showSearchAgainButton: false,\n subtitle: null,\n title: '',\n};\n\nexport default ContentWrapper;\n","import React from 'react';\n\nimport { Breadcrumb } from 'antd';\nimport { Link } from 'react-router-dom';\n\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nconst StyledLink = styled(Link)`\n color: ${({ theme }) => theme.colors.dimGray2};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 14px;\n`;\n\nconst BreadcrumbContainer = ({ urlStack }) => {\n return (\n <Breadcrumb separator=\">\">\n {urlStack.map((item, index) => (\n <Breadcrumb.Item key={item.url ?? item.name}>\n <StyledLink\n as={urlStack.length === index + 1 ? 'span' : Link}\n to={{ pathname: item.url, state: item.state }}\n >\n {item.name}\n </StyledLink>\n </Breadcrumb.Item>\n ))}\n </Breadcrumb>\n );\n};\n\nBreadcrumbContainer.propTypes = {\n urlStack: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n state: PropTypes.object,\n url: PropTypes.string.isRequired,\n }),\n ).isRequired,\n};\n\nexport default BreadcrumbContainer;\n","import React from 'react';\n\nimport BreadcrumbContainer from '@web/components/common/Breadcrumb';\n\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nconst HeaderAndDescription = styled.div``;\nconst Header = styled.div`\n font-size: 2rem;\n font-family: ${({ theme }) => theme.fonts.semibold};\n color: ${({ theme }) => theme.colors.black};\n`;\n\nconst Description = styled.div`\n font-size: 1rem;\n margin: 40px 0;\n font-family: ${({ theme }) => theme.fonts.regular};\n color: ${({ theme }) => theme.colors.black};\n opacity: 0.6;\n`;\n\nconst PageHeader = ({ title, description, breadcrumbData }) => {\n return (\n <HeaderAndDescription>\n <BreadcrumbContainer urlStack={breadcrumbData} />\n <Header>{title}</Header>\n {description && <Description>{description}</Description>}\n </HeaderAndDescription>\n );\n};\n\nPageHeader.propTypes = {\n breadcrumbData: PropTypes.array,\n description: PropTypes.string,\n title: PropTypes.string.isRequired,\n};\n\nPageHeader.defaultProps = {\n breadcrumbData: [],\n description: null,\n};\n\nexport default PageHeader;\n","import React from 'react';\n\nimport { Switch } from 'antd';\n\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nconst FieldWrapper = styled.div`\n margin: 20px 0;\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n > span {\n margin-left: 20px;\n }\n`;\n\nconst ViewTags = ({ tags, setFieldValue }) => {\n return tags.map(({ name, value, slug, prompt }, index) => {\n return (\n <FieldWrapper key={slug}>\n <Switch\n slug={slug}\n checked={value}\n onChange={v => setFieldValue(`tags[${index}]value`, v)}\n />\n <span>{prompt || name}</span>\n </FieldWrapper>\n );\n });\n};\n\nViewTags.propTypes = {\n setFieldValue: PropTypes.func.isRequired,\n tags: PropTypes.arrayOf(PropTypes.shape()),\n};\n\nexport default ViewTags;\n","import React from 'react';\n\nimport TextArea from 'antd/lib/input/TextArea';\nimport { SectionTitle } from '../shared';\n\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport pxToRem from '@web/utils/pxToRem';\n\nconst FieldWrapper = styled.div`\n margin: 20px 0;\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n > span {\n margin-left: 20px;\n }\n`;\n\nconst CustomFieldWrapper = styled.div`\n margin-bottom: 20px;\n`;\n\nconst CustomFieldOption = styled.div`\n background: ${({ theme, $selected }) => ($selected ? theme.colors.teal : theme.colors.white)};\n color: ${({ theme, $selected }) => (!$selected ? theme.colors.blue60 : theme.colors.white)};\n border: 1px solid ${({ theme }) => theme.colors.teal};\n padding: 2px 1rem;\n border-radius: 10px;\n cursor: pointer;\n margin-right: 20px;\n margin-bottom: 10px;\n text-align: center;\n font-size: ${pxToRem(14)};\n`;\n\nconst ViewCustomFields = ({ customFields, setFieldValue }) => {\n return customFields.map(\n ({ name, value: fieldValue, slug, prompt, type, available_values }, index) => (\n <CustomFieldWrapper key={slug}>\n <SectionTitle> {prompt || name}</SectionTitle>\n\n {type === 'TextField' && (\n <TextArea\n name={slug}\n value={fieldValue}\n autoSize={{ minRows: 4 }}\n onChange={e => setFieldValue(`customFields[${index}]value`, e.target.value)}\n />\n )}\n\n {type === 'SelectionField' && (\n <FieldWrapper>\n {available_values.map(value => {\n return (\n <CustomFieldOption\n key={value}\n $selected={fieldValue === value}\n onClick={() => setFieldValue(`customFields[${index}]value`, value)}\n >\n {value}\n </CustomFieldOption>\n );\n })}\n </FieldWrapper>\n )}\n </CustomFieldWrapper>\n ),\n );\n};\n\nViewCustomFields.propTypes = {\n customFields: PropTypes.arrayOf(PropTypes.shape()),\n setFieldValue: PropTypes.func.isRequired,\n};\n\nexport default ViewCustomFields;\n","import React from 'react';\n\nimport ImpactiveButton from '@web/components/ImpactiveButton';\nimport { StickyFooter } from '../shared';\n\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\n\nconst ButtonContainer = styled.div`\n display: flex;\n justify-content: flex-end;\n align-items: center;\n margin-top: 23px;\n > button {\n margin-left: 15px;\n }\n`;\n\nconst FormFooter = ({ disabled, submitCount, addAnotherReport }) => {\n const { t } = useTranslation();\n\n return (\n <StickyFooter>\n <ButtonContainer>\n <ImpactiveButton secondary={submitCount > 0} disabled={disabled} type=\"submit\">\n {t(\n submitCount > 0\n ? 'add_report.buttons.update_report'\n : 'add_report.buttons.send_to_campaign',\n )}\n </ImpactiveButton>\n {submitCount > 0 && (\n <ImpactiveButton onClick={addAnotherReport}>\n {t('add_report.buttons.add_another_report')}\n </ImpactiveButton>\n )}\n </ButtonContainer>\n </StickyFooter>\n );\n};\n\nFormFooter.propTypes = {\n addAnotherReport: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired,\n submitCount: PropTypes.number.isRequired,\n};\n\nexport default FormFooter;\n","import React, { useEffect, useRef } from 'react';\n\nimport { Form, Formik } from 'formik';\nimport FormField from '@web/components/common/shared/FormField';\nimport Loading from '@web/components/common/Loading';\nimport ContentWrapper from '../../../components/ContentWrapper';\nimport ViewTags from '../../../components/ReportFormHelpers/ViewTags';\nimport ViewCustomFields from '../../../components/ReportFormHelpers/ViewCustomFields';\nimport { FieldsWrapper } from '../../../components/shared';\nimport FormFooter from '../../../components/ReportFormHelpers/FormFooter';\n\nimport * as yup from 'yup';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nconst phoneRegExp =\n /^((\\\\+[1-9]{1,4}[ \\\\-]*)|(\\\\([0-9]{2,3}\\\\)[ \\\\-]*)|([0-9]{2,4})[ \\\\-]*)*?[0-9]{3,4}?[ \\\\-]*[0-9]{3,4}?$/;\n\nconst AddManuallyForm = ({\n campaignId,\n tags,\n customFields,\n onSubmit,\n redirectToFindVotersPage,\n}) => {\n const { t } = useTranslation();\n const ref = useRef();\n\n const NewReportFormSchema = yup.object().shape({\n email: yup.string().email(t('idvoters.validation.email')),\n firstName: yup\n .string()\n .test('firstName', t('idvoters.validation.first_or_last'), function (value) {\n const { last_name } = this.parent;\n if (!last_name) return value != null;\n return true;\n }),\n lastName: yup\n .string()\n .test('lastName', t('idvoters.validation.first_or_last'), function (value) {\n const { first_name } = this.parent;\n if (!first_name) return value != null;\n return true;\n }),\n phone: yup.string().matches(phoneRegExp, t('idvoters.validation.phone')),\n });\n\n useEffect(() => {\n ref.current?.resetForm();\n }, [campaignId]);\n\n return (\n <ContentWrapper title={t('add_report.adding_manually.fill_and_send')}>\n {!tags || !customFields ? (\n <Loading />\n ) : (\n <Formik\n initialValues={{\n address: '',\n customFields,\n email: '',\n firstName: '',\n lastName: '',\n phone: '',\n tags,\n }}\n ref={ref}\n validationSchema={NewReportFormSchema}\n onSubmit={onSubmit}\n render={({ values, setFieldValue, errors, dirty, isSubmitting, submitCount }) => (\n <Form>\n <FieldsWrapper $twoColumns>\n <FormField\n label={t('add_report.form.first_name')}\n name=\"firstName\"\n placeholder={t('add_report.form.first_name')}\n />\n <FormField\n label={t('add_report.form.last_name')}\n name=\"lastName\"\n placeholder={t('add_report.form.last_name')}\n />\n <FormField\n label={t('add_report.form.phone')}\n name=\"phone\"\n placeholder={t('add_report.form.phone')}\n />\n <FormField\n label={t('add_report.form.email')}\n name=\"email\"\n placeholder={t('add_report.form.email')}\n />\n <FormField\n label={t('add_report.form.address')}\n name=\"address\"\n placeholder={t('add_report.form.address')}\n />\n </FieldsWrapper>\n <ViewTags setFieldValue={setFieldValue} tags={values.tags} />\n <ViewCustomFields customFields={values.customFields} setFieldValue={setFieldValue} />\n\n <FormFooter\n disabled={!!errors.firstName || !!errors.lastName || !dirty || isSubmitting}\n addAnotherReport={redirectToFindVotersPage}\n submitCount={submitCount}\n />\n </Form>\n )}\n />\n )}\n </ContentWrapper>\n );\n};\n\nAddManuallyForm.propTypes = {\n campaignId: PropTypes.number,\n customFields: PropTypes.arrayOf(PropTypes.shape()),\n onSubmit: PropTypes.func.isRequired,\n redirectToFindVotersPage: PropTypes.func.isRequired,\n tags: PropTypes.arrayOf(PropTypes.shape()),\n};\n\nexport default AddManuallyForm;\n","import i18n from '@web/components/i18n';\n\nexport const addReportBreadcrumb = page => {\n const breadcrumb = [\n {\n name: i18n.t('add_report.find_voter.lookup_contact'),\n url: `/add-report`,\n },\n page === 'viewVoter' && {\n name: i18n.t('add_report.fill_report.header'),\n url: '/add-report/view_voter',\n },\n page === 'addManually' && {\n name: i18n.t('add_report.buttons.add_manually'),\n url: '/add-report/new-voter-report',\n },\n ];\n\n return breadcrumb.filter(Boolean);\n};\n","import { useCallback, useEffect, useState } from 'react';\n\nimport { message } from 'antd';\n\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport { user, users, userReportApi } from '@web/services/api';\nimport { track } from '@web/services/analytics';\nimport sendError from '@web/utils/sendError';\nimport {\n formatCustomFields,\n formatTags,\n mergeBlankDataWithInitialData,\n updateReportData,\n} from './utils';\n\n/**\n * Hook to process add report flow\n * @param isAddManually\n * There are two flows of reporting\n * 1. Add a report for existing voters\n * 2. Add the report manually if no voter is found\n * @param voter\n * If a voter is found, we must pre-select tags and custom fields from the last report, so we need to know the voter information to get the latest report\n */\nconst useSendReport = (isAddManually, voter) => {\n const campaign = useSelector(state => state.oneCampaign.selectedCampaign);\n const { t } = useTranslation();\n const submitErrorMessage = t('errors.submit_outreach_report');\n\n const [tags, setTags] = useState(null);\n const [customFields, setCustomFields] = useState(null);\n\n // Get a blank report with all the tags and custom fields that are configured on the admin side\n const getBlankReport = useCallback(async () => {\n const response = await userReportApi.getBlankReport({\n activity_id: campaign.report_activity_id,\n campaign_id: campaign.id,\n });\n\n return response.data;\n }, [campaign]);\n\n // Find an existing report or create a new one if the report was not completed for this voter before\n const findOrCreateReport = useCallback(\n async body => {\n const response = await userReportApi.findOrCreateReport(\n {\n activity_id: campaign.report_activity_id,\n campaign_id: campaign.id,\n },\n body,\n );\n\n return response.data;\n },\n [campaign],\n );\n\n // We need to get a blank report and set tags and custom fields\n const getAddManuallyData = useCallback(async () => {\n try {\n if (!isAddManually) return;\n\n const blankReport = await getBlankReport();\n\n setReportFields(blankReport);\n } catch (e) {\n throw Error(e);\n }\n }, [getBlankReport, isAddManually]);\n\n // Here we need to get a blank report and the last completed report for the available voter and combine them\n // so as not to lose the tags and custom fields that can be added to the blank report on the admin side\n const prepareFieldsForAvailableVoters = useCallback(async () => {\n try {\n if (!campaign || !voter) return;\n\n const body = {\n activity_id: campaign.report_activity_id,\n first_name: voter['vb.tsmart_first_name'],\n last_name: voter['vb.tsmart_last_name'],\n selected_voterbase_id: voter['voterbase_id'],\n };\n\n const blankReport = await getBlankReport();\n\n const report = await findOrCreateReport(body);\n\n const mergedCustomization = formatCustomFields(\n mergeBlankDataWithInitialData(blankReport.customizations, report.customizations),\n );\n\n const mergedTaggigns = formatTags(\n mergeBlankDataWithInitialData(blankReport.taggings, report.taggings),\n );\n\n setTags(mergedTaggigns);\n setCustomFields(mergedCustomization);\n } catch (e) {\n message.error('There was a problem getting report data');\n setCustomFields([]);\n setTags([]);\n }\n }, [campaign, findOrCreateReport, getBlankReport, voter]);\n\n useEffect(() => {\n getAddManuallyData();\n }, [getAddManuallyData]);\n\n useEffect(() => {\n prepareFieldsForAvailableVoters();\n }, [prepareFieldsForAvailableVoters]);\n\n // Format and set tags and custom fields to make them easier to display\n const setReportFields = data => {\n const { taggings, customizations } = data;\n\n const formattedTags = formatTags(taggings);\n const formattedCustomFields = formatCustomFields(customizations);\n\n setTags(formattedTags);\n setCustomFields(formattedCustomFields);\n };\n\n const getUserActivityId = async () => {\n try {\n const response = await user.lookupUserActivity(campaign.slug, campaign.report_activity_id);\n\n return response.data.id;\n } catch (e) {\n throw Error(e);\n }\n };\n\n const getUserActivity = async userActivityId => {\n try {\n const response = await user.getUserActivity(userActivityId);\n\n return response.data.userActivity;\n } catch (e) {\n throw Error(e);\n }\n };\n\n const updateReport = async (reportId, updatedReport) => {\n try {\n await userReportApi.update({ campaign_id: campaign.id, report_id: reportId }, updatedReport);\n } catch (e) {\n throw Error(e);\n }\n };\n\n const trackEvent = async userActivityId => {\n try {\n const userActivity = await getUserActivity(userActivityId);\n\n const activity = userActivity?.activity;\n const activityCampaign = activity?.campaign;\n\n track('COMPLETED_ACTIVITY', {\n activity_id: campaign.report_activity_id,\n activity_title: activity?.title,\n campaign_id: activityCampaign?.id,\n campaign_name: activityCampaign?.name,\n });\n } catch (e) {\n sendError('Track Add Report error', e);\n // RK: Since it only tracks the event, I don't think we need to cause an error and cancel the report submissions\n }\n };\n\n const sendMessageAndUpdateActivity = async (reportId, userActivityId, updatedReport) => {\n try {\n await users.sendCanvasserMessagePublic(\n {\n activity_id: campaign.report_activity_id,\n campaign_id: campaign.id,\n contact_id: null,\n report_id: reportId,\n user_activity_id: userActivityId,\n },\n updatedReport,\n );\n\n await user.updateUserActivity(userActivityId, { completed: true });\n await user.userActivityAddPerform(userActivityId);\n } catch (e) {\n throw Error(e);\n }\n };\n\n const submitReport = async (formValues, { setSubmitting, resetForm, setFormikState }) => {\n try {\n const { tags: formTags, customFields: formCustomFields, ...voterData } = formValues;\n\n const body = {\n activity_id: campaign.report_activity_id,\n email: voterData.email,\n first_name: voterData.firstName,\n last_name: voterData.lastName,\n phone: voterData.phone,\n };\n\n // We do not have a voter ID if we add a report manually, but we may have an address\n if (isAddManually) {\n body.address = voterData.address;\n } else {\n body.selected_voterbase_id = voterData.voterId;\n }\n\n const report = await findOrCreateReport(body);\n\n const updatedReport = {\n ...body,\n ...updateReportData(report, formTags, formCustomFields),\n };\n\n await updateReport(report.id, updatedReport);\n\n const userActivityId = await getUserActivityId();\n\n await trackEvent(userActivityId);\n\n await sendMessageAndUpdateActivity(report.id, userActivityId, updatedReport);\n // We can update report right after submit it, so we have to reset form to update all properties to default\n // but we still need to know that we submitted it earlier, so I set submitCount to 1\n setSubmitting(false);\n resetForm(formValues);\n setFormikState({ submitCount: 1 });\n message.success(t('idvoters.voter.outreach_report_sent'));\n } catch (e) {\n sendError('Send a manually added report error', e);\n setSubmitting(false);\n setFormikState({ submitCount: 0 });\n message.error(submitErrorMessage);\n }\n };\n\n return { customFields, submitReport, tags };\n};\n\nexport default useSendReport;\n","import React, { useState } from 'react';\n\nimport ContentWrapper from '../../components/ContentWrapper';\nimport PageHeader from '../../components/Header';\nimport { Content } from '../../components/shared';\nimport AddManuallyForm from './components/AddManuallyForm';\nimport { addReportBreadcrumb } from '../../components/BreadcrumbData';\n\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport useSendReport from '../../useSendReport';\nimport { Redirect } from 'react-router-dom';\n\nconst AddManually = () => {\n const { t } = useTranslation();\n const campaign = useSelector(state => state.oneCampaign.selectedCampaign);\n\n const [redirect, setRedirect] = useState(false);\n\n const { tags, customFields, submitReport } = useSendReport(true);\n\n if (redirect) {\n return <Redirect to={'/add-report'} />;\n }\n\n return (\n <Content>\n <PageHeader\n breadcrumbData={addReportBreadcrumb('addManually')}\n title={`${t('add_report.find_voter.header')} ${campaign?.name}`}\n description={t('add_report.find_voter.description')}\n />\n\n <ContentWrapper title={t('add_report.adding_manually.title')} showSearchAgainButton />\n\n <AddManuallyForm\n campaignId={campaign?.id}\n tags={tags}\n customFields={customFields}\n onSubmit={submitReport}\n redirectToFindVotersPage={() => setRedirect(true)}\n />\n </Content>\n );\n};\n\nexport default AddManually;\n","import React, { useEffect, useRef } from 'react';\n\nimport { Form, Formik } from 'formik';\nimport FormField from '@web/components/common/shared/FormField';\nimport SelectComponent from '@web/components/common/shared/Select';\nimport ImpactiveButton from '@web/components/ImpactiveButton';\nimport { FieldsWrapper, StickyFooter } from '../../../components/shared';\nimport ContentWrapper from '../../../components/ContentWrapper';\n\nimport * as yup from 'yup';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { ageRanges } from '../../../utils';\n\nimport states from 'web/data/states';\n\nconst ButtonContainer = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 23px;\n > button {\n width: 20%;\n min-width: 170px;\n }\n`;\n\nconst FindVotersForm = ({ campaignId, onSubmit }) => {\n const { t } = useTranslation();\n\n const ref = useRef(null);\n\n const IdVotersFormSchema = yup.object().shape({\n ageRange: yup.string().required(t('idvoters.validation.age')),\n city: yup.string(),\n firstName: yup.string().required(t('idvoters.validation.firstname')),\n lastName: yup.string().required(t('idvoters.validation.lastname')),\n stateAbbv: yup.string().required(t('idvoters.validation.state')),\n zipCode: yup.number(t('idvoters.validation.zip')),\n });\n\n useEffect(() => {\n ref.current?.resetForm();\n }, [campaignId]);\n\n return (\n <ContentWrapper title={t('add_report.find_voter.lookup_contact')} showAddManuallyButton>\n <Formik\n initialValues={{\n ageRange: '18-255',\n city: '',\n firstName: '',\n lastName: '',\n stateAbbv: '',\n zipCode: '',\n }}\n ref={ref}\n onSubmit={onSubmit}\n validationSchema={IdVotersFormSchema}\n render={({ isSubmitting, setFieldValue }) => (\n <Form>\n <FieldsWrapper $twoColumns={false}>\n <FormField\n label={t('add_report.form.first_name')}\n name=\"firstName\"\n placeholder={t('add_report.form.first_name')}\n />\n <FormField\n label={t('add_report.form.last_name')}\n name=\"lastName\"\n placeholder={t('add_report.form.last_name')}\n />\n <SelectComponent\n label={t('add_report.form.state')}\n placeholder={t('add_report.form.state')}\n options={states}\n name={'stateAbbv'}\n onChange={val => setFieldValue('stateAbbv', val)}\n filterOption={(input, option) =>\n option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0\n }\n style={{\n minWidth: 'unset',\n }}\n />\n <SelectComponent\n label={t('add_report.form.age_range')}\n placeholder={t('add_report.form.age_range')}\n options={ageRanges(t)}\n onChange={val => setFieldValue('ageRange', val)}\n defaultValue={'18-255'}\n name=\"ageRange\"\n style={{\n minWidth: 'unset',\n }}\n />\n <FormField\n label={t('add_report.form.city')}\n name=\"city\"\n placeholder={t('add_report.form.city')}\n />\n <FormField\n label={t('add_report.form.zip')}\n name=\"zipCode\"\n placeholder={t('add_report.form.zip')}\n />\n </FieldsWrapper>\n <StickyFooter>\n <ButtonContainer>\n <div>{t('add_report.form.required')}</div>\n <ImpactiveButton type=\"submit\" disabled={!campaignId || isSubmitting}>\n {t('add_report.buttons.search')}\n </ImpactiveButton>\n </ButtonContainer>\n </StickyFooter>\n </Form>\n )}\n />\n </ContentWrapper>\n );\n};\n\nFindVotersForm.propTypes = {\n campaignId: PropTypes.number,\n firstName: PropTypes.string,\n lastName: PropTypes.string,\n onSubmit: PropTypes.func.isRequired,\n};\n\nFindVotersForm.defaultProps = {\n campaignId: null,\n firstName: '',\n lastName: '',\n};\n\nexport default FindVotersForm;\n","import React from 'react';\n\nimport { List } from 'antd';\n\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport styled, { css } from 'styled-components';\n\nconst { Item } = List;\n\nconst StyledItem = styled(Item)`\n &&& {\n outline-offset: -2px;\n outline: solid\n ${({ theme, $selected }) =>\n $selected ? `3px ${theme.colors.teal}` : `1px ${theme.colors.borderGray}`} !important;\n padding: 20px 24px;\n margin: 12px 0;\n border-radius: ${({ $selected }) => ($selected ? 0 : '5px')};\n cursor: ${({ $preview }) => ($preview ? 'unset' : 'pointer')};\n\n &:hover {\n ${({ theme, $preview }) =>\n !$preview &&\n css`\n outline: solid 3px ${theme.colors.teal} !important;\n `}\n }\n }\n`;\n\nconst ItemContents = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst Info = styled.div`\n display: flex;\n @media (max-width: 1200px) {\n flex-wrap: wrap;\n }\n`;\n\nconst Name = styled.div`\n font-family: ${({ theme }) => theme.fonts.semibold};\n min-width: 120px;\n max-width: 200px;\n margin-right: 30px;\n`;\nconst Location = styled.div`\n min-width: 120px;\n max-width: 200px;\n margin-right: 10px;\n`;\nconst Age = styled.div`\n min-width: 120px;\n max-width: 200px;\n margin-right: 10px;\n color: ${({ theme }) => theme.fonts.gray};\n`;\n\nconst ViewFile = styled.button`\n color: ${({ theme }) => theme.colors.blue};\n font-family: ${({ theme }) => theme.fonts.semibolditalic};\n border: none;\n background: none;\n padding: 0;\n cursor: pointer;\n :hover {\n color: ${({ theme }) => theme.colors.teal};\n }\n`;\n\nconst VotersListItem = ({ voter, selectedVoterId, selectVoter, showVoterModal }) => {\n const { t } = useTranslation();\n const {\n 'vb.tsmart_city': city,\n 'vb.tsmart_first_name': firstName,\n 'vb.tsmart_last_name': lastName,\n 'vb.tsmart_state': state,\n 'vb.voterbase_age': age,\n voterbase_id: voterId,\n } = voter;\n\n const showVoterHistoryModal = e => {\n e.stopPropagation();\n showVoterModal(voter);\n };\n\n return (\n <StyledItem\n $selected={selectedVoterId === voterId}\n $preview={!selectVoter}\n onClick={() => selectVoter && selectVoter(voter)}\n >\n <ItemContents>\n <Info>\n <Name>{`${firstName} ${lastName}`}</Name>\n <Location>{`${city}, ${state}`}</Location>\n {!!age && <Age>{t('idvoters.results.years_old', { age })}</Age>}\n </Info>\n </ItemContents>\n <ViewFile onClick={showVoterHistoryModal}>\n {t('add_report.find_voter.voting_history')}\n </ViewFile>\n </StyledItem>\n );\n};\n\nVotersListItem.propTypes = {\n selectedVoterId: PropTypes.string,\n selectVoter: PropTypes.func,\n showVoterModal: PropTypes.func.isRequired,\n voter: PropTypes.shape({\n 'vb.tsmart_city': PropTypes.string,\n 'vb.tsmart_first_name': PropTypes.string,\n 'vb.tsmart_last_name': PropTypes.string,\n 'vb.tsmart_state': PropTypes.string,\n 'vb.voterbase_age': PropTypes.string,\n voterbase_id: PropTypes.string,\n }).isRequired,\n};\n\nVotersListItem.defaultProps = {\n selectVoter: null,\n};\n\nexport default VotersListItem;\n","import React from 'react';\n\nimport { List } from 'antd';\nimport { Link } from 'react-router-dom';\nimport Note from '@web/components/Note';\nimport ImpactiveButton from '@web/components/ImpactiveButton';\nimport VotersListItem from './VotersListItem';\nimport ContentWrapper from '../../../../components/ContentWrapper';\nimport { StickyFooter } from '../../../../components/shared';\n\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport { useTranslation } from 'react-i18next';\nimport { media } from '@web/styles/theme';\n\nconst ButtonWrapper = styled.div`\n width: 100%;\n display: flex;\n justify-content: flex-end;\n > button {\n width: 15%;\n }\n`;\n\nconst Action = styled.div`\n height: 40%;\n\n margin-left: 3rem;\n\n ${media.nxl} {\n margin-left: 0;\n margin-top: 1rem;\n }\n`;\n\nconst LinkButton = styled(Link)`\n background: ${({ theme }) => theme.colors.darkBlack};\n color: ${({ theme }) => theme.colors.white};\n border-radius: 4px;\n padding: 10px 20px;\n width: 100%;\n text-align: center;\n white-space: nowrap;\n font-size: 14px;\n &:hover,\n &:active {\n opacity: 0.5;\n text-decoration: none;\n color: ${({ theme }) => theme.colors.white};\n }\n`;\n\nconst VotersList = React.forwardRef(\n ({ voters, showVoterModal, selectVoter, selectedVoterId, onSelectClick }, ref) => {\n const { t } = useTranslation();\n\n if (!voters) return null;\n\n const hasVoters = voters.length > 0;\n\n return (\n <div ref={ref}>\n <ContentWrapper\n title={hasVoters ? t('add_report.find_voter.select_contact') : ''}\n subtitle={`${voters.length} ${t('add_report.find_voter.matches')}`}\n >\n {hasVoters ? (\n <>\n <List bordered={false}>\n {voters.map(item => (\n <VotersListItem\n key={item.voterbase_id}\n voter={item}\n selectVoter={selectVoter}\n showVoterModal={showVoterModal}\n selectedVoterId={selectedVoterId}\n />\n ))}\n </List>\n <StickyFooter>\n <ButtonWrapper>\n <ImpactiveButton onClick={onSelectClick} disabled={!selectedVoterId}>\n Select\n </ImpactiveButton>\n </ButtonWrapper>\n </StickyFooter>\n </>\n ) : (\n <Note\n title={t('idvoters.results.no_results_title')}\n actions={\n <Action>\n <LinkButton to={'add-report/new-voter-report'}>Add Contact Manually</LinkButton>\n </Action>\n }\n >\n {t('idvoters.results.no_results_message')}\n </Note>\n )}\n </ContentWrapper>\n </div>\n );\n },\n);\n\nVotersList.propTypes = {\n onSelectClick: PropTypes.func.isRequired,\n selectedVoterId: PropTypes.string,\n selectVoter: PropTypes.func.isRequired,\n showVoterModal: PropTypes.func.isRequired,\n voters: PropTypes.arrayOf(PropTypes.object),\n};\n\nexport default VotersList;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\n\nimport theme from '@web/styles/theme';\n\nimport FilterButton from '@web/components/common/FilterButton';\nimport imageElectionCheck from '@web/../../assets/images/web/election-check.png';\nimport imageElectionX from '@web/../../assets/images/web/election-x.png';\nimport ImpactiveModal from '../../common/ImpactiveModal';\nimport ImpactiveButton from '../../ImpactiveButton';\nimport {\n getVoterInfo,\n getParty,\n getVotingRecords,\n getFrequency,\n frequencyTagConverter,\n} from '@web/utils/getVoterInfo';\n\nconst ButtonWrapper = styled.div`\n width: 100%;\n display: flex;\n justify-content: flex-end;\n padding-top: 10px;\n > button {\n width: 15%;\n min-width: 170px;\n }\n`;\n\nconst ModalContent = styled.div`\n color: ${({ theme }) => theme.colors.black};\n padding-right: 20px;\n margin-right: -20px;\n`;\n\nconst Name = styled.div`\n font-family: ${({ theme }) => theme.fonts.semibold};\n font-size: 16px;\n`;\n\nconst RecentElections = styled.div`\n font-size: 16px;\n font-family: ${({ theme }) => theme.fonts.semibold};\n`;\n\nconst RecentElectionSection = styled.div`\n margin-bottom: 30px;\n`;\n\nconst ElectionRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 10px;\n`;\n\nconst ElectionName = styled.div`\n font-size: 14px;\n`;\n\nconst StyledElectionImage = styled.img`\n height: 16px;\n width: 16px;\n`;\n\n// Search the national voter file with the following parameters to find possible matches for either a contact or someone you've just met at an event\nconst VotersHistoryModal = ({ closeModal, voter, visible, onListItemClick }) => {\n const { t } = useTranslation();\n\n if (!visible) return null;\n\n const { fullName, address } = getVoterInfo(voter);\n const party = getParty(voter);\n const votingRecords = getVotingRecords(voter);\n const { frequency } = getFrequency(voter);\n const inDistrict = false;\n\n return (\n <>\n <ImpactiveModal\n bodyStyle={{ background: theme.colors.background }}\n visible={visible}\n maskClosable\n onCancel={closeModal}\n width={700}\n footer={\n <ButtonWrapper>\n <ImpactiveButton\n onClick={() => {\n onListItemClick ? onListItemClick(voter) : closeModal();\n }}\n >\n {t(onListItemClick ? 'add_report.buttons.select' : 'add_report.buttons.close')}\n </ImpactiveButton>\n </ButtonWrapper>\n }\n >\n <ModalContent>\n <Name>{fullName}</Name>\n\n <div>{address}</div>\n\n {/* ***************************** /Voter Info **************************************** */}\n\n <hr />\n\n {/* ***************************** Voter Tags **************************************** */}\n <div className=\"flex-row flex-wrap\">\n <div className=\"m-2\">\n <FilterButton icon=\"inDistrict\" active={inDistrict} onClick={() => {}}>\n {t('idvoters.voter.tags.in_district')}\n </FilterButton>\n </div>\n\n {party.party && (\n <div className=\"m-2\">\n <FilterButton icon={party.icon} active onClick={() => null}>\n {party.party}\n </FilterButton>\n </div>\n )}\n\n <div className=\"m-2\">\n <FilterButton icon={frequencyTagConverter(frequency)} active onPress={() => null}>\n {frequency}\n </FilterButton>\n </div>\n </div>\n\n {/* ***************************** /Voter Tags **************************************** */}\n\n <hr />\n\n {/* ***************************** Election Attendance ******************************** */}\n\n <RecentElections>{t('idvoters.voter.recent_elections')}</RecentElections>\n <RecentElectionSection>\n {votingRecords.map(\n (vote, index) =>\n // na === not old enough to vote\n vote.value !== 'na' && (\n <ElectionRow key={`${vote}-${index}`}>\n <ElectionName>{vote.title}</ElectionName>\n <StyledElectionImage\n alt=\"election\"\n src={vote.value === 'miss' ? imageElectionX : imageElectionCheck}\n />\n </ElectionRow>\n ),\n )}\n </RecentElectionSection>\n </ModalContent>\n </ImpactiveModal>\n </>\n );\n};\n\nVotersHistoryModal.propTypes = {\n closeModal: PropTypes.func.isRequired,\n onListItemClick: PropTypes.func,\n visible: PropTypes.bool.isRequired,\n voter: PropTypes.object,\n};\n\nVotersHistoryModal.defaultProps = {};\n\nexport default VotersHistoryModal;\n","import React, { useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\n\nimport PageHeader from '../../components/Header';\nimport { Content } from '../../components/shared';\nimport FindVotersForm from './components/FindVotersForm';\nimport VotersList from './components/VotersList';\n\nimport { users } from '@web/services/api';\nimport VotersHistoryModal from '../../components/VotersHistoryModal';\nimport { Redirect } from 'react-router-dom';\n\nconst FindVoters = () => {\n const { t } = useTranslation();\n const campaign = useSelector(state => state.oneCampaign.selectedCampaign);\n const listSection = useRef(null);\n\n const [redirectData, setRedirectData] = useState(null);\n const [voters, setVoters] = useState(null);\n const [selectedVoter, setSelectedVoter] = useState(null);\n const [showVoterModal, setShowVoterModal] = useState(null);\n\n const submitForm = async (formData, { setSubmitting }) => {\n users.searchVoters(formData).then(({ data }) => {\n setVoters(data);\n setSubmitting(false);\n listSection.current.scrollIntoView({ behavior: 'smooth' });\n });\n };\n\n const redirectToVoterView = voter => {\n setSelectedVoter(voter);\n setRedirectData(true);\n };\n\n if (redirectData) {\n return (\n <Redirect\n to={{\n pathname: '/add-report/view-voter',\n state: { voter: selectedVoter },\n }}\n />\n );\n }\n\n return (\n <Content>\n <PageHeader\n title={`${t('add_report.find_voter.header')} ${campaign?.name}`}\n description={t('add_report.find_voter.description')}\n />\n\n <FindVotersForm campaignId={campaign?.id} onSubmit={submitForm} />\n\n <VotersList\n ref={listSection}\n voters={voters}\n selectVoter={setSelectedVoter}\n showVoterModal={setShowVoterModal}\n selectedVoterId={selectedVoter?.voterbase_id}\n onSelectClick={() => redirectToVoterView(selectedVoter)}\n />\n\n <VotersHistoryModal\n closeModal={() => setShowVoterModal(null)}\n voter={showVoterModal}\n visible={!!showVoterModal}\n onListItemClick={redirectToVoterView}\n />\n </Content>\n );\n};\n\nexport default FindVoters;\n","import React from 'react';\n\nimport { Form, Formik } from 'formik';\nimport FormField from '@web/components/common/shared/FormField';\nimport Loading from '@web/components/common/Loading';\nimport { FieldsWrapper } from '../../../components/shared';\nimport ContentWrapper from '../../../components/ContentWrapper';\nimport ViewTags from '../../../components/ReportFormHelpers/ViewTags';\nimport ViewCustomFields from '../../../components/ReportFormHelpers/ViewCustomFields';\nimport FormFooter from '../../../components/ReportFormHelpers/FormFooter';\n\nimport * as yup from 'yup';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\n\nconst phoneRegExp =\n /^((\\\\ +[1-9]{1,4}[ \\\\-]*)|(\\\\([0-9]{2,3}\\\\)[ \\\\-]*)|([0-9]{2,4})[ \\\\-]*)*?[0-9]{3,4}?[ \\\\-]*[0-9]{3,4}?$/;\n\nconst ViewVoterForm = ({ onSubmit, tags, customFields, voter, redirectToFindVotersPage }) => {\n const { t } = useTranslation();\n\n const ReportFormSchema = yup.object().shape({\n email: yup.string().email(t('idvoters.validation.email')).notRequired(),\n phone: yup.string().matches(phoneRegExp, t('idvoters.validation.phone')).notRequired(),\n });\n\n return (\n <ContentWrapper title={t('add_report.fill_report.title')}>\n {!tags || !customFields ? (\n <Loading />\n ) : (\n <Formik\n initialValues={{\n customFields,\n email: '',\n firstName: voter['vb.tsmart_first_name'] || '',\n lastName: voter['vb.tsmart_last_name'] || '',\n phone: '',\n tags,\n voterId: voter.voterbase_id,\n }}\n onSubmit={onSubmit}\n validationSchema={ReportFormSchema}\n render={({ values, errors, submitCount, dirty, isSubmitting, setFieldValue }) => (\n <Form>\n <FieldsWrapper $twoColumns>\n <FormField\n label={t('add_report.form.phone')}\n name=\"phone\"\n placeholder={t('add_report.form.phone')}\n />\n <FormField\n label={t('add_report.form.email')}\n name=\"email\"\n placeholder={t('add_report.form.email')}\n />\n </FieldsWrapper>\n <ViewTags setFieldValue={setFieldValue} tags={values.tags} />\n <ViewCustomFields customFields={values.customFields} setFieldValue={setFieldValue} />\n <FormFooter\n disabled={!!errors.phone || !!errors.email || !dirty || isSubmitting}\n submitCount={submitCount}\n addAnotherReport={redirectToFindVotersPage}\n />\n </Form>\n )}\n />\n )}\n </ContentWrapper>\n );\n};\n\nViewVoterForm.propTypes = {\n customFields: PropTypes.arrayOf(PropTypes.shape({})),\n onSubmit: PropTypes.func.isRequired,\n redirectToFindVotersPage: PropTypes.func.isRequired,\n tags: PropTypes.arrayOf(PropTypes.shape({})),\n voter: PropTypes.shape({\n 'vb.tsmart_first_name': PropTypes.string,\n 'vb.tsmart_last_name': PropTypes.string,\n voterbase_id: PropTypes.string,\n }).isRequired,\n};\n\nexport default ViewVoterForm;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport PageHeader from '../../components/Header';\nimport { Content } from '../../components/shared';\nimport { addReportBreadcrumb } from '../../components/BreadcrumbData';\nimport VotersHistoryModal from '../../components/VotersHistoryModal';\nimport VotersListItem from '../FindVoters/components/VotersList/VotersListItem';\nimport ContentWrapper from '../../components/ContentWrapper';\nimport ViewVoterForm from './components/ViewVoterForm';\n\nimport { Redirect, useLocation } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport useSendReport from '../../useSendReport';\n\nconst ViewVoter = () => {\n const { t } = useTranslation();\n const campaign = useSelector(state => state.oneCampaign.selectedCampaign);\n const isFirstRun = useRef(true);\n const [showVoterModal, setShowVoterModal] = useState(null);\n\n const [redirect, setRedirect] = useState(false);\n\n const {\n state: { voter },\n } = useLocation();\n\n const { tags, customFields, submitReport } = useSendReport(false, voter);\n\n // If the campaign changes, we need to redirect to the voter search screen\n useEffect(() => {\n if (isFirstRun.current) {\n isFirstRun.current = false;\n } else {\n setRedirect(true);\n }\n }, [campaign]);\n\n if (redirect) {\n return <Redirect to={'/add-report'} />;\n }\n\n return (\n <Content>\n <PageHeader\n title={t('add_report.fill_report.header')}\n description={t('add_report.fill_report.description')}\n breadcrumbData={addReportBreadcrumb('viewVoter')}\n />\n <ContentWrapper title={t('add_report.fill_report.selected_contact')} showSearchAgainButton>\n <VotersListItem voter={voter} showVoterModal={setShowVoterModal} />\n </ContentWrapper>\n\n <ViewVoterForm\n voter={voter}\n onSubmit={submitReport}\n tags={tags}\n customFields={customFields}\n redirectToFindVotersPage={() => setRedirect(true)}\n />\n\n <VotersHistoryModal\n closeModal={() => setShowVoterModal(null)}\n voter={showVoterModal}\n visible={!!showVoterModal}\n />\n </Content>\n );\n};\n\nexport default ViewVoter;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Route, Switch, useRouteMatch } from 'react-router-dom';\nimport { useDocumentTitle } from '../../hooks';\nimport AppContainer from '../AppContainer';\nimport AppHeader from '../AppHeader';\nimport AddManually from './pages/AddManually';\nimport FindVoters from './pages/FindVoters';\nimport ViewVoter from './pages/ViewVoter';\n\nconst AddReport = () => {\n const { t } = useTranslation();\n const { path } = useRouteMatch();\n\n useDocumentTitle('Add Report');\n\n return (\n <>\n <AppHeader title={t('add_report.find_voter.header')} />\n <AppContainer>\n <Switch>\n <Route exact path={`${path}`} render={props => <FindVoters {...props} />} />\n <Route\n exact\n path={`${path}/new-voter-report`}\n render={props => <AddManually {...props} />}\n />\n <Route exact path={`${path}/view-voter`} render={props => <ViewVoter {...props} />} />\n </Switch>\n </AppContainer>\n </>\n );\n};\n\nexport default AddReport;\n","import React from 'react';\nimport i18n from '@web/components/i18n';\n\nconst { t } = i18n;\n\nconst getLastElectionYear = () => {\n const currentYear = new Date().getFullYear();\n return currentYear % 2 === 0 ? currentYear : currentYear - 1;\n};\n\n/**\n * Voterfile data comes in an Object, that has votes as \"vb.vf_g2020\" for general, and \"vb.vf_p2020\" for primary.\n * This function turns it into an array of objects, with a schema of:\n * {\n * year: 2020,\n * type: \"Primary\",\n * voted: true,\n * }\n * */\nexport const checkForElections = (voterFile, includePrimary = false) => {\n const lastElections = getLastElectionYear();\n\n const votedYears = Object.keys(voterFile).filter(\n key => key.startsWith('vb.vf_g2') || key.startsWith('vb.vf_p2'),\n );\n\n const elections = Array.from({ length: lastElections - 2008 + 2 })\n .map((v, index) => {\n const isGeneral = index % 2 === 0;\n const year = lastElections - (isGeneral ? index : index - 1);\n // specific case for 2024 election is described below\n if (year === 2024) return null;\n\n if (!isGeneral && !includePrimary) return null;\n\n return {\n type: isGeneral ? 'General' : 'Primary',\n voted: votedYears.includes(isGeneral ? `vb.vf_g${year}` : `vb.vf_p${year}`),\n year,\n };\n })\n .filter(Boolean)\n .sort((a, b) => {\n if (a.type > b.type) {\n return 1;\n }\n if (a.type < b.type) {\n return -1;\n }\n return 0;\n });\n\n elections.unshift(\n {\n ballot_status: getBallotStatus(voterFile),\n type: 'General',\n year: 2024,\n },\n includePrimary && {\n type: 'Primary',\n voted: votedYears.includes(`vb.vf_p2024`),\n year: 2024,\n },\n );\n\n return elections;\n};\n\nconst getBallotStatus = voterFile => {\n // If there is any value - return Voted\n if (voterFile['g2024_vote_method']) return 'Voted';\n\n const status = voterFile['g2024_ballot_status'];\n // If status does not exist return 'Pending'\n if (!status) return 'Pending';\n\n // Show friendly names\n switch (status) {\n case 'Ballot Requested':\n return 'Ballot Requested by Voter';\n case 'Ballot Mailed':\n return 'Ballot Mailed to Voter';\n case 'Ballot Received':\n return 'Ballot Received by State';\n case 'Ballot Cancelled':\n return 'Ballot Request Cancelled';\n default:\n // Return actual status by default\n return status;\n }\n};\n\nexport const getLastElections = (electionsHistory, number = 3) => {\n const lastElectionYear = getLastElectionYear();\n\n const electionYears = [\n lastElectionYear,\n ...Array.from(Array(number - 1)).map((v, index) => lastElectionYear - 2 * (index + 1)),\n ];\n\n return electionYears.map(year => ({\n voted:\n electionsHistory.filter(\n entry => entry.year === year && (entry.voted || entry.ballot_status === 'Voted'),\n ).length > 0,\n year,\n }));\n};\n\nexport const getVoterIntroSentence = (elections, name, state, isRegistered) => {\n if (!isRegistered) {\n return (\n <>\n Public voting records indicate that <strong>{name}</strong> is not registered to vote in{' '}\n <strong>{state}</strong>.\n </>\n );\n }\n\n const filteredElections = elections.filter(election => election.year >= 2016);\n\n const votedYears = filteredElections\n .filter(el => el.voted || el.ballot_status === 'Voted')\n .map(y => y.year);\n const notVotedYears = filteredElections\n .filter(el => el.hasOwnProperty('voted') && !el.voted)\n .map(y => y.year);\n\n if (isRegistered && votedYears.length < 1) {\n return (\n <>\n Public voting records indicate that <strong>{name}</strong> is registered to vote in{' '}\n <strong>{state}</strong>, and has not voted in any elections yet.\n </>\n );\n }\n\n const votedPart =\n votedYears.length > 1\n ? `${votedYears.slice(0, -1).join(', ')} and ${votedYears.slice(-1)}`\n : votedYears.join();\n const notVotedPart =\n notVotedYears.length > 1\n ? `${notVotedYears.slice(0, -1).join(', ')} or ${notVotedYears.slice(-1)}`\n : notVotedYears.join();\n\n return (\n <>\n {t('accelerate_change.intro.records-indicate')} <strong>{name}</strong>{' '}\n {t('accelerate_change.intro.registered-in')} <strong>{state},</strong>{' '}\n {t('accelerate_change.intro.has-voted')} {votedPart}\n {notVotedYears.length > 0 && (\n <>\n {t('accelerate_change.intro.but-not')} {notVotedPart}\n </>\n )}{' '}\n {t('accelerate_change.intro.elections')}.\n </>\n );\n};\n\nexport const capitalize = string => string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\n\nexport const getShareData = (useCurrentUrl, didTheyVoteFlow, prefixParagraph = true) => {\n const url =\n useCurrentUrl || didTheyVoteFlow ? window.location.href : 'https://didmyfriendvote.org';\n\n const messageToShare = useCurrentUrl\n ? didTheyVoteFlow\n ? `Hey - I looked up your voting history on Did They Vote. Let's hold each other accountable to vote in the November 5th election!`\n : `Hey - I looked up your voting history on didmyfriendsvote.org. Let's hold each other accountable to vote in the November 5th election!`\n : '';\n\n return {\n messageToShare: `${prefixParagraph ? '\\n' : ''}${messageToShare}${\n !prefixParagraph ? '\\n' : ''\n }`,\n url,\n };\n};\n","import React from 'react';\n\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\n\nimport Icon from '@web/components/common/Icon';\nimport theme from '@web/styles/theme';\nimport { Button, message } from 'antd';\nimport { getShareData } from './utils';\n\nconst ClearButton = styled(Button)`\n &&& {\n padding: 0;\n border: none;\n background-color: transparent;\n }\n`;\n\nconst Flex = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n padding: 34px 16px;\n border-bottom: 2px solid black;\n`;\n\nconst StyledHeader = styled.a`\n margin: 0;\n padding: 0;\n\n font-family: ${theme.fonts.AccelerateChange};\n font-size: 18px;\n font-weight: 700;\n line-height: 100%;\n\n color: black;\n :hover {\n color: black;\n text-decoration: none;\n }\n`;\n\nconst AccelerateChangeHeader = ({ useCurrentUrl, didTheyVoteFlow, isLanding }) => {\n const onShare = () => {\n const shareData = getShareData(useCurrentUrl, didTheyVoteFlow);\n\n if (window.navigator.share) {\n navigator\n .share({\n text: shareData.messageToShare,\n url: shareData.url,\n })\n .catch(() => {});\n } else {\n navigator?.clipboard\n .writeText(shareData.url)\n .then(() => message.success('Link copied!'))\n .catch(() => message.error('Error copying link'));\n }\n };\n\n return (\n <Flex>\n <StyledHeader href={didTheyVoteFlow ? '/did_they_vote' : '/did_my_friend_vote'}>\n {didTheyVoteFlow ? 'Did They Vote?' : 'DIDMYFRIENDSVOTE.ORG'}\n </StyledHeader>\n {!isLanding && (\n <ClearButton onClick={onShare}>\n <Icon name=\"Upload\" />\n </ClearButton>\n )}\n </Flex>\n );\n};\n\nAccelerateChangeHeader.propTypes = {\n didTheyVoteFlow: PropTypes.bool,\n isLanding: PropTypes.bool,\n useCurrentUrl: PropTypes.bool,\n};\n\nexport default AccelerateChangeHeader;\n","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\n\nimport styled, { css } from 'styled-components';\nimport theme, { media } from '@web/styles/theme';\n\nimport AccelerateChangeHeader from '../AccelerateChangeHeader';\n\n// Do not remove, we will probably use it again\n// import { message } from 'antd';\n// import AccelerateChangeFooter from '../AccelerateChangeFooter';\n// import { useHistory } from 'react-router-dom';\n// import { useTranslation } from 'react-i18next';\n// import ACRoutes from '@web/services/api/accelerateChange';\n// import Icon from '@web/components/common/Icon';\n// import AccelerateChangeButton from '../AccelerateChangeButton';\n// import ChooseVoterMenu from '../ChooseVoterMenu';\n// import FriendForm from '../FriendForm';\n// import useUtmParams from '../useUtmParams';\n\nconst PageWrapper = styled.div`\n color: black;\n\n width: 100%;\n min-height: 100vh;\n background-color: #fff2e1;\n\n display: flex;\n flex-direction: column;\n`;\n\nconst InnerContainer = styled.div`\n width: 868px;\n margin: 24px auto 0;\n padding-bottom: 64px;\n\n ${({ $isLanding }) =>\n $isLanding &&\n css`\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n text-align: center;\n flex: 1;\n gap: 10px;\n\n > h2 {\n font-size: 36px;\n }\n\n > div {\n font-size: 18px;\n }\n `}\n\n ${media.nlg} {\n padding: 0 16px;\n width: 100%;\n }\n`;\n\nconst Header = styled.h2`\n margin: 0;\n padding: 0;\n\n font-family: ${theme.fonts.AccelerateChange};\n font-weight: 700;\n font-size: 40px;\n line-height: 55px;\n`;\n\nconst Text = styled.div`\n font-family: ${theme.fonts.AccelerateChange};\n font-weight: 500;\n font-size: 16px;\n line-height: 22px;\n`;\n\n// Do not remove, we will probably use it again\n// const StyledUl = styled.ul`\n// display: flex;\n// flex-direction: column;\n// gap: 10px;\n// margin-top: 10px;\n// `;\n\nconst ChooseVoter = ({ didTheyVoteFlow }) => {\n // Do not remove, we will probably use it again\n // const { t } = useTranslation();\n // const history = useHistory();\n // const params = useUtmParams();\n // const [voterData, setVoterData] = useState(null);\n // const [isError, setIsError] = useState(false);\n // const [voterSearchInfo, setVoterSearchInfo] = useState(null);\n\n // const onVoterDataSubmit = async (data, { setSubmitting }) => {\n // const { address, first_name, last_name, age_range } = data;\n // const { city, state } = address;\n // ACRoutes.searchVoters(first_name, last_name, age_range, city, state)\n // .then(data => {\n // if (data?.data?.length > 1) {\n // setVoterData(data.data);\n // setVoterSearchInfo({ city, name: `${first_name} ${last_name}` });\n // } else if (data?.data?.length === 1) {\n // const path = didTheyVoteFlow ? 'did_they_vote' : 'did_my_friend_vote';\n // history.push(`/${path}/${data.data[0].voterbase_id}${params.formattedParams}`);\n // } else {\n // setIsError(true);\n // }\n // })\n // .catch(error => message.error(error?.response?.data?.message || error?.message))\n // .finally(() => setSubmitting(false));\n // };\n\n const thanksTitle = useMemo(\n () =>\n didTheyVoteFlow\n ? 'Thank you for using Did They Vote this year.'\n : 'Thank you for using Did My Friends Vote this year.',\n [didTheyVoteFlow],\n );\n\n return (\n <PageWrapper>\n <AccelerateChangeHeader didTheyVoteFlow={didTheyVoteFlow} isLanding />\n <InnerContainer $isLanding>\n <Header>{thanksTitle}</Header>\n <Text>\n It will take several months for state departments of elections to update the vote history\n with Election Day 2024 voting records, so we're going to pause access to the tool for the\n time being.\n </Text>\n\n {/*\n Do not remove, we will probably use it again\n {!voterData && !isError && (\n <FriendForm didTheyVoteFlow={didTheyVoteFlow} onSubmit={onVoterDataSubmit} />\n )}\n {voterData && !isError && (\n <ChooseVoterMenu\n didTheyVoteFlow={didTheyVoteFlow}\n voters={voterData}\n city={voterSearchInfo?.city}\n name={voterSearchInfo?.name}\n checkAgain={() => setVoterData(null)}\n />\n )}\n {isError && (\n <>\n <Header>{t('accelerate_change.voter-not-found')}</Header>\n <Text>\n {t(\n `accelerate_change.${\n didTheyVoteFlow ? 'we-couldnt-find-this-person' : 'we-couldnt-find-your-friend'\n }`,\n )}\n </Text>\n <Text>\n <StyledUl>\n <li>{t('accelerate_change.they-are-not-registered-to-vote')}</li>\n <li>{t('accelerate_change.their-name-is-spelled')}</li>\n <li>{t('accelerate_change.they-live-in-a-different-place')}</li>\n <li>{t('accelerate_change.records-are-not-yet-updated')}</li>\n </StyledUl>\n <AccelerateChangeButton onClick={() => setIsError(false)}>\n {t('common.try_again')} <Icon name=\"Refresh\" />\n </AccelerateChangeButton>\n </Text>\n </>\n )}\n */}\n </InnerContainer>\n {/*\n Do not remove, we will probably use it again\n <AccelerateChangeFooter didTheyVoteFlow={didTheyVoteFlow} />\n */}\n </PageWrapper>\n );\n};\n\nChooseVoter.propTypes = {\n didTheyVoteFlow: PropTypes.bool,\n};\n\nChooseVoter.defaultProps = {\n didTheyVoteFlow: false,\n};\n\nexport default ChooseVoter;\n","import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport theme from '@web/styles/theme';\nimport IconCircleContainer from '@web/components/common/Icon/IconCircleContainer';\nimport pxToRem from '@web/utils/pxToRem';\n\nconst { colors } = theme;\n\nconst VerticalFlex = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n`;\n\nconst HorizontalFlex = styled.div`\n display: flex;\n align-items: center;\n gap: 12px;\n`;\n\nconst Line = styled.div`\n height: 36px;\n width: 19px;\n border-right: 1px dashed ${colors.dimGray3};\n`;\n\nconst StyledText = styled.div`\n font-weight: 400;\n font-size: ${pxToRem(14)};\n line-height: ${pxToRem(20)};\n\n color: ${({ color }) => color};\n`;\n\nconst VerticalProgressPoints = ({ items, activeIndex }) => (\n <VerticalFlex>\n {items?.map((item, index) => {\n const activeColor = activeIndex === index ? colors.teal : colors.dimGray3;\n return (\n <div key={`progress-item-${index}`}>\n {index !== 0 && <Line />}\n <HorizontalFlex>\n <IconCircleContainer color={activeColor}>\n {activeIndex <= index ? item.icon : '✔ï¸'}\n </IconCircleContainer>\n <StyledText color={activeColor}>{item.text}</StyledText>\n </HorizontalFlex>\n </div>\n );\n })}\n </VerticalFlex>\n);\n\nVerticalProgressPoints.propTypes = {\n activeIndex: PropTypes.number.isRequired,\n items: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.node,\n text: PropTypes.node,\n }),\n ).isRequired,\n};\n\nexport default VerticalProgressPoints;\n","import React from 'react';\n\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport theme from '@web/styles/theme';\n\nimport logo from '@assets/images/logo/Impactive_Secondary.png';\nimport GeneralCardWrapper from '@web/components/common/Cards/GeneralCardWrapper';\nimport VerticalProgressPoints from '@web/components/common/Progress/VerticalProgressPoints';\n\nconst SignUpText = styled.div`\n color: ${theme.colors.white};\n font-weight: 600;\n font-size: 16px;\n line-height: 20px;\n margin-bottom: 17px;\n`;\n\n//not using spring here, because sidebar is not closable\nconst StyledSidebar = styled.div`\n background: #21283e;\n box-shadow: rgb(0 0 0 / 15%) 2px 2px 4px;\n max-height: 100vh;\n height: 100vh;\n width: 100%;\n max-width: 240px;\n\n display: flex;\n gap: 55px;\n flex-direction: column;\n align-items: center;\n\n padding: 40px 20px;\n\n // hide on mobile\n @media (max-width: 768px) {\n display: none;\n }\n`;\n\nconst LeftAligned = styled.div`\n align-self: flex-start;\n`;\n\nconst Sidebar = ({ activeIndex, showDemoButton }) => {\n const items = [\n { icon: 'ðŸ¢', text: 'Organization Info' },\n { icon: '👤', text: 'Administrator Info' },\n { icon: '💳', text: 'Choose Your Plan' },\n ];\n\n return (\n <StyledSidebar>\n <LeftAligned>\n <SignUpText>Sign Up For</SignUpText>\n <img src={logo} width={123} height={17} alt=\"Impactive brand logo\" />\n </LeftAligned>\n <GeneralCardWrapper color=\"#343c4e\">\n <VerticalProgressPoints activeIndex={activeIndex} items={items} />\n </GeneralCardWrapper>\n </StyledSidebar>\n );\n};\n\nSidebar.propTypes = {\n activeIndex: PropTypes.number.isRequired,\n showDemoButton: PropTypes.bool,\n};\n\nSidebar.defaultProps = {\n showDemoButton: false,\n};\n\nexport default Sidebar;\n","import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport Sidebar from './Sidebar';\n\nconst StyledLayout = styled.div`\n display: flex;\n height: 100vh;\n overflow: hidden;\n`;\n\nconst Content = styled.div`\n overflow-y: auto;\n width: 100%;\n`;\n\nconst SidebarLayout = ({ activeIndex, showDemoButton, children }) => {\n return (\n <StyledLayout>\n <Sidebar activeIndex={activeIndex} showDemoButton={showDemoButton} />\n <Content>{children}</Content>\n </StyledLayout>\n );\n};\n\nSidebarLayout.propTypes = {\n activeIndex: PropTypes.number.isRequired,\n children: PropTypes.node.isRequired,\n showDemoButton: PropTypes.bool,\n};\n\nSidebarLayout.defaultProps = {\n showDemoButton: false,\n};\n\nexport default SidebarLayout;\n","import React from 'react';\n\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport pxToRem from '@web/utils/pxToRem';\nimport theme from '@web/styles/theme';\n\nconst BoldHeader = styled.div`\n margin: 0;\n padding: 0;\n color: #23293e;\n font-weight: 600;\n font-size: ${pxToRem(20)};\n line-height: ${pxToRem(24)};\n`;\nconst PlanSelectionHeader = styled.h1`\n margin: 0 0 0 ${pxToRem(20)};\n padding: 0;\n color: #23293e;\n font-weight: 600;\n font-size: ${pxToRem(32)};\n line-height: ${pxToRem(38)};\n`;\n\nconst Subtext = styled.div`\n margin: 0;\n padding: 0;\n\n color: #23293e;\n\n font-weight: 400;\n font-size: ${pxToRem(14)};\n line-height: ${pxToRem(17)};\n`;\n\nconst Flex = styled.div`\n display: flex;\n align-items: center;\n gap: 5px;\n`;\n\nconst VertFlex = styled.div`\n width: 100%;\n height: 100%;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 4px;\n`;\n\nconst HeaderContainer = styled.div`\n display: flex;\n align-items: center;\n height: 80px;\n background-color: ${theme.colors.white};\n`;\n\nconst PlanHeader = ({ plans }) => {\n const formatter = new Intl.NumberFormat('en-US', {\n currency: 'USD',\n style: 'currency',\n });\n\n return (\n <>\n <HeaderContainer>\n <PlanSelectionHeader>Select Plan</PlanSelectionHeader>\n </HeaderContainer>\n {plans.map((item, index) => (\n <HeaderContainer key={item.name}>\n <VertFlex>\n <BoldHeader>{item.name}</BoldHeader>\n <Flex>\n {item.startingAt && <Subtext>starting at</Subtext>}\n <BoldHeader>{formatter.format(item.price)}</BoldHeader>\n <Subtext>/ month</Subtext>\n </Flex>\n </VertFlex>\n </HeaderContainer>\n ))}\n </>\n );\n};\n\nPlanHeader.propTypes = {\n activeIndex: PropTypes.number,\n plans: PropTypes.arrayOf(PropTypes.object).isRequired,\n};\n\nPlanHeader.defaultProps = {\n activeIndex: null,\n};\n\nexport default PlanHeader;\n","import styled, { css } from 'styled-components';\n\nexport const DynamicGrid = styled.div`\n display: grid;\n width: 100%;\n grid-template-columns: ${({ columnCount }) =>\n columnCount && css`1fr repeat(${columnCount}, 1fr)`};\n\n /* overflow-x: auto; */\n\n & > div {\n min-width: 175px;\n }\n`;\n","import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport pxToRem from '@web/utils/pxToRem';\n\nconst SectionHeader = styled.div`\n font-weight: 600;\n font-size: ${pxToRem(18)};\n line-height: ${pxToRem(24)};\n color: #23293e;\n`;\n\nconst EmptyContainer = styled.div`\n padding: 37px 0 13px 20px;\n\n background-color: #fafafa;\n`;\n\nconst PlanSectionHeader = ({ text, optionsCount }) => {\n return (\n <>\n <EmptyContainer>\n <SectionHeader>{text}</SectionHeader>\n </EmptyContainer>\n {Array.from(Array(optionsCount)).map(() => (\n <EmptyContainer />\n ))}\n </>\n );\n};\n\nPlanSectionHeader.propTypes = {\n optionsCount: PropTypes.number.isRequired,\n text: PropTypes.node,\n};\n\nPlanSectionHeader.defaultProps = {\n text: '',\n};\n\nexport default PlanSectionHeader;\n","import React from 'react';\n\nimport styled, { css } from 'styled-components';\nimport PropTypes from 'prop-types';\nimport pxToRem from '@web/utils/pxToRem';\nimport { CheckOutlined } from '@ant-design/icons';\n\nconst containerStyle = css`\n color: #23293e;\n min-height: ${pxToRem(50)};\n background-color: ${({ isGray }) => (isGray ? '#f5f6f7' : '#fafafa')};\n`;\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n padding-left: 20px;\n ${containerStyle};\n`;\n\nconst Icon = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n ${containerStyle};\n`;\n\nconst Wrapper = styled.div`\n position: relative;\n ${containerStyle};\n`;\n\nconst TextElement = styled.div`\n position: absolute;\n z-index: 2;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n min-height: ${pxToRem(100)};\n background: #fafafa;\n font-size: ${pxToRem(18)};\n text-align: center;\n\n > span {\n font-size: ${pxToRem(16)};\n }\n`;\n\nconst PlanGridRow = ({ name, options, isGray }) => {\n return (\n <>\n <Container isGray={isGray}>{name}</Container>\n {options.map((opt, index) => {\n const isStringValue = typeof opt === 'string';\n\n return !isStringValue ? (\n <Icon isGray={isGray} key={index}>\n {opt && <CheckOutlined style={{ color: '#23293e' }} />}\n </Icon>\n ) : (\n <Wrapper>\n <TextElement dangerouslySetInnerHTML={{ __html: opt }} />\n </Wrapper>\n );\n })}\n </>\n );\n};\n\nPlanGridRow.propTypes = {\n isGray: PropTypes.bool,\n name: PropTypes.node.isRequired,\n options: PropTypes.arrayOf(PropTypes.bool).isRequired,\n};\n\nPlanGridRow.defaultProps = {\n isGray: null,\n};\n\nexport default PlanGridRow;\n","import React from 'react';\n\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { DynamicGrid } from './DynamicGrid';\nimport ImpactiveButton from '@web/components/ImpactiveButton';\nimport ImpactiveLinkButton from '@web/components/ImpactiveLinkButton';\n\nimport theme from '@web/styles/theme';\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n min-height: 80px;\n\n background-color: ${theme.colors.white};\n`;\n\nconst ButtonContainer = styled.div`\n padding: 0 15%;\n`;\n\nconst PlanButtons = ({ plans, onPlanSelect }) => {\n return (\n <Container>\n <DynamicGrid columnCount={plans.length}>\n <div />\n {plans\n .filter(plan => plan.slug !== 'enterprise')\n .map((plan, index) => (\n <ButtonContainer>\n <ImpactiveButton\n teal={index !== plans.length - 1}\n size=\"full-width\"\n style={{ color: '#23293e' }}\n onClick={() => onPlanSelect(plan.slug)}\n >\n Choose {plan.name}\n </ImpactiveButton>\n </ButtonContainer>\n ))}\n <ButtonContainer>\n <ImpactiveLinkButton\n secondary\n size=\"full-width\"\n style={{ color: '#23293e' }}\n href=\"https://www.impactive.io/schedule-a-demo\"\n >\n Learn More\n </ImpactiveLinkButton>\n </ButtonContainer>\n </DynamicGrid>\n </Container>\n );\n};\n\nPlanButtons.propTypes = {\n onPlanSelect: PropTypes.func.isRequired,\n plans: PropTypes.arrayOf(PropTypes.object).isRequired,\n};\n\nexport default PlanButtons;\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport styled, { css } from 'styled-components';\n\nimport { Spinner } from '@web/components/common/Loading';\nimport PlanHeader from './PlanHeader';\nimport { DynamicGrid } from './DynamicGrid';\nimport PlanSectionHeader from './PlanSectionHeader';\nimport PlanGridRow from './PlanGridRow';\nimport PlanButtons from './PlanButtons';\n\nconst ShadowWrapper = styled(DynamicGrid)`\n position: relative; // to allow for shadow to be casted over other blocks\n\n box-shadow: 1px 3px 15px rgba(0, 0, 0, 0.08);\n`;\n\nconst ScrollingContainer = styled.div`\n overflow-x: auto;\n\n ${({ noScrollbar }) =>\n noScrollbar &&\n css`\n background-color: white;\n ::-webkit-scrollbar {\n display: none;\n }\n -ms-overflow-style: none;\n scrollbar-width: none;\n `}\n`;\n\nconst Sticky = styled.div`\n position: sticky;\n bottom: 0;\n z-index: 3;\n`;\n\nconst SubscriptionSelection = ({ plans, onPlanSelect }) => {\n const columnCount = plans?.length;\n\n const scrollRefTable = useRef(null);\n const scrollRefButtons = useRef(null);\n\n const onScrollTable = scroll => {\n scrollRefButtons.current.scrollLeft = scroll.target.scrollLeft;\n };\n const onScrollButtons = scroll => {\n scrollRefTable.current.scrollLeft = scroll.target.scrollLeft;\n };\n\n if (!plans) return <Spinner color=\"coral\" />;\n\n const { options } = plans[0];\n\n // TODO: this custom table doesn't make sense, use regular antd table for displaying this data\n return (\n <>\n <ScrollingContainer noScrollbar ref={scrollRefTable} onScroll={onScrollTable}>\n <ShadowWrapper columnCount={columnCount}>\n <PlanHeader plans={plans} />\n </ShadowWrapper>\n <DynamicGrid columnCount={columnCount}>\n {Object.keys(options)?.map(key => (\n <>\n <PlanSectionHeader text={key} optionsCount={plans.length} key={key} />\n {Object.keys(options[key]).map((name, index) => (\n <PlanGridRow\n name={name}\n key={name}\n isGray={index % 2 === 0}\n options={plans.map(plan => plan.options[key][name])}\n />\n ))}\n </>\n ))}\n </DynamicGrid>\n </ScrollingContainer>\n <Sticky>\n <ScrollingContainer ref={scrollRefButtons} onScroll={onScrollButtons}>\n <PlanButtons plans={plans} onPlanSelect={onPlanSelect} />\n </ScrollingContainer>\n </Sticky>\n </>\n );\n};\n\nSubscriptionSelection.propTypes = {\n onPlanSelect: PropTypes.func.isRequired,\n plans: PropTypes.arrayOf(PropTypes.object).isRequired,\n};\n\nexport default SubscriptionSelection;\n","/* eslint-disable sort-keys */\nexport const plans = [\n {\n name: 'Standard',\n slug: 'standard',\n price: '50',\n description:\n 'Best for small, self-sufficient campaigns and organizations; includes our best-in-class relational organizing suite and any outreach tools.',\n activityPrices: {\n p2pSms: 0.025,\n p2pMms: 0.05,\n broadcastSms: 0.025,\n broadcastMms: 0.05,\n phoneBanking: 0.05,\n voterRegistration: 0.08,\n },\n options: {\n 'Texting & Calling': {\n 'Peer-to-Peer Texting': true,\n 'Broadcast Texting': true,\n 'Phone Banking': true,\n },\n 'Form-Based Engagement': {\n 'Voter Registration':\n '<strong>1,000 Total Unique Responses Included Per Month</strong><span>+8¢ per additional response</span>',\n 'Custom Forms': '',\n },\n 'Relational Tools': {\n 'Friends and Family Messaging': true,\n 'Social Media Amplification': true,\n 'Digital Canvassing (Add Report)': true,\n 'Shared Canvassing & List Canvassing': false,\n 'Suggested Contacts': false,\n },\n 'Program Management': {\n 'Teams & Leaderboards': true,\n 'Team Chat': false,\n 'Advanced Form Customizations': false,\n },\n Data: {\n 'Customizable Data Exports': true,\n 'CRM Sync (NGP VAN, PDI, Salsa Labs, etc.)': true,\n 'Full-Service Data Integration': false,\n },\n 'Client Support and Strategy': {\n 'Onboarding Materials': true,\n 'Helpdesk and Support Ticketing': true,\n 'Weekly Training Sessions & Office Hours': false,\n 'Dedicated Client Strategy Advisor': false,\n },\n },\n },\n {\n name: 'Professional',\n slug: 'professional',\n price: '500',\n description:\n 'Best for medium-sized campaigns and organizations that need weekly support and training from our Client Strategy team.',\n activityPrices: {\n p2pSms: 0.025,\n p2pMms: 0.05,\n broadcastSms: 0.025,\n broadcastMms: 0.05,\n phoneBanking: 0.05,\n voterRegistration: 0.08,\n },\n options: {\n 'Texting & Calling': {\n 'Peer-to-Peer Texting': true,\n 'Broadcast Texting': true,\n 'Phone Banking': true,\n },\n 'Form-Based Engagement': {\n 'Voter Registration':\n '<strong>5,000 Total Unique Responses Included Per Month</strong><span>+8¢ per additional response</span>',\n 'Custom Forms': '',\n },\n 'Relational Tools': {\n 'Friends and Family Messaging': true,\n 'Social Media Amplification': true,\n 'Digital Canvassing (Add Report)': true,\n 'Shared Canvassing & List Canvassing': true,\n 'Suggested Contacts': true,\n },\n 'Program Management': {\n 'Teams & Leaderboards': true,\n 'Team Chat': true,\n 'Advanced Form Customizations': true,\n },\n Data: {\n 'Customizable Data Exports': true,\n 'CRM Sync (NGP VAN, PDI, Salsa Labs, etc.)': true,\n 'Full-Service Data Integration': false,\n },\n 'Client Support and Strategy': {\n 'Onboarding Materials': true,\n 'Helpdesk and Support Ticketing': true,\n 'Weekly Training Sessions & Office Hours': true,\n 'Dedicated Client Strategy Advisor': false,\n },\n },\n },\n {\n name: 'Enterprise',\n slug: 'enterprise',\n price: '1000',\n description:\n 'Best for large campaigns and organizations that need personalized support from our Client Strategy team, including custom data integration and strategic assistance.',\n activityPrices: {\n p2pSms: 0.025,\n p2pMms: 0.05,\n broadcastSms: 0.025,\n broadcastMms: 0.05,\n phoneBanking: 0.05,\n voterRegistration: 0.08,\n },\n startingAt: true, // will show as \"Starting at $1000\" in the plan selector, instead of just \"$1000\"\n options: {\n 'Texting & Calling': {\n 'Peer-to-Peer Texting': true,\n 'Broadcast Texting': true,\n 'Phone Banking': true,\n },\n 'Form-Based Engagement': {\n 'Voter Registration':\n '<strong>10,000 Total Unique Responses Included Per Month</strong><span>+8¢ per additional response</span>',\n 'Custom Forms': '',\n },\n 'Relational Tools': {\n 'Friends and Family Messaging': true,\n 'Social Media Amplification': true,\n 'Digital Canvassing (Add Report)': true,\n 'Shared Canvassing & List Canvassing': true,\n 'Suggested Contacts': true,\n },\n 'Program Management': {\n 'Teams & Leaderboards': true,\n 'Team Chat': true,\n 'Advanced Form Customizations': true,\n },\n Data: {\n 'Customizable Data Exports': true,\n 'CRM Sync (NGP VAN, PDI, Salsa Labs, etc.)': true,\n 'Full-Service Data Integration': true,\n },\n 'Client Support and Strategy': {\n 'Onboarding Materials': true,\n 'Helpdesk and Support Ticketing': true,\n 'Weekly Training Sessions & Office Hours': true,\n 'Dedicated Client Strategy Advisor': true,\n },\n },\n },\n];\n","import dayjs from 'dayjs/';\nimport styled from 'styled-components';\nimport { StyledModal } from '@web/components/common/ImpactiveModal';\n\nconst moneyFormatter = new Intl.NumberFormat('en-us', {\n currency: 'USD',\n maximumFractionDigits: 3,\n style: 'currency',\n});\n\nexport const ModalWithNoPadding = styled(StyledModal)`\n &&& {\n .ant-modal-content {\n padding: 0;\n .ant-modal-body {\n padding: 0;\n }\n }\n }\n`;\n\nexport const getLines = plan => {\n const { activityPrices } = plan;\n const currentDate = new Date();\n return [\n {\n subtext: `Next billing date - ${dayjs(\n new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 1),\n ).format('MM/DD/YYYY')}`,\n text: moneyFormatter.format(plan.price),\n title: 'Subscription',\n },\n {\n subtext: 'per SMS segment/MMS message',\n text: `${moneyFormatter.format(activityPrices.p2pSms)} / ${moneyFormatter.format(\n activityPrices.p2pMms,\n )}`,\n title: 'Peer-to-Peer Texting',\n },\n {\n subtext: 'per SMS segment/MMS message',\n text: `${moneyFormatter.format(activityPrices.broadcastSms)} / ${moneyFormatter.format(\n activityPrices.broadcastMms,\n )}`,\n title: 'Broadcast Texting',\n },\n {\n subtext: 'per dial',\n text: moneyFormatter.format(activityPrices.phoneBanking),\n title: 'Phone Banking',\n },\n {\n subtext: 'per unique completion',\n text: moneyFormatter.format(activityPrices.voterRegistration),\n title: 'Forms and Voter Registration Fills',\n },\n ];\n};\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport { message } from 'antd';\n\nimport theme from '@web/styles/theme';\n\nimport GeneralCardWrapper from '@web/components/common/Cards/GeneralCardWrapper';\nimport pxToRem from '@web/utils/pxToRem';\nimport { GrayText, Header } from '../../TextComponents';\nimport { getLines, ModalWithNoPadding } from './modalUtils';\nimport { default as PaymentCompleted } from './PaymentCompleted';\nimport PaymentForm from './PaymentForm';\nimport PaymentLine from './PaymentLine';\n\nimport { billing } from '@admin/api/billing';\nimport { Elements } from '@stripe/react-stripe-js';\nimport { loadStripe } from '@stripe/stripe-js';\n\nconst SubHeader = styled.div`\n color: ${theme.colors.teal};\n text-transform: uppercase;\n font-weight: 600;\n font-size: 12px;\n line-height: 14px;\n margin-bottom: 20px;\n`;\nconst SubTitle = styled.div`\n font-weight: 600;\n font-size: 20px;\n line-height: 24px;\n margin-bottom: 9px;\n`;\n\nconst StyledGrayText = styled(GrayText)`\n color: ${theme.colors.blackL32};\n`;\n\nconst Flex = styled.div`\n display: flex;\n justify-content: space-between;\n min-height: 100%;\n height: 100%;\n`;\n\nconst StyledCardWrapper = styled(GeneralCardWrapper)`\n width: 100%;\n max-width: 45%;\n height: 100%;\n border-radius: 16px;\n padding: ${pxToRem(50)};\n`;\n\nconst LeftContainer = styled.div`\n padding: ${pxToRem(40)};\n padding-top: ${pxToRem(30)};\n\n width: 100%;\n height: 100%;\n > * {\n width: 100%;\n }\n`;\n\nconst VerticalFlex = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n width: 100%;\n`;\n\nconst FieldsContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n width: 100%;\n height: 400px;\n`;\n\n// Make sure to call `loadStripe` outside of a component’s render to avoid\n// recreating the `Stripe` object on every render.\nconst stripePromise = loadStripe(process.env.STRIPE_PUBLISHABLE_KEY);\n\nconst PaymentModal = ({ campaign, visible, onClose, plan }) => {\n const { t } = useTranslation();\n\n const [paymentComplete, setPaymentComplete] = useState(false);\n const priceLines = getLines(plan);\n const [clientSecret, setClientSecret] = useState(null);\n\n const addPaymentMethod = useCallback(async () => {\n const {\n data: { client_secret },\n } = await billing.addPaymentMethod({ campaignId: campaign.id });\n setClientSecret(client_secret);\n }, [campaign]);\n\n useEffect(() => {\n addPaymentMethod();\n }, [addPaymentMethod]);\n\n const handleSuccess = async ({ setupIntent: { payment_method: paymentMethodId } }) => {\n // Set the processed payment method as a default here\n await billing.setDefaultPaymentMethod({\n campaignId: campaign.id,\n paymentMethodId,\n });\n\n billing\n .createStripeSubscription({\n campaignId: campaign.id,\n plan: plan.slug,\n })\n .then(() => {\n setPaymentComplete(true);\n })\n .catch(e => {\n message.error(`Failed to start subscription. Please contact our support.`);\n });\n };\n\n //`Elements` instance that was used to create the Payment Element\n const appearance = {\n rules: {\n '.Input': {\n border: '1px solid #d9d9d9',\n },\n '.Input:focus': {\n boxShadow: '0 0 0 2px rgba(24, 144, 255, 0.2)',\n outline: 'none !important',\n },\n '.Input:hover': {\n border: '1px solid #40a9ff',\n },\n },\n theme: 'none',\n variables: {\n borderRadius: '6px',\n fontLineHeight: '1.5715',\n fontSizeBase: '14px',\n },\n };\n\n return (\n <ModalWithNoPadding\n visible={visible}\n onCancel={!paymentComplete && onClose}\n width={1080}\n footer={null}\n closable={!paymentComplete}\n >\n {!paymentComplete ? (\n <Flex>\n <LeftContainer>\n <Header>{t('auth.start-your-subscription')}</Header>\n <SubHeader>\n {plan.name} {t('auth.membership')}\n </SubHeader>\n <FieldsContainer>\n {clientSecret && (\n <Elements\n stripe={stripePromise}\n options={{\n appearance,\n clientSecret,\n }}\n >\n <PaymentForm onSuccess={handleSuccess} />\n </Elements>\n )}\n </FieldsContainer>\n </LeftContainer>\n <StyledCardWrapper color=\"#FAFAFA\">\n <SubTitle>{t('auth.then-pay-for-what-you-need')}</SubTitle>\n <StyledGrayText>{t('auth.payment-info')}</StyledGrayText>\n <VerticalFlex>\n {priceLines.map(line => (\n <PaymentLine {...line} />\n ))}\n </VerticalFlex>\n </StyledCardWrapper>\n </Flex>\n ) : (\n <PaymentCompleted campaign={campaign} />\n )}\n </ModalWithNoPadding>\n );\n};\n\nPaymentModal.propTypes = {\n campaign: PropTypes.object,\n onClose: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n plan: PropTypes.object.isRequired,\n visible: PropTypes.bool.isRequired,\n};\n\nexport default PaymentModal;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport DesktopSubscriptionSelection from '@web/components/common/SubscriptionSelection/desktop';\nimport { plans } from '@web/components/common/SubscriptionSelection/plansInfo';\nimport PaymentModal from './Components/PaymentModal';\n\nconst PlanSelectStep = ({ campaign }) => {\n const [selectedPlan, setSelectedPlan] = useState(null);\n\n const onPlanSelect = slug => {\n setSelectedPlan(plans.find(plan => plan.slug === slug));\n };\n\n const onCancel = () => {\n setSelectedPlan(null);\n };\n\n return (\n <>\n <DesktopSubscriptionSelection activeIndex={1} onPlanSelect={onPlanSelect} plans={plans} />\n {selectedPlan && (\n <PaymentModal\n campaign={campaign}\n onClose={onCancel}\n plan={selectedPlan}\n visible={!!selectedPlan}\n />\n )}\n </>\n );\n};\n\nPlanSelectStep.propTypes = {\n campaign: PropTypes.object,\n};\n\nexport default PlanSelectStep;\n","import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\n\nimport FormField from '@web/components/common/shared/FormField';\nimport ImpactiveButton, { ImpactiveTextButton } from '@web/components/ImpactiveButton';\nimport { Formik } from 'formik';\nimport { Header, PrimaryText } from '../TextComponents';\n\nconst ButtonContainer = styled.div`\n margin-top: 48px;\n\n @media (min-width: 768px) {\n max-width: 200px;\n }\n`;\n\nconst StyledHeader = styled(Header)`\n ::first-letter {\n text-transform: capitalize;\n }\n`;\n\nconst Flex = styled.div`\n display: flex;\n flex-direction: column;\n padding: 2em;\n`;\n\nconst SideBySide = styled.div`\n display: flex;\n justify-content: space-between;\n gap: 16px;\n margin: 16px 0;\n\n > * {\n width: 100%;\n }\n\n // on mobile display vertically\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nconst HorizontalFlex = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n > * {\n width: 100%;\n }\n`;\n\nconst Wrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n`;\n\nconst TellUsMoreStep = ({ onNext, onBack, values, handleChange, isSubmitting, isValid }) => {\n const { t } = useTranslation();\n\n const handleClick = e => {\n e.preventDefault();\n onNext();\n };\n\n return (\n <Wrapper>\n <Flex>\n <div>\n <StyledHeader>{t('check_registration.tellUs.title').toLowerCase()} âœï¸</StyledHeader>\n <PrimaryText>{t('auth.youll-be-added-as-the-first-administrator')}</PrimaryText>\n </div>\n <SideBySide>\n <FormField\n name=\"first_name\"\n label=\"First Name\"\n placeholder=\"John\"\n value={values.first_name}\n onChange={handleChange}\n labelProps={{ bold: true, required: true }}\n />\n <FormField\n name=\"last_name\"\n label=\"Last Name\"\n placeholder=\"Doe\"\n value={values.last_name}\n onChange={handleChange}\n labelProps={{ bold: true, required: true }}\n />\n </SideBySide>\n <FormField\n name=\"phone\"\n label=\"Phone Number\"\n placeholder=\"(555) 345-67-89\"\n value={values.phone}\n onChange={handleChange}\n labelProps={{ bold: true, required: true }}\n />\n <HorizontalFlex>\n <ButtonContainer>\n <ImpactiveTextButton htmlType=\"button\" onClick={onBack}>\n ↠{t('common.back')}\n </ImpactiveTextButton>\n </ButtonContainer>\n <ButtonContainer>\n <ImpactiveButton\n size=\"full-width\"\n disabled={isSubmitting || !isValid}\n onClick={handleClick}\n >\n {t('common.next')} →\n </ImpactiveButton>\n </ButtonContainer>\n </HorizontalFlex>\n </Flex>\n </Wrapper>\n );\n};\n\nTellUsMoreStep.propTypes = {\n onBack: PropTypes.func.isRequired,\n onNext: PropTypes.func.isRequired,\n ...Formik.propTypes,\n};\n\nexport default TellUsMoreStep;\n","import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\n\nimport FormField from '@web/components/common/shared/FormField';\nimport Select from '@web/components/common/shared/Select';\nimport ImpactiveButton from '@web/components/ImpactiveButton';\nimport { Formik } from 'formik';\nimport { GrayText, Header, PrimaryText } from '../TextComponents';\n\nconst ButtonContainer = styled.div`\n display: flex;\n width: 100%;\n margin-top: 48px;\n justify-content: flex-end;\n > * {\n max-width: 200px;\n }\n`;\n\nconst Flex = styled.div`\n display: flex;\n flex-direction: column;\n padding: 2em;\n`;\n\nconst OrgName = styled.div`\n margin: 16px 0;\n`;\n\nconst SideBySide = styled.div`\n display: flex;\n justify-content: space-between;\n gap: 16px;\n > * {\n width: 100%;\n }\n\n // on mobile display vertically\n @media (max-width: 768px) {\n flex-direction: column;\n }\n`;\n\nconst Wrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n`;\n\nconst WelcomeStep = ({\n onNext,\n values,\n dirty,\n errors,\n handleChange,\n isSubmitting,\n setFieldTouched,\n setFieldValue,\n isValid,\n}) => {\n const { t } = useTranslation();\n\n const selectOnChange = (value, name, setValue, setTouched) => {\n setValue(name, value);\n setTouched(name);\n };\n\n const options = [\n { label: 'Advocacy Organization', value: 'Advocacy Organization' },\n { label: 'Nonprofit', value: 'Nonprofit' },\n { label: 'Union', value: 'Union' },\n { label: 'Electoral Campaign', value: 'Electoral Campaign' },\n { label: 'Party/Committee', value: 'Party/Committee' },\n { label: 'Consultant', value: 'Consultant' },\n { label: 'Other', value: 'Other' },\n ];\n\n const isStepInfoComplete = !errors.org_name && !errors.website;\n\n return (\n <Wrapper>\n <Flex>\n <div>\n <Header>{t('frontline.welcome')} 👋</Header>\n <PrimaryText>{t('auth.tell-us-a-bit')}</PrimaryText>\n </div>\n <OrgName>\n <FormField\n name=\"org_name\"\n label=\"Organization Name\"\n placeholder=\"Impactive\"\n value={values.org_name}\n onChange={handleChange}\n labelProps={{ bold: true, required: true }}\n />\n <GrayText>{t('auth.choose-carefully-this')}</GrayText>\n </OrgName>\n <SideBySide>\n <FormField\n name=\"website\"\n label=\"Organization Website\"\n placeholder=\"www.website.com\"\n value={values.website}\n onChange={handleChange}\n labelProps={{ bold: true, required: true }}\n />\n <Select\n name=\"org_type\"\n label=\"Organization Type\"\n placeholder=\"Select Type...\"\n options={options}\n value={values.org_type}\n onChange={value => selectOnChange(value, 'org_type', setFieldValue, setFieldTouched)}\n labelProps={{ bold: true }}\n />\n </SideBySide>\n <ButtonContainer>\n <ImpactiveButton\n size=\"full-width\"\n disabled={!dirty || isSubmitting || !isStepInfoComplete}\n onClick={onNext}\n >\n Next →\n </ImpactiveButton>\n </ButtonContainer>\n </Flex>\n </Wrapper>\n );\n};\n\nWelcomeStep.propTypes = {\n onNext: PropTypes.func.isRequired,\n ...Formik.propTypes,\n};\n\nexport default WelcomeStep;\n","import theme from '@web/styles/theme';\nimport React, { useContext, useMemo, useState } from 'react';\n\nimport styled from 'styled-components';\nimport { Formik } from 'formik';\nimport * as yup from 'yup';\nimport { campaigns } from '@admin/api/campaigns';\nimport { message } from 'antd';\n\nimport { AuthContext } from '@web/utils/context';\nimport SidebarLayout from '../Components/SidebarLayout';\nimport PlanSelectStep from '../Components/Steps/PlanSelectStep';\nimport TellUsMoreStep from '../Components/Steps/TellUsMoreStep';\nimport WelcomeStep from '../Components/Steps/WelcomeStep';\nimport Loading from '../../../common/Loading';\n\nconst StyledForm = styled.form`\n width: 100%;\n height: 100%;\n\n color: ${theme.colors.black};\n`;\n\nconst URL_REGEX =\n /^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))$/i;\n\nconst validationSchema = yup.object().shape({\n first_name: yup.string().nullable().required('First Name is required!'),\n last_name: yup.string().nullable().required('Last Name is required!'),\n org_name: yup.string().nullable().required('Organization Name Required'),\n org_type: yup.string().nullable(),\n phone: yup\n .string()\n .nullable()\n .matches(/^$|^(?:\\+1)?\\d{1,10}$/, 'Please enter a valid phone number.')\n .required('Phone number is required!'),\n website: yup\n .string()\n .nullable()\n .matches(URL_REGEX, 'Website must be a valid url!')\n .required('Website is required!'),\n});\n\nconst AdminPlanSelect = () => {\n const { user } = useContext(AuthContext);\n const [currentStep, setCurrentStep] = useState(0);\n const [campaign, setCampaign] = useState();\n\n const onNext = () => setCurrentStep(currentStep + 1);\n const onBack = () => setCurrentStep(currentStep - 1);\n\n const initialValues = useMemo(\n () => ({\n first_name: user?.first_name,\n last_name: user?.last_name,\n org_name: '',\n org_type: null,\n phone: user?.phone,\n website: '',\n }),\n [user],\n );\n\n const handleSubmit = async (values, { setSubmitting }) => {\n campaigns\n .create_new_signup(values)\n .then(({ data: { data } }) => {\n setCampaign(data);\n onNext();\n })\n .catch(err => {\n message.error(err.response.data?.message || 'Error creating campaign');\n })\n .finally(() => {\n setSubmitting(false);\n });\n };\n\n React.useEffect(() => {\n document.title = 'Impactive | Campaign Setup';\n }, []);\n\n if (!user) return null;\n\n return (\n <SidebarLayout activeIndex={currentStep} showDemoButton>\n {currentStep < 2 && (\n <Formik\n onSubmit={handleSubmit}\n validationSchema={validationSchema}\n initialValues={initialValues}\n >\n {formikProps =>\n formikProps.isSubmitting ? (\n <Loading centered />\n ) : (\n <StyledForm>\n {currentStep === 0 && <WelcomeStep onNext={onNext} {...formikProps} />}\n {currentStep === 1 && (\n <TellUsMoreStep\n onNext={formikProps.submitForm}\n onBack={onBack}\n {...formikProps}\n />\n )}\n </StyledForm>\n )\n }\n </Formik>\n )}\n {currentStep === 2 && <PlanSelectStep campaign={campaign} />}\n </SidebarLayout>\n );\n};\n\nexport default AdminPlanSelect;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport theme from '@web/styles/theme';\nimport { isDark } from '@web/utils/other';\n\nconst Wrapper = styled.div`\n display: grid;\n grid-template-columns: 130px auto;\n grid-template-rows: auto;\n grid-template-areas:\n 'image titles'\n 'buttons buttons';\n gap: 30px;\n`;\n\nconst ProfileImage = styled.img`\n width: 130px;\n height: 130px;\n border-radius: 100%;\n grid-area: image;\n border: solid ${theme.colors.trueBlack} 2px;\n object-fit: cover;\n`;\n\nconst Buttons = styled.div`\n grid-area: buttons;\n margin-bottom: 16px;\n`;\n\nconst Titles = styled.div`\n grid-area: titles;\n font-size: 36px;\n color: ${theme.colors.trueBlack};\n font-weight: 700;\n align-self: center;\n`;\n\nconst StyledButton = styled.button`\n border: solid 2px ${theme.colors.black};\n color: ${({ $color, $active }) => ($active && isDark($color ?? '#23293E') ? '#fff' : '#000')};\n background: ${({ $active, $color }) => ($active ? $color ?? '#23293E' : 'white')};\n box-shadow: none;\n border-radius: 6px;\n height: 45px;\n width: 120px;\n font-weight: ${({ $active }) => ($active ? '700' : '4000')};\n\n &&:first-of-type {\n border-right: none;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &&:last-of-type {\n border-left: none;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n`;\n\nconst TopSection = ({ controls }) => {\n return (\n <Wrapper>\n <ProfileImage src={controls.campaign?.url_profile_img} alt=\"Campaign logo\" />\n <Titles>\n <div>Leaderboard:</div>\n <div>{controls.activity?.title}</div>\n </Titles>\n <Buttons>\n <StyledButton\n $color={\n controls.activity?.settings?.button_color ??\n controls.activity?.settings?.secondary_color\n }\n $active={controls.type === 'individual'}\n onClick={() => controls.setType('individual')}\n >\n Individuals\n </StyledButton>\n <StyledButton\n $color={\n controls.activity?.settings?.button_color ??\n controls.activity?.settings?.secondary_color\n }\n $active={controls.type === 'team'}\n onClick={() => controls.setType('team')}\n >\n Teams\n </StyledButton>\n </Buttons>\n </Wrapper>\n );\n};\n\nTopSection.propTypes = {\n controls: PropTypes.shape({\n activity: PropTypes.shape({\n settings: PropTypes.shape({\n button_color: PropTypes.string,\n secondary_color: PropTypes.string,\n }),\n title: PropTypes.string,\n }),\n campaign: PropTypes.shape({\n url_profile_img: PropTypes.string,\n }),\n setType: PropTypes.func,\n type: PropTypes.string,\n }),\n};\n\nexport default TopSection;\n","import React, { useCallback, useMemo } from 'react';\n\nimport ReactTable from 'react-table-6';\nimport 'react-table-6/react-table.css';\nimport TablePagination from '@admin/components/helpers/TablePagination';\n\nimport { getIndividualLeaderboardColumns, getTeamLeaderboardColumns } from './getColumns';\n\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport theme from '@web/styles/theme';\n\nconst StyledTable = styled(ReactTable)`\n background: white;\n border-radius: 40px;\n overflow: scroll;\n border: solid ${theme.colors.trueBlack} 2px;\n\n .rt-resizable-header-content {\n color: black;\n font-weight: 700;\n padding: 10px;\n }\n\n div[role='rowgroup'] {\n border-bottom: none !important;\n }\n\n div[role='gridcell'] {\n padding: 20px;\n color: ${theme.colors.trueBlack};\n font-weight: 600;\n }\n\n .pagination-bottom {\n > div {\n padding: 10px 20px 15px 20px;\n }\n }\n\n .rt-noData {\n left: 60px;\n top: 100px;\n transform: none;\n }\n`;\n\nconst LeaderboardTable = ({ controls }) => {\n const handleFetchData = useCallback(\n state => controls.setPaginationConfig({ page: state.page, perPage: state.pageSize }),\n [controls],\n );\n\n const isIndividual = useMemo(() => controls.type === 'individual', [controls.type]);\n\n return (\n <StyledTable\n data={controls.leaderboard}\n columns={isIndividual ? getIndividualLeaderboardColumns() : getTeamLeaderboardColumns()}\n loading={false}\n showPageJump={false}\n minRows={10}\n showPaginationTop={false}\n pageSizeOptions={[10, 25, 50, 100]}\n manual\n sortable={false}\n page={controls.paginationConfig.page}\n onFetchData={handleFetchData}\n pageSize={controls.paginationConfig.perPage}\n PaginationComponent={paginationProps => (\n <TablePagination {...paginationProps} scrollToTop canNext={controls.hasMore} />\n )}\n noDataText={\n isIndividual\n ? 'No one has garnered a referral yet.'\n : \"Teams haven't garnered any referrals yet.\"\n }\n />\n );\n};\n\nLeaderboardTable.propTypes = {\n controls: PropTypes.shape({\n hasMore: PropTypes.bool,\n leaderboard: PropTypes.array,\n paginationConfig: PropTypes.shape({\n page: PropTypes.number,\n perPage: PropTypes.number,\n }),\n setPaginationConfig: PropTypes.func,\n setType: PropTypes.func,\n type: PropTypes.string,\n }),\n};\n\nexport default LeaderboardTable;\n","import React from 'react';\n\nimport { statFormatted } from '@web/utils/other';\n\nexport const getIndividualLeaderboardColumns = () => [\n {\n accessor: 'referrer_first_name',\n Cell: row => {\n return (\n <>\n {row.original.place}\n \n {row.value} {row.original.referrer_last_name?.[0]}.\n </>\n );\n },\n Header: 'Referrer',\n width: '34%',\n },\n {\n accessor: 'team_name',\n Cell: row => row.value,\n Header: 'Team',\n width: '33%',\n },\n {\n accessor: 'referrals_count',\n Cell: row => statFormatted(row.value),\n Header: 'Referrals',\n width: '33%',\n },\n];\n\nexport const getTeamLeaderboardColumns = () => [\n {\n accessor: 'team_name',\n Cell: row => (\n <>\n {row.original.place}\n {row.value}\n </>\n ),\n Header: 'Team',\n width: '34%',\n },\n {\n accessor: 'team_referrals_count',\n Cell: row => statFormatted(row.value),\n Header: 'Referrals from Team Link',\n width: '33%',\n },\n {\n accessor: 'contact_referrals_count',\n Cell: row => statFormatted(row.value),\n Header: \"Referrals from Individuals' Links\",\n width: '33%',\n },\n];\n","import { useCallback, useEffect, useState } from 'react';\nimport { useHistory, useLocation, useParams } from 'react-router-dom/cjs/react-router-dom';\n\nimport activityRoutes from '@web/services/api/activities';\nimport { message } from 'antd';\n\nconst useLeaderboard = () => {\n const location = useLocation();\n const queryParams = new URLSearchParams(location.search);\n const initialType = queryParams.get('type') || 'individual';\n const params = useParams();\n\n const history = useHistory();\n\n const [loading, setLoading] = useState(true);\n const [type, setType] = useState(initialType);\n const [hasMore, setHasMore] = useState(false);\n\n const [leaderboard, setLeaderboard] = useState([]);\n const [paginationConfig, setPaginationConfig] = useState({ page: 0, perPage: 10 });\n\n const [publicCampaign, setPublicCampaign] = useState(null);\n const [publicActivity, setPublicActivity] = useState(null);\n\n const getData = useCallback(\n type => {\n const api =\n type === 'individual'\n ? activityRoutes.getVoterRegistrationContactLeaderboard\n : activityRoutes.getVoterRegistrationTeamLeaderboard;\n\n api({\n activitySlug: params.activitySlug,\n campaignSlug: params.campaignSlug,\n page: paginationConfig.page + 1,\n perPage: paginationConfig.perPage,\n })\n .then(({ data }) => {\n setLeaderboard(data.data);\n setPublicActivity(data.activity);\n setPublicCampaign(data.campaign);\n setHasMore(!!data.links.next);\n setLoading(false);\n })\n .catch(() => {\n message.error('Something went wrong, please try again');\n setLoading(false);\n });\n },\n [paginationConfig.page, paginationConfig.perPage, params.activitySlug, params.campaignSlug],\n );\n\n useEffect(() => {\n getData(type);\n }, [getData, type]);\n\n // Update leaderboard every 5min\n useEffect(() => {\n const interval = setInterval(() => {\n getData(type);\n }, 300000);\n\n return () => clearInterval(interval);\n }, [getData, type]);\n\n const changeUrl = data => {\n const params = new URLSearchParams({ type: data });\n history.replace({ pathname: location.pathname, search: params.toString() });\n setPaginationConfig({ page: 0, perPage: 10 });\n setType(data);\n };\n\n return {\n activity: publicActivity,\n campaign: publicCampaign,\n hasMore,\n leaderboard,\n loading,\n paginationConfig,\n setPaginationConfig,\n setType: changeUrl,\n type,\n };\n};\n\nexport default useLeaderboard;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport { Spin } from 'antd';\nimport TopSection from './components/TopSection';\nimport LeaderboardTable from './components/LeaderboardTable';\n\nimport useLeaderboard from './useLeaderboard';\n\nconst Leaderboard = styled.div`\n padding: 50px;\n background: ${({ $color }) => $color};\n height: 100%;\n display: flex;\n flex-direction: column;\n`;\n\nconst Center = styled.div`\n width: 100vw;\n height: 100vh;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst VoterRegistrationPublicLeaderboard = () => {\n const leaderboardControls = useLeaderboard();\n\n if (leaderboardControls.loading) {\n return (\n <Center>\n <Spin />\n </Center>\n );\n }\n\n return (\n <Leaderboard $color={leaderboardControls.activity?.settings?.background_color}>\n <TopSection controls={leaderboardControls} />\n <LeaderboardTable controls={leaderboardControls} />\n </Leaderboard>\n );\n};\n\nexport default VoterRegistrationPublicLeaderboard;\n","import React from 'react';\n\nimport styled from 'styled-components';\n\n// Do not remove, we will probably use it again\n// import Icon from '@web/components/common/Icon';\n// import { Button, message } from 'antd';\n// const ShareButton = styled(Button)`\n// &&& {\n// padding: 0;\n// border: none;\n// background-color: transparent;\n// }\n// `;\n\nconst Flex = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n padding: 34px 16px;\n border-bottom: 2px solid black;\n`;\n\nconst StyledHeader = styled.a`\n margin: 0;\n padding: 0;\n\n font-size: 18px;\n font-weight: 700;\n line-height: 100%;\n\n color: black;\n :hover {\n color: black;\n text-decoration: none;\n }\n`;\n\nconst Header = () => {\n // Do not remove, we will probably use it again\n // const onShare = useCallback(() => {\n // const url = window.location.href;\n\n // if (window.navigator.share) {\n // navigator\n // .share({\n // url,\n // })\n // .catch(() => {});\n // } else {\n // navigator?.clipboard\n // .writeText(url)\n // .then(() => message.success('Link copied!'))\n // .catch(() => message.error('Error copying link'));\n // }\n // }, []);\n\n return (\n <Flex>\n <StyledHeader href=\"/my_vote_score\">Vote Score</StyledHeader>\n {/*\n Do not remove, we will probably use it again\n <ShareButton onClick={onShare}>\n <Icon name=\"Upload\" />\n </ShareButton>\n */}\n </Flex>\n );\n};\n\nHeader.propTypes = {};\n\nexport default Header;\n","import React, { useCallback } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport * as yup from 'yup';\n\nimport { Button } from 'antd';\nimport { Form, Formik } from 'formik';\nimport FormInput from '@web/components/common/shared/FormInput';\nimport FormDatePicker from '@web/components/common/shared/FormDatePicker';\nimport AddressFormField from '@web/components/common/shared/AddressFormField';\n\nimport theme from '@web/styles/theme';\n\nconst VertFlex = styled.div`\n display: flex;\n flex-direction: column;\n gap: 24px;\n`;\n\nconst HeaderFlex = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n`;\n\nexport const Header = styled.h2`\n margin: 0;\n padding: 0;\n\n font-weight: 700;\n font-size: 40px;\n line-height: 55px;\n`;\n\nexport const SubHeader = styled.h3`\n font-weight: 500;\n font-size: 16px;\n line-height: 22px;\n`;\n\nconst SubText = styled.div`\n color: #606060;\n font-weight: 500;\n font-size: 14px;\n line-height: 19px;\n\n margin: 0 auto;\n text-align: center;\n`;\n\nconst StyledButton = styled(Button)`\n &&& {\n font-weight: 700;\n font-size: 16px;\n line-height: 22px;\n height: 46px;\n width: 100%;\n background-color: #b6dcfe;\n border: none;\n border-radius: 8px;\n\n display: flex;\n gap: 5px;\n\n :hover {\n background-color: #77c4ff;\n color: ${theme.colors.black};\n border: none;\n }\n\n :disabled {\n border: none;\n background-color: #f4f4f4;\n color: #606060;\n }\n }\n`;\n\nconst CheckVoterScoreForm = ({ handleSubmit }) => {\n const setAddress = useCallback((address, setFieldValue) => {\n setFieldValue('address', address.address);\n setFieldValue('zip_code', address.zip_code);\n setFieldValue('city', address.city);\n setFieldValue('state_abbrev', address.state_abbrev);\n }, []);\n\n const validationSchema = yup.object().shape({\n address: yup\n .object()\n .nullable()\n .shape({\n city: yup.string().nullable().required('City is required!'),\n state: yup.string().nullable().required('State is required!'),\n }),\n dob: yup\n .string()\n .nullable()\n .matches(\n /^(0[1-9]|1[0-2])\\/(0[1-9]|[12]\\d|3[01])\\/(19|20)\\d{2}$/,\n 'Date must be in MM/DD/YYYY format',\n )\n .required('DOB is required!'),\n first_name: yup.string().nullable().required('First Name is required!'),\n last_name: yup.string().nullable().required('Last Name is required!'),\n });\n\n return (\n <VertFlex>\n <HeaderFlex>\n <Header>Check Your Vote Score</Header>\n <SubHeader>\n Who you voted for is always private, but whether you voted is public record. Check your\n record of voting below.\n </SubHeader>\n </HeaderFlex>\n <Formik\n onSubmit={handleSubmit}\n validationSchema={validationSchema}\n render={({ values, handleChange, setFieldValue, isSubmitting, isValid }) => {\n return (\n <Form style={{ display: 'flex', flexDirection: 'column', gap: 16 }}>\n <FormInput\n key=\"first_name\"\n label=\"First Name\"\n name=\"first_name\"\n value={values.first_name}\n onChange={handleChange}\n fontColor=\"#000000\"\n backgroundColor=\"#dfdfdf\"\n outlineColor=\"#000000\"\n labelFontColor=\"#000000\"\n />\n <FormInput\n key=\"last_name\"\n label=\"Last Name\"\n name=\"last_name\"\n value={values.last_name}\n onChange={handleChange}\n fontColor=\"#000000\"\n backgroundColor=\"#dfdfdf\"\n outlineColor=\"#000000\"\n labelFontColor=\"#000000\"\n />\n <FormDatePicker\n key=\"dob\"\n hidePrefix\n label=\"Date of Birth\"\n placeholder=\"MM / DD / YYYY\"\n backgroundColor=\"#dfdfdf\"\n outlineColor=\"#000000\"\n fontColor=\"#000000\"\n name=\"dob\"\n value={values.age_range}\n onChange={e => setFieldValue('dob', e.target.value)}\n />\n <AddressFormField\n placeholder=\"\"\n hidePrefix\n label=\"Address\"\n name=\"address\"\n key={'address'}\n onChange={data => setAddress(data, setFieldValue)}\n fontColor=\"#000000\"\n backgroundColor=\"#dfdfdf\"\n outlineColor=\"#000000\"\n />\n <StyledButton disabled={isSubmitting || !isValid} htmlType=\"submit\">\n Check Your Vote Score\n </StyledButton>\n <SubText>\n Data is sourced from publicly available voter registration data provided by the\n state. Data will be updated as it comes in before and after the Nov 5, 2024\n election. Friends don't let friends forget to vote!\n </SubText>\n </Form>\n );\n }}\n />\n </VertFlex>\n );\n};\n\nCheckVoterScoreForm.propTypes = {\n handleSubmit: PropTypes.func,\n};\n\nexport default CheckVoterScoreForm;\n","import React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Header from '../components/Header';\n// import Footer from '../components/Footer';\n\nimport { media } from '@web/styles/theme';\nimport { SubHeader, Header as Title } from '../components/CheckVoterScoreForm';\n\n// Do not remove, we will probably use it again\n// import { message } from 'antd';\n// import { useHistory } from 'react-router-dom';\n// import SelectVoter from '../components/SelectPeople';\n// import CheckVoterScoreForm from '../components/CheckVoterScoreForm';\n// import ACRoutes from '@web/services/api/accelerateChange';\n// import useUtmParams from '@web/components/AccelerateChange/useUtmParams';\n\nconst PageWrapper = styled.div`\n color: black;\n\n width: 100%;\n min-height: 100vh;\n background-color: ${({ color }) => color ?? '#dfdfdf'};\n\n display: flex;\n flex-direction: column;\n\n transition: background-color 0.3s ease-in-out;\n\n * {\n font-family: Gill Sans;\n }\n`;\n\nconst InnerContainer = styled.div`\n width: 868px;\n margin: 24px auto 0;\n padding-bottom: 64px;\n\n ${({ $isLanding }) =>\n $isLanding &&\n css`\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n text-align: center;\n flex: 1;\n gap: 10px;\n\n > h2 {\n font-size: 36px;\n }\n\n > h3 {\n font-size: 18px;\n }\n `}\n\n ${media.nlg} {\n padding: 0 16px;\n width: 100%;\n }\n`;\n\nconst SearchVoter = () => {\n // Do not remove, we will probably use it again\n // const history = useHistory();\n // const [voterData, setVoterData] = useState(null);\n // const [voterSearchInfo, setVoterSearchInfo] = useState(null);\n\n // const params = useUtmParams();\n\n // const onVoterDataSubmit = async (data, { setSubmitting }) => {\n // const { city, state_abbrev, first_name, last_name, dob } = data;\n\n // let [month, day, year] = dob.split('/');\n\n // ACRoutes.searchVoters(\n // first_name,\n // last_name,\n // undefined,\n // city,\n // state_abbrev,\n // `${year}-${month}-${day}`,\n // )\n // .then(data => {\n // if (data?.data?.length > 1) {\n // setVoterData(data.data);\n // setVoterSearchInfo({ city, name: `${first_name} ${last_name}` });\n // } else if (data?.data?.length === 1) {\n // history.push(`/my_vote_score/${data.data[0].voterbase_id}${params.formattedParams}`);\n // } else {\n // message.info('Voters not found');\n // }\n // })\n // .catch(error => message.error(error?.response?.data?.message || error?.message))\n // .finally(() => setSubmitting(false));\n // };\n\n return (\n <PageWrapper>\n <Header />\n <InnerContainer $isLanding>\n <Title>Thank you for checking your Vote Score, and being a voter, this year.</Title>\n <SubHeader>\n It will take several months for state departments of elections to update the vote history\n with Election Day 2024 voting records, and access to the VoteScore tool will be paused for\n the time being.\n </SubHeader>\n {/* Do not remove, we will probably use it again */}\n {/* {voterData && (\n <SelectVoter\n voters={voterData}\n city={voterSearchInfo?.city}\n name={voterSearchInfo?.name}\n checkAgain={() => setVoterData(null)}\n />\n )}\n {!voterData && <CheckVoterScoreForm handleSubmit={onVoterDataSubmit} />} */}\n </InnerContainer>\n {/* <Footer /> */}\n </PageWrapper>\n );\n};\n\nexport default SearchVoter;\n","import React from 'react';\nimport styled from 'styled-components';\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding: 34px 16px;\n border-bottom: 2px solid black;\n`;\n\nconst Title = styled.h1`\n margin: 0;\n font-weight: 700;\n`;\n\nconst Subtitle = styled.p`\n margin: 0;\n padding: 0;\n font-size: 14px;\n color: black;\n`;\n\nconst Header = () => {\n return (\n <Wrapper>\n <Title>Frequently Asked Questions</Title>\n <Subtitle>\n This website was created to increase public awareness of the importance of voting and\n encourage everyone to vote. When we all vote, we all win.\n </Subtitle>\n </Wrapper>\n );\n};\n\nexport default Header;\n","export const questions = [\n {\n answers: [\n 'Our team developed the voting history look-up tool to encourage people to learn about their voting record, about voting, and about how they can help their friends and neighbors remember to vote. It’s important that all of us make our voice heard this election. When we all vote, we win!',\n 'You and your friends can check your registration, find polling locations, and make a voting plan at <a target=\"_blank\" href=\"https://www.votehq.org/en\">https://www.votehq.org/en</a>',\n ],\n title: 'Why was this tool created and what is it for?',\n },\n {\n answers: [\n 'Yes! Voting history is publicly available information in every state. Who and what you voted for are, of course, private. :)',\n 'Your friends, partner, boss, ex and neighbor can all see whether or not you voted. But who you voted for will always be secret.',\n ],\n title: 'Is this legal?',\n },\n {\n answers: [\n 'Your results may not accurately reflect your voting history if you have recently moved.',\n ],\n title: 'What if I recently moved?',\n },\n {\n answers: [\n 'This site is powered by publicly available vote history data, and while records are accurate for most people, there may be gaps. Your results may not accurately reflect your voting history if you have recently moved or if multiple people in your state share the same name and birthdate.',\n 'This tool is intended for general information purposes only and is not an official source of voter history.',\n 'Check with your local board of elections office or other official sources with any questions about your vote history.',\n 'Go to <a target=\"_blank\" href=\"https://iwillvote.com/\">https://iwillvote.com/</a> to be directed to official sources to look up the status of your 2024 ballot and historic data. ',\n ],\n title: 'How accurate is the data?',\n },\n {\n answers: [\n 'Double check to be sure your entries don’t have typos.',\n 'We’ve compiled publicly available data on vote history. There may be gaps or inaccuracies, and we apologize for any errors.',\n 'We encourage you to check with official sources to verify your voter registration, at <a target=\"_blank\" href=\"https://iwillvote.com/\">iwillvote.com</a>',\n ],\n title: 'What if I can’t find myself in the database?',\n },\n {\n answers: [\n 'No. Who you voted for is secret, and <strong>not</strong> available in any public or private database.',\n 'Whether you vote is public record. Anyone entering the correct information to look up a voter will be able to see their vote history.',\n ],\n title: 'Can anyone find out who I voted for?',\n },\n {\n answers: [\n 'If you were under 18 in previous elections, the tool will not display a voting record.',\n ],\n title: 'What if I’m too young to have voted in the past?',\n },\n {\n answers: [\n 'Data for early in-person and mail-in voting in 2024 will be posted here as we receive them.',\n 'We are not election officials and this tool shouldn’t be used as the definitive authority on whether your vote was cast in 2024. Check with your local board of elections office or other official sources with any questions about the status of your 2024 vote. Go to <a target=\"_blank\" href=\"https://iwillvote.com\">https://iwillvote.com/</a> to be directed to official sources to look up the status of your 2024 ballot. ',\n ],\n title: 'I voted early in the 2024 election but this tool says I haven’t, did my vote count?',\n },\n];\n\nexport const myVoteScoreQuestions = [\n {\n answers: [\n 'Our team developed the voting history look-up tool to encourage people to learn about their voting record, about voting, and about how they can help their friends and neighbors remember to vote. It’s important that all of us make our voice heard this election. When we all vote, we win!',\n 'You and your friends can check your registration, find polling locations, and make a voting plan at <a target=\"_blank\" href=\"https://www.votehq.org\">https://www.votehq.org</a>',\n ],\n title: 'Why was this tool created and what is it for? ',\n },\n {\n answers: [\n 'Your results may not accurately reflect your voting history if you have recently moved.',\n ],\n title: 'What if I recently moved?',\n },\n {\n answers: [\n 'Yes! Voting history is publicly available information in every state. Who and what you voted for are, of course, private. :)',\n ],\n title: 'Is this legal?',\n },\n {\n answers: [\n 'If you were under 18 in previous elections, those elections will not be included in calculating your vote score.',\n ],\n title: 'What if I’m too young to have voted in the past?',\n },\n {\n answers: [\n 'Data for early in-person and mail-in voting in 2024 will be posted here as we receive them.',\n 'This tool shouldn’t be used as the definitive authority on whether your vote was cast in 2024. Check with your local board of elections office or other official sources with any questions about the status of your 2024 vote.',\n ],\n title: 'I voted early in the 2024 election but this tool says I haven’t, did my vote count?',\n },\n {\n answers: [\n 'This site is powered by publicly available vote history data, and while records are accurate for most people, there may be gaps. Your results may not accurately reflect your voting history if you have recently moved.',\n 'This tool is intended for general information purposes only and is not an official source of voter history.',\n 'Check with your local board of elections office or other official sources with any questions about your vote history.',\n 'Go to <a target=\"_blank\" href=\"https://www.votehq.org\">https://www.votehq.org</a> to be directed to official sources to look up the status of your 2024 ballot and historic data.',\n ],\n title: 'How accurate is the data?',\n },\n {\n answers: [\n 'Double check to be sure your entries don’t have typos.',\n 'We’ve compiled publicly available data on vote history. There may be gaps or inaccuracies, and we apologize for any errors.',\n 'We encourage you to check with official sources to verify your voter registration, at <a target=\"_blank\" href=\"https://www.votehq.org\">https://www.votehq.org</a>',\n ],\n title: 'What if I can’t find myself in the database?',\n },\n {\n answers: [\n 'No. Who or what you voted for is secret, and <strong>not</strong> available in any public or private database.',\n ],\n title: 'Can anyone find out who I voted for?',\n },\n];\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nconst QuestionTitle = styled.div`\n font-weight: bold;\n font-size: 24px;\n`;\n\nconst Question = ({ question }) => {\n return (\n <>\n <QuestionTitle>{question.title}</QuestionTitle>\n <ul>\n {question.answers.map(answer => (\n <li style={{ margin: '7px 0' }} dangerouslySetInnerHTML={{ __html: answer }} />\n ))}\n </ul>\n </>\n );\n};\n\nQuestion.propTypes = {\n question: PropTypes.shape({\n answers: PropTypes.arrayOf(PropTypes.string),\n title: PropTypes.string,\n }),\n};\n\nexport default Question;\n","import PropTypes from 'prop-types';\nimport React, { useMemo } from 'react';\nimport styled from 'styled-components';\nimport Header from './components/Header';\nimport { myVoteScoreQuestions, questions } from './questions';\nimport Question from './components/Question';\nimport theme, { media } from '@web/styles/theme';\n\nconst PageWrapper = styled.div`\n color: black;\n\n width: 100%;\n min-height: 100vh;\n background-color: ${({ $isMVS }) => ($isMVS ? '#dfdfdf' : '#fff2e1')};\n\n display: flex;\n flex-direction: column;\n\n * {\n font-family: ${({ $isMVS }) => ($isMVS ? 'Gill Sans' : theme.fonts.AccelerateChange)};\n }\n`;\n\nconst InnerContainer = styled.div`\n width: 870px;\n margin: 24px auto 0;\n padding-bottom: 64px;\n\n ${media.nlg} {\n padding: 0 16px;\n width: 100%;\n }\n`;\n\nconst DidMyFriendVoteFAQs = ({ type }) => {\n const isMVS = useMemo(() => type === 'myVoteScore', [type]);\n const faqs = useMemo(() => (isMVS ? myVoteScoreQuestions : questions), [isMVS]);\n\n return (\n <PageWrapper $isMVS={isMVS}>\n <Header />\n <InnerContainer>\n {faqs.map(question => (\n <Question question={question} />\n ))}\n </InnerContainer>\n </PageWrapper>\n );\n};\n\nDidMyFriendVoteFAQs.propTypes = {\n type: PropTypes.oneOf(['didMyFriendVote', 'didTheyVote', 'myVoteScore']),\n};\n\nexport default DidMyFriendVoteFAQs;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport theme from '@web/styles/theme';\n\nconst Wrapper = styled.div`\n display: grid;\n grid-template-columns: 130px auto;\n grid-template-rows: auto;\n grid-template-areas:\n 'image titles'\n 'buttons buttons';\n gap: 30px;\n`;\n\nconst ProfileImage = styled.img`\n width: 130px;\n height: 130px;\n border-radius: 100%;\n grid-area: image;\n border: solid ${theme.colors.trueBlack} 2px;\n object-fit: cover;\n`;\n\nconst Titles = styled.div`\n grid-area: titles;\n font-size: 36px;\n color: ${theme.colors.trueBlack};\n font-weight: 700;\n align-self: center;\n`;\n\nconst TopSection = ({ controls }) => {\n return (\n <Wrapper>\n <ProfileImage src={controls.campaign?.url_profile_img} alt=\"Campaign logo\" />\n <Titles>\n <div>Leaderboard:</div>\n <div>{controls.activity?.title}</div>\n </Titles>\n </Wrapper>\n );\n};\n\nTopSection.propTypes = {\n controls: PropTypes.shape({\n activity: PropTypes.shape({\n title: PropTypes.string,\n }),\n campaign: PropTypes.shape({\n url_profile_img: PropTypes.string,\n }),\n }),\n};\n\nexport default TopSection;\n","import React from 'react';\nimport { statFormatted } from '@web/utils/other';\n\nexport const columns = [\n {\n accessor: 'place',\n Cell: row => {\n return (\n <>\n {row.value}\n \n {row.original.first_name} {row.original.last_name?.[0]}.\n </>\n );\n },\n Header: 'User',\n width: '50%',\n },\n {\n accessor: 'total_attempted_contacts',\n Cell: row => statFormatted(row.value),\n Header: 'Initial Messages',\n width: '50%',\n },\n];\n","import React, { useCallback } from 'react';\n\nimport ReactTable from 'react-table-6';\nimport 'react-table-6/react-table.css';\nimport TablePagination from '@admin/components/helpers/TablePagination';\n\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\nimport theme from '@web/styles/theme';\nimport { columns } from './getColumns';\n\nconst StyledTable = styled(ReactTable)`\n background: white;\n border-radius: 40px;\n overflow: scroll;\n border: solid ${theme.colors.trueBlack} 2px;\n height: 100%;\n\n .rt-resizable-header-content {\n color: black;\n font-weight: 700;\n padding: 10px;\n }\n\n div[role='rowgroup'] {\n border-bottom: none !important;\n }\n\n div[role='gridcell'] {\n padding: 20px;\n color: ${theme.colors.trueBlack};\n font-weight: 600;\n }\n\n .pagination-bottom {\n > div {\n padding: 10px 20px 15px 20px;\n }\n }\n .rt-tr-group {\n max-height: min-content !important;\n }\n\n .rt-noData {\n left: 60px;\n top: 100px;\n transform: none;\n }\n`;\n\nconst LeaderboardTable = ({ controls }) => {\n const handleFetchData = useCallback(\n state => controls.setPaginationConfig({ page: state.page, perPage: state.pageSize }),\n [controls],\n );\n\n return (\n <StyledTable\n data={controls.leaderboard}\n columns={columns}\n loading={false}\n showPageJump={false}\n minRows={3}\n showPaginationTop={false}\n pageSizeOptions={[10, 25, 50, 100]}\n manual\n sortable={false}\n page={controls.paginationConfig.page}\n onFetchData={handleFetchData}\n pageSize={controls.paginationConfig.perPage}\n PaginationComponent={paginationProps => (\n <TablePagination {...paginationProps} scrollToTop canNext={controls.hasMore} />\n )}\n noDataText={'No data yet.'}\n />\n );\n};\n\nLeaderboardTable.propTypes = {\n controls: PropTypes.shape({\n hasMore: PropTypes.bool,\n leaderboard: PropTypes.array,\n paginationConfig: PropTypes.shape({\n page: PropTypes.number,\n perPage: PropTypes.number,\n }),\n setPaginationConfig: PropTypes.func,\n setType: PropTypes.func,\n type: PropTypes.string,\n }),\n};\n\nexport default LeaderboardTable;\n","import { useCallback, useEffect, useState } from 'react';\nimport { useParams } from 'react-router-dom/cjs/react-router-dom';\n\nimport activityRoutes from '@web/services/api/activities';\nimport { message } from 'antd';\n\nconst useLeaderboard = () => {\n const params = useParams();\n\n const [loading, setLoading] = useState(true);\n\n const [hasMore, setHasMore] = useState(false);\n\n const [leaderboard, setLeaderboard] = useState([]);\n const [paginationConfig, setPaginationConfig] = useState({ page: 0, perPage: 10 });\n\n const [publicCampaign, setPublicCampaign] = useState(null);\n const [publicActivity, setPublicActivity] = useState(null);\n\n const getData = useCallback(\n type => {\n activityRoutes\n .getP2PUsersLeaderboard({\n activitySlug: params.activitySlug,\n campaignSlug: params.campaignSlug,\n page: paginationConfig.page + 1,\n perPage: paginationConfig.perPage,\n })\n .then(({ data }) => {\n setLeaderboard(data.data);\n setPublicActivity(data.activity);\n setPublicCampaign(data.campaign);\n setHasMore(!!data.links.next);\n setLoading(false);\n })\n .catch(() => {\n message.error('Something went wrong, please try again');\n setLoading(false);\n });\n },\n [paginationConfig.page, paginationConfig.perPage, params.activitySlug, params.campaignSlug],\n );\n\n useEffect(() => {\n getData();\n }, [getData]);\n\n // Update leaderboard every 5min\n useEffect(() => {\n const interval = setInterval(() => {\n getData();\n }, 300000);\n\n return () => clearInterval(interval);\n }, [getData]);\n\n return {\n activity: publicActivity,\n campaign: publicCampaign,\n hasMore,\n leaderboard,\n loading,\n paginationConfig,\n setPaginationConfig,\n };\n};\n\nexport default useLeaderboard;\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport { Spin } from 'antd';\nimport TopSection from './components/TopSection';\nimport LeaderboardTable from './components/LeaderboardTable';\n\nimport useLeaderboard from './useLeaderboard';\n\nconst Leaderboard = styled.div`\n padding: 50px;\n height: 100%;\n display: flex;\n flex-direction: column;\n`;\n\nconst Center = styled.div`\n width: 100vw;\n height: 100vh;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst PeerToPeerPublicLeaderboard = () => {\n const leaderboardControls = useLeaderboard();\n\n if (leaderboardControls.loading) {\n return (\n <Center>\n <Spin />\n </Center>\n );\n }\n\n return (\n <Leaderboard>\n <TopSection controls={leaderboardControls} />\n <LeaderboardTable controls={leaderboardControls} />\n </Leaderboard>\n );\n};\n\nexport default PeerToPeerPublicLeaderboard;\n","import React from 'react';\n\nimport { ConfigProvider, Empty } from 'antd';\nimport { Provider } from 'react-redux';\nimport { Route, Switch } from 'react-router-dom';\nimport store from '@web/reducers';\nimport theme from '../styles/theme';\nimport { ThemeProvider } from 'styled-components';\n\nimport ActivityDetail from './ActivityDetail';\nimport Auth from './Auth';\nimport AuthenticatedRoute from './Routes/AuthenticatedRoute';\nimport AuthProvider from './AuthProvider';\nimport CampaignDetail from './CampaignDetail';\nimport CampaignLeaderboard from './CampaignLeaderboard';\nimport CheckRegistration from './CheckRegistration';\nimport ConfirmAddress from './ConfirmAddress';\nimport ContactSync from './ContactSync';\nimport Contacts from './Contacts';\nimport DialerActivity from './DialerActivity';\nimport FrontLine from './FrontLine';\nimport GaOptionsPage from './GeorgiaSpecialLanding/OptionsPage';\nimport GeorgiaSpecialLanding from './GeorgiaSpecialLanding/index';\nimport Hq from './Hq';\nimport i18n from './i18n';\nimport IdVoters from './IdVotersActivity/IdVoters';\nimport Inbox from './Inbox';\nimport ModalContainer from './ModalContainer';\nimport NewVoterReport from './IdVotersActivity/NewVoterReport';\nimport NotFound from './404/NotFound';\nimport OptInFormWeb from './OptInFormWeb';\nimport PledgeToVote from './PledgeToVote';\nimport PublicActivityDetail from './PublicActivityDetail';\nimport TeamActivityPage from './TeamActivityPage';\nimport Settings from './Settings';\nimport StateProvider from './StateProvider';\nimport StateVotingInformation from './StateVotingInformation';\nimport TeamDetail from './TeamDetail';\nimport TestimonialActivity from './ActivityDetail/TestimonialActivity';\nimport TextAFriendActivity from './ActivityDetail/TextAFriendActivity';\nimport TextAListActivity from './ActivityDetail/TextAListActivity';\nimport UnauthenticatedRoute from './Routes/UnauthenticatedRoute';\nimport VoterMatch from './IdVotersActivity/VoterMatch';\nimport VotingInformation from './VotingInformation';\nimport AddReport from './AddReport';\nimport ChooseVoter from './AccelerateChange/pages/ChooseVoter';\nimport AdminPlanSelect from './Auth/AdminSignup/pages/AdminPlanSelect';\nimport VoterRegistrationPublicLeaderboard from './VoterRegistrationPublicLeaderboard';\nimport SearchVoter from './VoteScore/pages/SearchVoter';\nimport DidMyFriendVoteFAQs from './DidMyFriendVoteFAQs';\nimport PeerToPeerPublicLeaderboard from './PeerToPeerPublicLeaderboard';\n\nconst customizeRenderEmpty = () => (\n <Empty description={i18n.t('common.no_results')} image={Empty.PRESENTED_IMAGE_SIMPLE} />\n);\n\nconst App = () => (\n <ThemeProvider theme={theme}>\n <Provider store={store}>\n <AuthProvider>\n <ConfigProvider renderEmpty={customizeRenderEmpty}>\n <StateProvider>\n <Switch>\n <UnauthenticatedRoute path=\"/auth\" component={Auth} />\n <UnauthenticatedRoute\n exact\n path=\"/campaigns/:campaignId\"\n component={CampaignDetail}\n />\n <AuthenticatedRoute exact path=\"/leaderboard\" component={CampaignLeaderboard} />\n <UnauthenticatedRoute exact path=\"/teams/:teamId(\\d+)\" component={TeamDetail} />\n <Route exact path=\"/campaigns/:campaignId/ready_to_vote\" component={PledgeToVote} />\n <Route\n exact\n path=\"/campaigns/:campaignId/check_registration\"\n component={CheckRegistration}\n />\n <Route\n exact\n path=\"/campaigns/:campaignId/contacts/:contactId/confirm_address\"\n component={ConfirmAddress}\n />\n <Route\n exact\n path=\"/campaigns/:campaignId/contacts/:contactId/voting_information\"\n component={VotingInformation}\n />\n <Route\n exact\n path=\"/campaigns/:campaignId/contacts/:contactId/state_voting_information\"\n component={StateVotingInformation}\n />\n {/* Public page allows both activity slug and activity id */}\n <UnauthenticatedRoute\n exact\n path=\"/campaigns/:campaignSlug/activities/:activitySlug/teams/:teamSlug\"\n component={TeamActivityPage}\n />\n <UnauthenticatedRoute\n exact\n path=\"/:campaignSlug/:activitySlug/leaderboard\"\n component={VoterRegistrationPublicLeaderboard}\n />\n <UnauthenticatedRoute\n exact\n path=\"/:campaignSlug/p2p/:activitySlug/leaderboard\"\n component={PeerToPeerPublicLeaderboard}\n />\n <UnauthenticatedRoute\n exact\n path=\"/campaigns/:campaignSlug/activities/:activitySlug\"\n component={PublicActivityDetail}\n />\n {/* Private activity page is actually user_activity page, these need to be numberic ids */}\n <AuthenticatedRoute\n exact\n path=\"/activities/:userActivityId(\\d+)\"\n component={ActivityDetail}\n />\n <AuthenticatedRoute\n path=\"/activities/:userActivityId/p2p\"\n component={TextAListActivity}\n />\n <AuthenticatedRoute\n path=\"/activities/:userActivityId/phone-bank\"\n component={DialerActivity}\n />\n <AuthenticatedRoute\n path=\"/activities/:userActivityId/email_friends\"\n component={TextAFriendActivity}\n />\n <AuthenticatedRoute\n path=\"/activities/:userActivityId/testimonial\"\n component={TestimonialActivity}\n />\n <AuthenticatedRoute exact path=\"/voters\" component={IdVoters} />\n <AuthenticatedRoute exact path=\"/voter/view\" component={VoterMatch} />\n <UnauthenticatedRoute\n exact\n path=\"/campaigns/:campaignId/georgia_runoff\"\n component={GeorgiaSpecialLanding}\n />\n <UnauthenticatedRoute\n exact\n path=\"/campaigns/:campaignId/georgia_runoff/options\"\n component={GaOptionsPage}\n />\n <UnauthenticatedRoute\n exact\n path=\"/campaigns/:campaignId/georgia_runoff/options/:contactPath\"\n component={GaOptionsPage}\n />\n <UnauthenticatedRoute\n exact\n path=\"/join/:campaignId/:formId\"\n component={OptInFormWeb}\n />\n {/* uses passed state via location */}\n <AuthenticatedRoute exact path=\"/voter/newVoterReport\" component={NewVoterReport} />\n <AuthenticatedRoute path=\"/settings\" component={Settings} />\n <AuthenticatedRoute path=\"/contacts\" component={Contacts} />\n\n <AuthenticatedRoute path=\"/frontline\" component={FrontLine} />\n <AuthenticatedRoute exact path=\"/headquarters\" component={Hq} />\n <AuthenticatedRoute exact path=\"/messages\" component={Inbox} />\n <AuthenticatedRoute path=\"/messages/:messageThreadId\" component={Inbox} />\n\n <UnauthenticatedRoute\n exact\n path=\"/my_vote_score/faqs\"\n render={props => <DidMyFriendVoteFAQs type=\"myVoteScore\" {...props} />}\n />\n\n <UnauthenticatedRoute\n exact\n path=\"/did_my_friend_vote/faqs\"\n render={props => <DidMyFriendVoteFAQs type=\"didMyFriendVote\" {...props} />}\n />\n\n <UnauthenticatedRoute\n exact\n path=\"/did_they_vote/faqs\"\n render={props => <DidMyFriendVoteFAQs type=\"didTheyVote\" {...props} />}\n />\n\n <UnauthenticatedRoute exact path=\"/my_vote_score\" component={SearchVoter} />\n {/*\n Do not remove, we will probably use it again\n <UnauthenticatedRoute\n exact\n path=\"/my_vote_score/:voterbaseId\"\n component={VoterScoreInfo}\n />\n */}\n\n <UnauthenticatedRoute exact path=\"/did_my_friend_vote\" component={ChooseVoter} />\n {/*\n Do not remove, we will probably use it again\n <UnauthenticatedRoute\n exact\n path=\"/did_my_friend_vote/:voterbaseId\"\n component={VoterInfo}\n />\n */}\n\n <UnauthenticatedRoute\n exact\n path=\"/did_they_vote\"\n render={props => <ChooseVoter didTheyVoteFlow {...props} />}\n />\n {/*\n Do not remove, we will probably use it again\n <UnauthenticatedRoute\n exact\n path=\"/did_they_vote/:voterbaseId\"\n render={props => <VoterInfo didTheyVoteFlow {...props} />}\n />\n */}\n\n {/* Contact Sync */}\n <AuthenticatedRoute path=\"/sync-contacts\" component={ContactSync} />\n <AuthenticatedRoute path=\"/add-report\" component={AddReport} />\n\n {/* New signup flow*/}\n <AuthenticatedRoute path=\"/new-campaign\" component={AdminPlanSelect} />\n\n <Route component={NotFound} />\n </Switch>\n <ModalContainer />\n </StateProvider>\n </ConfigProvider>\n </AuthProvider>\n </Provider>\n </ThemeProvider>\n);\n\nexport default App;\n","import 'core-js/stable';\nimport 'regenerator-runtime/runtime';\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter } from 'react-router-dom';\nimport axios from 'axios';\nimport { message } from 'antd';\nimport { removeToken } from '../web/services/session';\n\nimport App from '../web/components/App';\n\nimport '../web/styles/web.scss';\n\nimport * as Sentry from '@sentry/browser';\n\nconst env = process.env.NODE_ENV?.toLowerCase();\nconst HEROKU_SLUG_COMMIT = process.env.HEROKU_SLUG_COMMIT;\nconst SENTRY_ENV = process.env.SENTRY_ENV || 'localhost';\nconst SOURCE_VERSION = process.env.SOURCE_VERSION;\nconst SHA = SOURCE_VERSION || HEROKU_SLUG_COMMIT || 'unknown';\n\n// Sentry build release needs to match the one in Sentry.init options\nconst SENTRY_UNIQUE_RELEASE_NAME = `${SENTRY_ENV}-${SHA}`;\n\nif (env === 'production') {\n Sentry.init({\n dsn: 'https://d15784584c314b30b7798117c9f0c255@o171260.ingest.sentry.io/6584212',\n environment: SENTRY_ENV,\n release: SENTRY_UNIQUE_RELEASE_NAME,\n });\n} else {\n // eslint-disable-next-line no-console\n console.log('Sentry turned off - running in ' + env);\n}\n\naxios.defaults.headers.common['Content-Type'] = 'applications/json';\naxios.defaults.headers.common.Accept = 'application/json';\naxios.defaults.headers.post['Content-Type'] = 'application/json';\naxios.defaults.headers.post.accept = 'application/json';\n\n// Set axios interceptors for detecting invalidated/expired token and logging user out\naxios.interceptors.response.use(\n response => {\n return response;\n },\n error => {\n // Unauthorized status code -> log user out\n if (error?.response?.status === 401) {\n message.error(\n <>\n Session expired. Please <a href=\"/auth\">log in</a> again.\n </>,\n 15, // message timeout\n );\n removeToken();\n }\n return Promise.reject(error);\n },\n);\n\nconst node = document.querySelector('#root');\n\ndocument.addEventListener('DOMContentLoaded', () => {\n ReactDOM.render(\n <BrowserRouter>\n <App />\n </BrowserRouter>,\n node,\n );\n});\n","import styled from 'styled-components';\n\nimport { media } from '@web/styles/theme';\n\nexport const SectionTitle = styled.div`\n font-family: ${({ theme }) => theme.fonts.semibold};\n color: ${({ theme }) => theme.fonts.black};\n font-size: 16px;\n margin-bottom: 10px;\n`;\n\nexport const Content = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n padding: 3.5rem 18% 0;\n max-width: 1700px;\n\n ${media.nxl} {\n padding: 3.5rem 5% 0;\n }\n`;\n\nexport const FieldsWrapper = styled.div`\n display: grid;\n width: 100%;\n justify-content: space-between;\n grid-template-columns: ${({ $twoColumns }) => ($twoColumns ? '1fr 1fr' : '1fr 1fr 1fr')};\n gap: 20px;\n ${media.nxl} {\n grid-template-columns: 1fr;\n }\n`;\n\nexport const StickyFooter = styled.div`\n width: 100%;\n position: sticky;\n background: ${({ theme }) => theme.colors.white};\n bottom: 0;\n padding: 1rem 0;\n`;\n"],"names":["HandledError","_Error","_inherits","_super","_createSuper","errMessage","data","_this","_classCallCheck","call","Error","captureStackTrace","_assertThisInitialized","name","_wrapNativeSuper","addBreadcrumb","_ref","_ref$category","category","_ref$data","_ref$message","message","_ref$level","level","Sentry","thisError","errObj","arguments","length","undefined","extraData","_objectSpread","extra","env","process","toLowerCase","DEBUG_XSTATE","service","dialerMachine","inspect","iframe","url","interpret","devTools","onTransition","state","console","log","value","start","sendError","CALL_SUCCESSFUL","CALL_UNSUCCESSFUL","END_SESSION","EXIT_ACTIVITY","NO_TAGS_OR_CUSTOM_FIELDS","OUT_OF_SYNC_VOTER_HANG_UP","PHONE_BANK_ENDED","PHONE_BANK_NOT_STARTED","PHONE_BANK_PAUSED","PHONE_BANK_STARTED","QUEUE_NEXT_CALL","QUEUE_CALL_ERROR","RECONNECTED","RESPONSES_SUBMITTED","SESSION_STATS_VIEWED","SESSION_STATS_VIEWED_AUTO_CONNECT","TAGS_AND_CUSTOM_FIELDS_SUBMITTED","VOLUNTEER_ANSWERED","VOLUNTEER_DISCONNECTED","VOLUNTEER_NOT_CONNECTED","VOLUNTEER_HANG_UP","VOTER_CONNECTED","PATCH_THROUGH_CONNECTED","VOTER_HANG_UP","callOutcome","connectingToVoter","dialingVolunteer","idle","autoConnectLoader","phoneBankEnded","phoneBankNotStarted","phoneBankPaused","sessionEnded","sessionStats","tagsAndCustomFields","viewResponses","volunteerDisconnected","voterConnected","patchThroughConnected","patchThroughSuccess","createMachine","id","initial","states","_states","_defineProperty","on","_on","target","_on2","_on3","_on4","_on5","_on6","_on7","_on8","_on9","_on10","_on11","_on12","_on13","_on14","_on15","_on16","_machineDebugger","machineDebugger","initialState","activityId","callData","connectedContact","currentAnswers","currentState","disabledPatchThrough","loading","reportData","sessionStartTime","totalCalls","volunteerPhone","voter_call_id","waitTime","dialer","createSlice","reducers","callComplete","action","init","machineTransition","machineState","transition","type","nextState","payload","send","approvedTransition","nextEvents","includes","concat","checkTransition","reportUpdated","setActivityId","setCallData","setCurrentAnswers","setDialerLoading","setDisabledPatchThrough","setVolunteerPhone","setWaitTime","volunteerConnected","dayjs","volunteerReconnected","voterJoined","_action$payload","voter_voice_call_id","_dialer$actions","actions","setCurrentState","setSurveyComplete","setVolunteerConnected","joinedCampaigns","lastCampaignId","selectedCampaign","oneCampaign","removeSelectedCampaign","setCampaign","setJoinedCampaigns","setLastCampaignId","setLoading","_oneCampaign$actions","DIFFERENT_ADDRESS","REFERRAL_LINK","REGISTERED","UNABLE_TO_VOTE","UNCONFIRMED","UNREGISTERED","contactFormResult","formValues","friendLookUpResult","hasStateId","isCheckedVoterRegistration","isRegistrationRecheck","selectedVoter","getDateValue","date","format","voterRegistration","setContactFormResult","_activity$campaign","activity","contact","fanOutCookies","Cookies","path","get","campaign","fan_out_registration_enabled","_fanOutCookies$","_fanOutCookies$$activ","prevContact","JSON","parse","localStorage","getItem","activities","restoredActivity","find","a","Number","activity_id","campaign_id","newContact","phone","contactToStore","referral_link","registration_status","Status","setItem","stringify","newActivities","registrationStatus","some","map","_toConsumableArray","Object","keys","vrContact","address","city","county_name","date_of_birth","email","first_name","last_name","state_abbrev","stateId","unit_number","zip_code","setFormValues","address2","countyName","firstName","lastName","stateAbbrev","unitNumber","zipCode","setFriendLookUpResult","setHasStateId","setIsCheckedVoterRegistration","setIsRegistrationRecheck","setSelectedVoter","setStateIdWithAddressForm","voter","_voterRegistration$ac","appReducer","combineReducers","configureStore","middleware","getDefaultMiddleware","immutableCheck","serializableCheck","reducer","activity_scripts","auth","base","campaigns","campaigns_and_topics","contact_lists","contacts","general_activities","search","tags","teams","user","user_activities","_regeneratorRuntime","exports","Op","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","apply","_trackExternalLinkClick","_submitSurveyActivityForm","_getVoterRegistrationTeamLeaderboard","_getVoterRegistrationContactLeaderboard","_getUploadFileUrl","_getPublicActivity","_getP2PUsersLeaderboard","_getActivityGoals","route","routes","activityRoutes","getActivityGoals","_callee","campaignSlug","activitySlug","prefix","_context","replace","axios","_x","getP2PUsersLeaderboard","_callee2","_ref2","_ref2$page","page","_ref2$perPage","perPage","_context2","params","per_page","_x2","getPublicActivity","_callee3","_ref3","_context3","_x3","getUploadFileUrl","_callee4","contentType","objectName","_context4","uploadType","_x4","_x5","getVoterRegistrationContactLeaderboard","_callee5","_ref4","_ref4$page","_ref4$perPage","_context5","_x6","getVoterRegistrationTeamLeaderboard","_callee6","_ref5","_context6","_x7","submitSurveyActivityForm","_callee7","_ref6","formSlug","referralHash","surveyFormData","questionAnswers","autoOpenLink","_context7","auto_open_link","question_answers","referral_hash","survey_activity_form_submission","_x8","trackExternalLinkClick","_callee8","_ref7","campaignId","contactId","_context8","contact_id","_x9","onSuccess","token","headers","authorization","signIn","password","provider","signInWithGoogle","accessToken","googleId","locale","_args2","google_access_token","google_id","signUp","signOut","deleteAccount","userId","_x10","sendMagicLinkEmail","destination","campaign_slug","verifyMagicLink","_submitPledge","_submitOnboardingReport","_getUserContactListContacts","_getStateInfo","_getScripts","_getPublicCampaign","_getMyRecord","_getCauses","_getCategoryCampaigns","_getCategories","_getCampaignLeaderboard","_getCampaignActivities","_getCampaign","_getActivityScripts","_gaRegister","_findCampaign","_confirmUnregistered","_confirmMyRecord","_confirmMyAddress","confirmMyAddress","address_info","h","supplied_voting_form","confirmMyRecord","contact_referral_id","user_referral_id","opt_in","confirmUnregistered","findCampaign","code","gaRegister","contact_path","getActivityScripts","_args6","getCampaign","getCampaignActivities","axiosHeaders","rest","_objectWithoutProperties","_excluded","getCampaignLeaderboard","_callee9","_ref7$per_page","_ref7$page","_context9","_excluded2","_x11","_x12","getCategories","_callee10","_context10","getCategoryCampaigns","_callee11","category_id","_context11","_x13","getCauses","_callee12","_context12","getMyRecord","_callee13","_ref8","_context13","_x14","getPublicCampaign","_callee14","_ref9","_context14","_x15","getScripts","_callee15","message_thread_id","_context15","_x16","getStateInfo","_callee16","_ref10","_context16","_x17","getUserContactListContacts","_callee17","_ref11","_ref11$per_page","_args17","_context17","_excluded3","submitOnboardingReport","_callee18","_ref12","user_report","_context18","_x18","_x19","submitPledge","_callee19","_ref13","_context19","_x20","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","source","getOwnPropertyDescriptors","defineProperties","input","hint","prim","toPrimitive","res","String","_toPrimitive","_toPropertyKey","_getCampaignsTopics","query","_getFormPublic","optInForms","getFormPublic","form_id","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_validateVoterRegistration","_validatePhoneAndEmail","_sendAuthEmail","_incrementPoints","_getVotingPlanReferralLink","_getRecruits","_getMyStats","_getAllSweepstakes","fanOutRoutes","getAllSweepstakes","getMyStats","getRecruits","getVotingPlanReferralLink","_excluded4","incrementPoints","_excluded5","sendAuthEmail","activity_slug","_excluded6","validatePhoneAndEmail","_excluded7","validateVoterRegistration","_excluded8","_searchCampaignsAndActivities","term","_leaveTeam","_joinTeamByCode","_joinTeam","_getTeamMembers","_getTeamBySlug","_getTeam","getTeam","filters","getTeamBySlug","slug","getTeamMembers","_ref3$per_page","_ref3$page","joinTeam","joinTeamByCode","join_code","leaveTeam","_userActivityTrackClick","_userActivityAddPerform","_updateUserLastCampaignId","_updateUserActivity","_updateProfile","_unlockAccount","_lookupUserActivity","_inspect","_getUserActivity","_getUserActivities","_getTeams","_getProfile","campaigns_route","user_activities_route","user_route","getProfile","getTeams","getUserActivities","getUserActivity","lookupUserActivity","lookupUserActivityManual","auth_token","_ref2$force_create","force_create","Authorization","unlockAccount","updateProfile","teamName","_ref3$phone","_ref3$zipCode","_ref3$locale","_ref3$lockedCampaignI","lockedCampaignId","_ref3$referralHash","profileUrl","profile_url","supplied_zip_code","team_name","locked_campaign_id","onboarded_campaign_id","updateProfileOptions","zip","onboarding_viewed","updateUserActivity","body","user_activity","updateUserLastCampaignId","last_campaign_id","userActivityAddPerform","userActivityId","userActivityTrackClick","_updateOrCreateReport","_update","_getBlankReport","_findOrCreateReport","userReport","findOrCreateReport","_ref$contact_id","getBlankReport","update","report_id","updateOrCreateReport","amplitude","identify","options","dbg","track","event","activePixelIds","trackPageViewWithDynamicIDs","fbPixelId","gaTrackingId","snapchatPixelId","gtmPixelId","ReactFBPixel","ReactGA","initialize","hitType","window","location","pathname","ReactSnapchatPixel","TagManager","gtmId","dataLayer","label","document","title","trackEventViewWithDynamicIDs","actionName","categoryName","_uploadPhoneContacts","_uploadEmailContacts","_updateUserMessageSent","_updateOutreachReport","_updateMessageSent","_updateMe","_updateListMessageSent","_updateContactApprovals","_updateContact","_updateCompletion","_unfollowCampaign","_twilioBatchSend","_setVoter","_setOnboardingViewed","_sendInvite","_sendCanvasserMessagePublic","_searchVoters","_reassignToAdmin","_reassignAllToAdmin","_getVoter","_getUserUserMessages","_getUserMessageThreads","_getUserMessageThread","_getUserMessages","_getUserContactMessages","_getUserCampaigns","_getOutreachReport","_getNeedsAttentionMessagesCount","_getCurrentUnreadMessageThreadsCount","_getContacts","_getCampaignOutreachReport","_getAllies","_get","_followCampaign","_createNewContact","_bulkUpdateMessageSent","usersApi","archiveThread","threadId","archived","bulkUpdateMessageSent","contact_ids","changePassword","password_confirmation","createNewContact","report","outreachReportId","outreach_report","followCampaign","campaign_name","followCampaignOptions","getAllies","_ref4$per_page","_args5","getCampaignOutreachReport","selected_voterbase_id","contactable_type","contactable_id","getContacts","_ref6$search","_ref6$per_page","_ref6$page","_args7","contact_types","getCurrentUnreadMessageThreadsCount","getNeedsAttentionMessagesCount","getOutreachReport","getRegistrationStep","getUserByReferralHash","hash","getUserCampaigns","getUserContactMessages","_args12","getUserMessages","_ref8$per_page","_ref8$page","_args13","getUserMessageThread","_ref9$per_page","_ref9$page","_args14","getUserMessageThreads","_ref10$per_page","_ref10$page","_args15","getUserUserMessages","user_id","_ref11$page","_args16","getVoter","voter_id","reassignAllToAdmin","reassignToAdmin","messageThreadId","requestEmailCode","searchVoters","_callee20","_ref14","stateAbbv","ageRange","_context20","age_range","sendCanvasserMessagePublic","_callee21","_ref15","user_activity_id","_context21","sendConfirmationCode","confirmation_code","sendInvite","_callee22","_context22","setOnboardingViewed","_callee23","_context23","setVoter","_callee24","_context24","_x21","_x22","twilioBatchSend","_callee25","batchSendInfo","_context25","batch_info","_x23","_x24","unfollowCampaign","_callee26","_ref16","_context26","_x25","updateCompletion","_callee27","_context27","completed","_x26","updateContact","_callee28","_context28","_x27","_x28","_x29","updateContactApprovals","_callee29","selected_contact_ids","deselected_contact_ids","select_all","_context29","_x30","_x31","_x32","updateListMessageSent","_callee30","message_type","activity_script_id","_context30","_x33","_x34","_x35","_x36","_x37","updateMe","_callee31","_context31","_x38","updateMessageSent","_callee32","_context32","_x39","_x40","updateOutreachReport","_callee33","_ref17","custom_fields","_context33","selections","_x41","updateUserMessageSent","_callee34","_context34","_x42","_x43","uploadEmailContacts","_callee35","_context35","contact_type","_x44","uploadPhoneContacts","_callee36","_context36","_x45","AuthContext","createContext","StateContext","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_i","_s","_e","_r","_arr","_n","_d","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","n","toString","from","test","_unsupportedIterableToArray","_nonIterableRest","len","arr2","Container","styled","div","withConfig","componentId","theme","colors","trueBlack","fonts","bold","borderGray","media","ns","Picture","img","MetricSection","MetricWrapper","Metric","light","MetricDescription","PostedBy","SectionTitle","regular","IconsAndDescriptions","IconWithDescription","Icon","IconDescription","ViewCampaign","Link","link","blackItalic","JoinCampaignButton","_Button","blue","t","useTranslation","dispatch","useDispatch","useContext","_useState2","useState","_useState4","history","useHistory","useLocation","useSelector","campaignJoined","user_campaign","joined","loadCampaign","React","localizedData","getLocalizedOnboardingData","useEffect","className","Loading","handlePressJoin","userCampaigns","users","go","candidateName","public_short_name","pictureUrl","url_profile_img","attributeList","highlights","actionCount","total_actions_completed","alliesCount","total_allies","networkCount","total_actions_performed","renderMetricAndDescription","metric","fmtScore","replaceDefaultCampaignImage","src","alt","attribute","img_url","icon","CheckOutlined","PlusOutlined","onClick","to","activityTitle","campaignName","onModalClosedCallback","submitReport","activity_title","_message","success","t0","_Modal","visible","maskClosable","onCancel","footer","FormActivityContainer","userActivity","redirectHome","setRedirectHome","setUserReport","starts_at","ends_at","additional_details","activity_tags","activity_custom_fields","taggings","activity_tag","tag","customizations","activity_custom_field","custom_field","is_user_reportable","customizations_attributes","reportable_id","reportable_type","taggings_attributes","formData","userReportBody","userReportRes","c","custom_field_id","ta","tag_id","userReportApi","onSaveError","status","onCustomFieldUpdate","selectedSlug","updatedFields","customization","Redirect","Fragment","style","marginTop","alignItems","flexDirection","moment","marginBottom","Formik","initialValues","validationSchema","UserReportSchema","onSubmit","_Form","combinedArray","_","display_order","combinedSort","tagging","prompt","_Switch","checked","onChange","e","selectionChange","updatedTaggings","TextArea","autoSize","minRows","available_values","_SubmitButton","LabelText","black","LineBreak","hr","ShareInstructions","lightBlack","Quote","CopyButton","darkBlack","ShareActivity","onShareWindowClose","Clipboard","component","stopPropagation","FacebookShareButton","quote","FacebookIcon","round","size","TwitterShareButton","TwitterIcon","EmailShareButton","beforeOnClick","setTimeout","subject","EmailIcon","defaultProps","hidden","setState","handler","addEventListener","removeEventListener","OutvoteExternalLink","props","closed","boxShadow","WebActivity","children","goToUrl","onWebActivityCompleted","windowVisible","useWindowVisibility","navigatedAway","setNavigatedAway","href","rel","ActionButtons","hide","StyledButton","boldItalic","white","$completed","disabled","HeaderContainer","Header","HeaderTitle","semibold","HeaderDate","BodyContainer","BodyTitle","Body","MediaWrapper","Media","StyledActivity","StyledProgressBar","_Progress","Activity","isFeatured","detailedView","headerTitle","initialCompleted","_ref14$activity","_ref14$activity2","activityType","aasm_state","button_text","published_at","description","go_to_link","share_link","share_text","media_url","is_p2p","total_contacts","contacts_assigned","_ref14$activity2$camp","_ref14$activity2$camp2","_ref14$activity2$camp3","onActivityActionButtonPress","setCompleted","activityCompletedModalVisible","setActivityCompletedModalVisible","headerTitleText","verbByType","getStartLink","buttonCopy","getButtonText","mobileButtonTextToWeb","trackClick","activity_type","activityDescription","truncate","opacity","dateToAge","percent","assigned_percent","Math","floor","renderProgressBar","FormActivity","block","color","ActivityCompletedModal","useDocumentTitle","calculatedTitle","_React$useState2","matches","setMatches","handleResize","matchMedia","ref","current","usePrevious","CHANGE","ModalManager","_EventEmitter","modals","this","emitChange","modalComponent","_this2","uniqueId","openModal","closeModal","emit","callback","addListener","removeListener","EventEmitter","useModal","functions","_useContext","isLoading","_useSelector","useCallback","userAPI","getFullCampaignData","localizedCampaign","campaignsAPI","getJoinedCampaigns","usersAPI","StyledModal","ImpactiveModal","assign","ImpactiveLink","coral","$isTitle","semibolditalic","$withIcon","propTypes","PropTypes","ListItem","blue06","CampaignDataWrapper","Title","NameAndStatus","Name","css","ActiveNow","Dot","JoinSection","blackL32","PlusSection","StickyBlock","CampaignAndCharityModal","list","onClose","onJoinCampaign","width","_List","itemLayout","dataSource","renderItem","item","isActive","selectCampaign","_Avatar","as","Wrapper","BlueWrapper","cardBg","h1","Description","p","Skeleton","Grid","ButtonLink","NoCampaign","withSkeletons","MaxWidthContainer","ImpactiveButton","actionCardSkeleton","OneCampaignLoading","centered","ignoreNullCampaign","teamJoinCodeError","_error$response","_error$response2","_error$response2$data","errorMessage","response","i18n","inputRef","useRef","setCode","isSubmitting","setIsSubmitting","setCampaignSlug","setUser","onComplete","_inputRef$current","blur","onFocus","joinCampaign","campaignFromCode","VerificationInput","classNames","character","characterFilled","characterInactive","characterSelected","container","inputProps","inputMode","validChars","placeholder","autoFocus","xmlns","viewBox","fillRule","d","fill","stroke","Logo","variant","Wordmark","IconDark","Content","ChangeCampaignButton","button","teal10","$mini","StyledSvgLogo","SvgLogo","CampaignSelect","mini","useOneCampaign","_useModal2","openCampaignAndCharityModal","closeCampaignAndCharityModal","openJoinCampaignModal","JoinCampaignModal","pageTitle","handleJoinCampaign","handleSeeAll","buildLogo","height","DownOutlined","Sider","_Layout","Item","_Menu","Flex","MenuWrapper","ToggleIconWrapper","$open","TransparentBackground","CustomMenu","background","MenuItem","$goToAdmin","$logo","teal20","MenuLink","NavLink","PoweredByImpactive","PoweredByText","StyledSider","_ref18","StyledMenu","Sidebar","setAuth","unreadMessagesCount","loggedOut","setLoggedOut","redirectURL","setRedirectURL","_useState6","open","setOpen","canAccessAdmin","is_campaign_admin","can_admin_accounts","DoubleRightOutlined","DoubleLeftOutlined","mode","match","HomeOutlined","TrophyOutlined","InboxOutlined","ContactsOutlined","FileTextOutlined","UserOutlined","LogoutOutlined","transform","poweredByImpactiveIcon","poweredByImpactive","selectedKeys","LoginOutlined","StyledContent","$grayBackground","snow","StyledSidebar","AppContainer","grayBackground","notSmall","useMedia","_queryString$parse","queryString","utm_campaign","utm_source","utm_medium","MenuButton","nav","menuOpen","StyledHamburgerMenu","HamburgerMenu","setMenuOpen","overflow","MenuOutlined","StyledAppHeader","TitleWrapper","StyledIcon","h2","Extra","AppHeader","display","StyledAlert","_Alert","_campaign$user_campai","onSwitchCampaign","firstShown","setFirstShown","changeCampaign","showModal","setShowModal","active","showIcon","joinedCampaign","closable","ActivityContainer","ActivityAndCampaign","appContainerDataTestId","SwitchCampaignAlert","CampaignRightSidebar","StyledErrorText","red","ErrorText","marginRight","PrefixWrapper","$focused","$outlineColor","$focusedColor","gray","Label","$textTransform","$labelFontColor","Required","span","StyledErrorMessage","ErrorMessage","attrs","StyledField","PhoneInput","$hasError","$backgroundColor","alabaster","$withPrefix","$fontColor","$isSurvey","dodgerBlue","blackL72","$isFanOut","prefixIcon","shouldFocusIcon","isRequired","labelStyles","isFanOut","isSurvey","formik","backgroundColor","fontColor","labelFontColor","outlineColor","textTransform","focusedColor","withoutLabel","country","focused","setFocused","handleChange","startsWith","getIn","errors","hasError","touched","position","onlyCountries","buttonStyle","defaultMask","onBlur","_Input","translate","StyledForm","Form","StyledImpactiveSelect","ImpactiveSelect","statuses","yup","shape","nullable","required","useMemo","handleSubmit","setSubmitting","render","setFieldValue","FormInput","PhoneNumberInput","maxLength","allowClear","setAppLanguage","htmlType","HeaderMedia","DescriptionText","onInstructionsFinish","instructions_video_url","controls","instructions_text","Customization","TextFieldContainer","SelectionFieldRadio","RadioStyled","_Radio","StyledRadioGroup","setUserReportCustomizations","onCustomFieldTextUpdate","field","onCustomFieldSelectUpdate","handleRadioClick","fieldIndex","CFs","setCFs","handleSubmitReport","CustomFieldsList","updatedCustomFields","USER_DETAIL_SCREEN","INSTRUCTIONS_SCREEN","CUSTOM_FIELDS_SCREEN","OnboardingModal","onCloseCallback","showOnboarding","isLockedToCampaign","displayModal","setDisplayModal","_useState8","screen","setScreen","clearSearch","current_user","isAuthFinished","_data$custom_fields","_data$custom_fields$f","onboardingCFs","cf","onboarding_question","sort","sortByDisplayOrderFn","isShowCampaignOnboarding","onUserDetailSubmit","_error$response$data","finally","UserDetails","Instructions","CustomFields","userActivityIdParam","useParams","parseInt","setUserActivity","loadActivity","userActivityData","campaignData","campaignAPI","_userActivity$activit","_userActivity$activit3","_userActivity$activit5","header_title","ActivityDetailCore","authErrorMessage","GENERIC_ERROR_MESSAGE","ACCESS_DENIED_MESSAGE","GmailButon","AuthMenu","onPasswordlessLogin","onGoogleLogin","onEmailLogIn","passwordlessButtonText","includePasswordOption","includeOrBreak","passwordlessExplainText","hidePasswordLessText","GoogleLogin","clientId","profileObj","tokenId","onFailure","googleAuthErrorMessage","cookiePolicy","renderProps","googleIconImage","LogoContainer","$isPoweredBy","ImpactiveLogo","isPoweredBy","lightLogo","darkLogo","CampaignLogo","CampaignName","uri","PoweredByContainer","PoweredByLogo","poweredBy","LanguageContainer","onboardingData","setOnboardingData","language","setLanguage","ImpactiveOrCampaignLogo","onGoogleAuthSuccess","canViewAdmin","hasRedirectURL","getRedirectAfterLoginURL","getAndClearRedirectAfterLoginURL","unsetAuthHandler","_response$data","_response$data2","onLogInWithGoogle","onPasswordLoginClick","onPasswordlessClick","LanguageSelect","EmailAuth","onSubmitClick","buttonText","setEmail","setPassword","preventDefault","isValidEmail","EmailAuthPage","handleRedirection","onBackClick","onLogInHandler","StyledInput","h3","h4","onCodeSubmit","onPasswordSubmit","passwordConfirmation","setPasswordConfirmation","_email","passwordResetAuthToken","setPasswordResetAuthToken","showConfirmation","setShowConfirmation","showPasswordEntry","setShowPasswordEntry","_useState10","redirectToLogin","setRedirectToLogin","Confirmation","PasswordEntry","emailIconImage","onResendClick","PasswordlessAuth","includeFooter","onError","onEmailSubmit","MobileLoginWrapper","Spacer","ContinueLink","isMobile","handleToken","bearerHeader","hostname","blue60","Field","FormField","labelProps","GmailButton","HorFlex","Divider","validateOnBlur","isValid","GrayText","VerticalFlex","CoverImage","coverUrl","LogoImage","logo","onPasswordlessSignup","onGoogleSignup","LayoutWithCover","coverImage","FlexWithGap","requestMagicAuthEmail","requestMagicAuthEmailThrottled","throttle","_history$location$sta","PrimaryText","GeneralCardWrapper","whiteSmoke","BoldLabel","ImpactiveTextButton","goBack","isCampaignSetting","setIsCampaignSetting","setLastCampaignToUser","submitForm","CompleteAuthForm","withRouter","isExact","Switch","Route","exact","PasswordlessTokenLoginPage","PasswordReset","AuthPage","PasswordlessPage","PasswordlessConfirmPage","isSignup","JoinCampaign","CompleteAuth","AdminPasswordless","AdminLinkSent","isUnauthenticatedRoute","isAdminCampaignSignup","maybeGetToken","setToken","_useState12","isCampaignLoading","setIsCampaignLoading","_useState14","newToken","storeToken","removeToken","Provider","LeftOutlined","sourceByIcon","democrat","democratIconImageInactive","frequent","frequentIconImageInactive","inDistrict","inDistrictIconImageInactive","infrequent","infrequentIconImageInactive","inSwing","inSwingIconImageInactive","isSuggested","isSuggestedIconImageInactive","republican","republicanIconImageInactive","suggested","StarOutlined","super","superIconImageInactive","unmatched","unmatchedIconImageInactive","sourceBySelectedIcon","democratIconImage","frequentIconImage","inDistrictIconImage","infrequentIconImage","inSwingIconImage","isSuggestedIconImage","republicanIconImage","StarFilled","superIconImage","unmatchedIconImage","FilterButtonInner","italic","FilterButton","resolvedIcon","verticalAlign","resolveImage","buttonType","SEO","image","seoDescription","seoImage","seoTitle","Helmet","content","property","Text","isModal","StyledLink","_ref3$activity","_ref3$activity2","_ref3$activity2$campa","_ref3$activity2$campa2","_ref3$activity2$campa3","startLink","getStartActivityLink","i18nCode","translated_button_text","getButtonCopy","ActivityWrapper","ActivityBody","ActivityType","pxToRem","MediaContentWrapper","Date","GeneralActivityData","friendlyTypeNameFor","activityDescriptionTruncated","activityTitleTruncated","shareActivityLink","origin","ActivityButton","_Tooltip","placement","ShareAltOutlined","cursor","dangerouslySetInnerHTML","__html","convertLinks","actionTypes","ModalTitle","ZipInput","FormAndButton","SubTitle","SetZipButton","ButtonText","ButtonsWrapper","setZip","showZipEntryModal","setShowZipEntryModal","modalZipInput","setModalZipInput","userSuppliedLocationAvailable","isValidZip","setZipCodeAndDismissModal","secondary","bodyStyle","onFinish","form","padding","Option","_Select","SelectWrapper","margin","StyledSelect","$minWidth","teal60","outlined","standard","OptionContent","SelectComponent","setVisible","minWidth","onDropdownVisibleChange","index","nlg","StyledZipProvider","ZipProvider","FiltersContainer","causes","searchWithinZip","setSearchWithinZip","issuesFilter","setIssuesFilter","actionsFilter","setActionsFilter","cause","mediumGray","ActivityListContainer","StyledList","ActivityItem","lg","ActivityList","initialActivityId","userData","setFilters","apiEndpoint","resourceId","_toObject","toObject","usePaginatedApi","hasMore","initialLoading","items","loadMoreActivities","loadMore","resetPagination","selectedAction","setSelectedAction","filteredItems","_item$activity","_item$activity2","_item$activity3","_item$activity4","onlyActionItems","_item$activity5","scrollRef","setScrollRef","refetch","shouldRenderInfiniteScroll","showNoResultsMessage","onFilterChangeHandler","newFilters","isEqual","ActivityFilters","InfiniteScroll","initialLoad","pageStart","threshold","useWindow","getScrollParent","_type","ActivityPreview","handleClick","ActivityPreviewModal","TopicsContainer","TopicButton","darkBlue","teal","bolditalic","MetricsContainer","MetricValue","CampaignLink","MetricLabel","CampaignInfo","CampaignMetrics","StyledAvatar","JoinButton","CampaignHeader","onJoinClick","website","website_url","allies","defaultCampaignProfile","ghost","punyEncodedURL","kFormatter","Google","clipRule","Play","_ref$fill","_extends","_objectDestructuringEmpty","IconComponent","Icons","PlayButton","MediaContainer","video","mediaUrl","mediaContentType","showPlayButton","setPlayButton","showControls","setShowControls","videoRef","mediaIsVideo","play","nxl","StyledTitle","Info","SeeMoreButton","Highlights","HighlightItem","HighlightIcon","public_join_video_url","url_hero_img","isDescriptionLong","descriptionExpanded","setDescriptionExpanded","MediaPreview","large","center","ordinal","formatValue","TeamInfo","Metrics","StyledMetric","TopSection","PositionImage","Points","Team","team","points","messages","members","teamLink","placeImgs","top1","top2","top3","place","count","Teams","StyledTeam","vertical","xl","VerticalDivider","lightGray","topTeams","setTopTeams","CampaignAbout","TopTeams","_useLocation","URLSearchParams","withOnboarding","showOnboardingCampaignId","removeItem","userCampaign","TwitchContainer","TwitchEmbed","channel","setChannel","loaded","setLoaded","script","createElement","onload","Twitch","Embed","autoplay","appendChild","StyledYoutubeEmbed","YoutubeContainer","YoutubeEmbed","youtubeId","setYoutubeId","frameBorder","allow","allowFullScreen","StyledAboutUsSection","lightBlue","MobileSectionTitle","blackL25","AboutUsMedia","AboutUsDetails","SectionDescription","SeeMoreLink","salmon","seeMore","setSeeMore","_React$useState4","aboutDescription","setAboutDescription","needSeeMoreButton","StyledJoinButton","StyledCampaignImage","StyledCampaignHero","backgroundImage","CampaignContainer","CampaignTitle","CampaignSubtitle","handleGetStarted","clearLogo","CampaignImage","slogan","StyledCampaignActionCTA","CampaignActionCTA","onClickHandler","isRegistrationActivity","default","IdVotersActivity","TestimonialActivity","TextAFriendActivity","TextAListActivity","StyledCampaignActionCard","ActionMedia","ActionImage","ActionDetails","ActionTitle","ActionDescription","ActionFooter","ActionDate","isUserActivity","publishedAt","CampaignActionLink","StyledCampaignActions","xxxl","CampaignActionsHeader","CampaignActionsList","xxl","CampaignActionCard","StyledCampaignTakeAction","CenteredButton","Footer","PublicCampaignDetails","redirect","CampaignHero","AboutUsSection","CampaignActions","CampaignTakeAction","CampaignDetails","StyledTable","_Table","Cell","$start","$bold","HeaderCell","formattedTeams","formattedActions","fmtNumber","formattedMembers","formattedMessages","formattedPoints","tableColumns","dataIndex","rank","sortDirections","sorter","j","row","responsive","columns","rowKey","pagination","TeamsSection","PageTitle","_campaign$id","firstUpdate","firstCampaignChange","useQuery","queryCampaignId","_err$message","leaderboardPaginator","has","delete","teamsApi","TableSection","abbr","NoteOuter","NoteInner","NoteTitle","NoteBody","Note","HeaderInner","TeamAvatar","TeamNameWrapper","TeamNameTop","TeamName","TeamMetrics","TeamMetric","TeamMetricValue","TeamMetricLabel","BodyInner","CampaignNameTop","CampaignAvatarAndName","sm","CampaignWebsiteUrl","CampaignAvatar","CampaignDescription","StepText","Instruction","formatCount","postmatesEnabled","stepCount","currentStep","instruction","teamLeaderFirstName","teamLeaderLastName","teamLeaderName","registrations","pledges","SplashWrapper","SplashTitle","SplashDescription","BigRoundButton","CannotVoteLink","FormContainer","StyledRadio","Button","SearchResults","SearchResultsTitle","SearchResultsDescription","VoterTable","VoterName","VoterAddress","VoterAge","VoterNameCell","ButtonsRow","TermsAndConditions","phoneRegExp","SearchVotersFormSchema","ContactFormSchema","voterAddressFormatter","toLower","voterAgeFormatter","age","voterTableColumns","voterNameFormatter","formInitialValues","ScreenTypes","setTeam","voters","setVoters","loadingItems","setLoadingItems","searched","setSearched","selectedVoterId","setSelectedVoterId","_useState16","optIn","setOptIn","searchRef","formRef","_useState18","screenType","setScreenType","isSearchScreen","isSignupToHelpScreen","fb_pixel_id","ga_tracking_id","snapchat_pixel_id","handleClickAlreadyRegistered","handleClickNotRegistered","handleClickCannotVote","handleSearchFormSubmit","scrollTo","offsetTop","goToNextStep","encodeURI","handleSelectVoter","_formRef$current$stat","_formRef$current$stat2","_formRef$current$stat3","emailError","phoneError","handleSelectNone","_formRef$current$stat4","_formRef$current$stat5","_formRef$current$stat6","handleContactFormSubmit","voterTableProps","onRow","voterbase_id","rowSelection","fixed","selectedRowKeys","scroll","x","showHeader","_Spin","indicator","LoadingOutlined","fontSize","spin","termsAndConditions","terms","terms_link","VoterRegistrationTemplate","submitCount","_Row","gutter","_Col","md","_FormItem","htmlFor","MailOutlined","PhoneOutlined","Group","defaultValue","autoComplete","filterOption","option","_Checkbox","privacy_link","justifyContent","Autocomplete","apiKey","onPlaceSelected","street_number","address_components","types","componentRestrictions","Heading","CheckboxWrapper","SubmitWrapper","AddressFormSchema","mail_address","when","is","otherwise","mail_city","mail_county_name","mail_state_abbrev","mail_unit_number","mail_zip_code","same_address","_props$match$params","setContact","all","campaignResponse","contactResponse","submitAddress","RegistrationStatusTypes","dirty","AddressInput","addonBefore","NumberOutlined","StyledStepButtons","StepButtons","goForward","hideForward","hideBackward","ButtonWrapper","StepButtonWrapper","ContactApproval","contactsToApprove","decrementStep","lockedToCampaign","approvalLoading","setApprovalLoading","contactsPaginator","contactCount","syncButtonText","noContacts","CloudUploadOutlined","syncIds","appApproval","GoogleLoginWrapper","GOOGLE_API_KEY","GOOGLE_CLIENT_ID","GOOGLE_DISCOVERY_DOCS","GoogleAuthButton","googleUser","hideText","incrementStep","scopes","setGoogleUser","gapiLoaded","setGapiLoaded","_React$useState6","needsReauthentication","setNeedsReauthentication","interval","setInterval","gapi","client","people","connections","gmail","clearInterval","initClient","discoveryDocs","scope","googleButtonText","reauthText","textAlign","SuggestionMessage","authorizedScopes","tokenObj","split","reduce","acc","thisScope","el","load","isSignedIn","ArrowRightOutlined","StyledContact","li","hasCheckbox","Checkbox","Email","Right","Contact","disabledCheckbox","selected","toggleContact","first","last","toUpperCase","ul","maxHeight","StyledListTitle","Selected","ListTitle","contactsType","selectedCount","step","stepDescription","text1","text2","StyledLoading","allSelected","StyledSelectAll","SelectAll","transformConnections","emailAddresses","connection","photos","names","resourceName","photoUrl","givenName","familyName","emails","setContacts","promise","pageSize","personFields","otherContacts","readMask","resOtherContacts","setLockedToCampaign","_data$data","locked_campaign_contact_selection","locked_campaign_delete_unapproved","SelectAndStep","GoogleContacts","selectedContacts","setSelectedContacts","setAllSelected","_useGoogleContacts","useGoogleContacts","checkboxesAvailable","useUserLocked","formatContacts","handleToggleContact","ContactList","newAllSelected","SyncSuccess","NiceWork","SyncToFrontline","ImportSuccess","setCurrentStep","selectedGoogleContacts","setSelectedGoogleContacts","steps","syncContacts","allContacts","SyncWrapper","PrivacyText","selectedMyContacts","setSelectedMyContacts","selectedOtherContacts","setSelectedOtherContacts","selectedGmailContacts","syncContactsModalVisible","setSyncContactsModalVisible","destroyOnClose","ContactSyncInternal","Location","ButtonContainer","IdVotersForm","_ref3$firstName","_ref3$lastName","isFriend","IdVotersFormSchema","showSearch","ItemContents","Age","ViewFile","IdVotersListItem","onListItemClick","ListContainer","ItemContainer","IdVotersList","show","_ref5$contactId","hasVoters","HeaderAndDescription","ModalContent","IdVotersModal","setVisibleFn","setShowVoterMatchModal","handleFormSubmit","getFirstElectionYear","year","generalParser","firstElectionYear","I18n","primaryParser","getVotingRecords","getFrequency","frequency","frequencyPercentage","votingRecords","total","misses","ineligible","frequencyTagConverter","getInfo","abs","diff","addressLine1","addressLine2","capitalize","join","getParty","party","getVoterInfo","secondName","fullName","Boolean","NameAndBadLink","RecentElections","RecentElectionSection","ElectionRow","ElectionName","StyledElectionImage","VoterMatchCore","voterParams","voterbaseId","onBadMatch","onSaveMatchFinally","redirectIfNoVoterInfo","_userReport$tags","_userReport$custom_fi","redirectToVoterForm","setRedirectToVoterForm","ReportFormSchema","notRequired","strippedTags","_tagging$tag","strippedFields","_customization$custom","_getVoterInfo","in_district","newUserReportBody","_userReportRes$data","newReportId","updatedReport","cust","existingCf","existingTag","isEmpty","onPress","vote","imageElectionX","imageElectionCheck","updatedTags","full_name","setShowIdVotersModal","ContactName","Flags","small","Flag","ItemContent","ContactListItem","freqency","_ref2$contact","party_affiliation","voter_frequency","inSwingDistrict","in_swing_district","selectedVoterbaseId","_invited","invited","hideCheckbox","_ref2$selected","_ref2$withSelection","withSelection","_ref2$noLabels","noLabels","setInvited","showIdVotersModal","showVoterMatchModal","handleRecruitClick","SearchButton","VoterViewButton","searchOrSeeFileLink","partyAffiliationIcon","Democrat","Republican","resolveAffilitationIcon","nameToShow","trim","readOnly","frequentVoterEmoji","infrequentVoterEmoji","superVoterEmoji","Unregistered","unknownVoterIcon","flex","VoterMatchModal","StyledFilters","FilterLabel","FilterButtonUnstyled","Filters","handleFrequencyChange","setUnmatched","voterFrequency","ContactsContainer","SearchLeft","StyledContacts","SearchContainer","HeaderAndSearch","ResyncContacts","NotSyncedMessage","foundContacts","setFoundContacts","contactsQuery","setContactsQuery","contactsScrollRef","setContactsScrollRef","_React$useState8","shouldLoadContacts","setShouldLoadContacts","_React$useState10","setVoterFrequency","_React$useState12","_React$useState14","debouncedHandleSearch","debounce","userNotSynced","Search","persist","ix","SyncContactsModal","CloseButton","Details","Detail","Top","detailsOpen","setDetailsOpen","presented_contact_details","localized_presented_contact_details","text","StatusBar","darkTeal","getColor","bgColor","StyledTextWithIcon","TextWithIcon","PhoneFilled","CallEnded","blink","keyframes","$color","$size","StyledDotLoader","Centered","DotLoader","centeredStyle","dotLoader","StyledStatusBarButton","$bgColor","$loading","StatusBarButton","currentStateRef","handleHangUp","_handleHangUp","voterCallId","_handleVoterHangUp","checkConferenceIdle","_checkConferenceIdle","_result$data","conferenceState","handleVoterHangUp","isMountedRef","isMounted","HangUpButton","_useHangUp","useHangUp","useIsMounted","callIdRef","callId","call_id","_err$response","request","Teal","ConnectingVoter","formattedWaitTime","isInteger","mins","secs","getWait","PhoneBankEnded","PhoneBankNotStarted","PhoneBankPaused","BannerText","SessionEnded","variants","outline","primary","$variant","buttonProps","getVariantStyles","loadingColor","Spinner","StyledElapsed","Elapsed","elapsed","setElapsed","startTime","hours","divisorForMinutes","minutes","divisorForSeconds","seconds","diffMs","ceil","m","s","pusherRef","queueCall","_queueCall","authorize","volunteer_voice_call_id","volunteer_average_calls_interval_seconds","Pusher","cluster","queueCallIfConnected","_pusherRef$current","_pusherRef$current$co","pusherState","_data$volunteer_voice","volunteer_voice_call","VolunteerIdle","dialerLoading","_useQueueCall","useQueueCall","hasContent","RadioGroup","TextField","CustomFieldList","answers","customFields","handleAnswerChange","changeHandler","_answers$find","answer","_el$custom_field","renderComponent","StyledTag","StyledTagsList","TagsList","checkedChildren","defaultChecked","unCheckedChildren","reportDuringCall","initialData","customFieldAnswers","setCustomFieldAnswers","tagAnswers","setTagAnswers","setReport","_initialData$customFi","_initialData$tagAnswe","mergeBlankDataWithInitialData","createReport","updateReportDataInRedux","blank","ids","Set","newAnswers","findIndex","ButtonArea","$reportDuringCall","TagsAndCustomFields","_report$customization","_report$taggings","_useReportApi","useReportApi","VoterConnected","StyledCallStatus","CallStatus","PatchedThroughCall","getContent","Svg","svg","BackLink","backLink","backText","StyledHeader","Column","ActivityTitle","_activity$campaign2","_activity$campaign3","backTo","baseRoute","AnswerItem","buttonVariant","setAnswers","nextScreen","showSurvey","survey","reference","AnswerSection","CallOutcome","_useCallOutcomeQuesti","useCallOutcomeQuestions","StyledMessage","_ref$helpMessageKey","helpMessageKey","Connect","cx","cy","r","PhoneNumber","clipPath","Phone","StyledInstructionItem","IconSection","InstructionItem","StyledInstructions","BackButton","strokeLinecap","strokeLinejoin","strokeWidth","StyledAnswerBlock","AnswerBlock","engine","Liquid","defaultValues","fullname","formatPhoneFields","newObj","formatPhoneNumber","str","interpolated","setInterpolated","_interpolate","allValues","formattedString","parseAndRender","interpolate","interpolationLoading","StyledScriptBlock","TextSection","PatchThroughItem","ScriptBlock","answersDisabled","onAnswerSelect","selectedAnswerRef","stem","useInterpolation","hasOptions","paragraphs","patch_through","isDisabled","PhoneSecondary","isTerminating","setIsTerminating","handlePatchThroughCallOutcome","handleTerminate","volunteerCallId","handlePatchThrough","_err$response2","_err$response3","borderColor","TerminateButton","TerminateText","isModalOpen","modalHandler","onTerminate","StyledPatchThroughInfo","TerminateWarningText","setIsModalOpen","usePatchThrough","onModalOpen","TerminateModal","StyledInteractiveScript","ScrollView","_ref3$answers","_ref3$handleDoneClick","handleDoneClick","_ref3$isEdit","isEdit","_ref3$questions","questions","isPatchThroughConnected","currentQuestion","setCurrentQuestion","endReached","setEndReached","questionRef","answerObj","showBackButton","endOfScriptMessage","endScriptEditingMessage","endMessage","PatchThroughInfo","answerReference","questionReference","next_item","question","questionIndex","prevQuestionRef","q","Line","Tab","$active","TabContent","TabRow","Tabs","_pages$activeIndex","pages","activeIndex","setActiveIndex","InCallTabs","interactiveScriptProps","simulatedContact","simulatedAnswers","setSimulatedAnswers","_interactiveScriptPro","InteractiveScript","simulatedProps","HelpMessage","getScriptComponent","StyledInfoBox","whiteSmokeLighter","InfoBox","Bold","plural","hmsObj","hms","getTime","PartyIcon","SessionStats","volunteerTotal","phoneBankTotal","setPhoneBankTotal","voter_calls_attempted_count","dialer_auto_queue_enabled","totalPlural","volunteerPlural","StyledQuestion","Question","_useInterpolation","StyledMessageBox","MessageBox","handleEditPress","submitResponses","maxWidth","Answer","StyledReviewResponses","Scroll","ViewResponses","submitLoading","setSubmitLoading","isEditing","setIsEditing","questionsAndAnswers","questionObj","noResponses","responses","scriptId","StyledSurvey","dialog","setDialog","setScriptId","_data$data$","_data$data$2","scriptLoading","_useActivityScript","useActivityScript","MainContent","useAnswers","SurveyPatchThroughSuccess","StyledPageLayout","Inner","PageLayout","ModalStyle","createGlobalStyle","Modal","modalOpen","progress","wrapClassName","ProgressBar","animated","Progress","isLast","useSpring","borderBottomRightRadius","borderTopRightRadius","StyledBackButton","StyledNextButton","NextButton","CopyWrapper","Page","PageCopy","onBack","onNext","ConnectIcon","ellipsis","onDoNotReceiveCall","dialerState","handleCallDoNotReceived","PhoneIcon","DotsTyping","campaign_number","phoneNumber","setPhoneNumber","onPhoneChangeHandler","number","ReactInputMask","mask","InputContainer","EnterPhoneNumber","handleSetPhone","removeStart","PhoneNumberIcon","Success","StyledPageCopy","SuccessIcon","ReceiveCall","pageIndex","setPageIndex","enterPhoneAgain","setEnterPhoneAgain","pageProps","GrabPhone","Dialing","ENTER_PHONE_NUMBER","RECEIVING_CALL","VolunteerDisconnected","currentPage","setCurrentPage","phoneNumberBody","pusher","endSession","_window","Cypress","PusherMock","endedStates","notStartedStates","msg","audioRef","stateChannelName","handleStateChange","handlePatchThroughJoined","handleCreatePatchThroughCallFailed","handlePatchThroughCallEnded","handleVoterLeft","handleVolunteerLeft","handleVoterJoined","_audioRef$current","handlePusherConnectionChange","previous","subscribeToEvents","bind","thisChannel","subscribe","unsubscribe","_window2","stateChannel","stateChannelSubscribe","StyledInCall","InCall","usePusher","useExitActivity","StyledSelectionItem","SelectionItem","QueueCallsSelection","LandingPage","authorizedQueuers","dial_authorizer_user_ids","StyledReadyDialog","lightCyan","ReadyDialog","sessionState","PreviewScript","canQueueCalls","useCanQueueCalls","session_state","DELAY","onBatchComplete","batching","setBatching","countRef","timeoutId","clearTimeout","incrementBatch","CALLS_KEY","TOTAL_CALLS_KEY","callsQueued","setCallsQueued","setTotalCalls","channelName","useBatch","authorizations_count","authorised_voice_calls","handleMetrics","Calls","CallsArea","CallsTitle","QueueCalls","_useQueueCalls","useQueueCalls","topStyle","ScrollToTop","unlisten","listen","setActivity","DialerActivity","_useFetchActivity","useFetchActivity","useRouteMatch","NotFound","General","Data","teal40","MetricContainer","MetricName","showFullDescription","setShowFullDescription","formattedDescription","renderMetric","metricName","websiteUrl","parseUrl","StyledCarousel","_Carousel","ImpactiveCarousel","templates","elementWidth","scripts","setScripts","elementsPerSlide","setElementsPerSlide","wrapperWidth","setWrapperWidth","_ref$current$clientWi","_ref$current","clientWidth","_ref$current$clientWi2","_ref$current2","proportion","newArr","array","IconContainer","NavArrows","ArrowLeftOutlined","Slide","elementPerSlide","TransparentButton","PinnedActivityCarousel","_slideData$scripts","carouselRef","wrapperRef","slideData","useElementsPerSlide","createActivityPreview","showNavArrows","autoplaySpeed","arrows","blue30","RecentlyParticipatedActionsCarousel","carouselData","renderNavArrows","_carouselRef$current","_carouselRef$current2","BoldItalic","iconSearch","iconFile","renderScroll","ListEmpty","StyledListController","ListWrapper","ListController","charityList","pinnedActions","setPinnedActions","loadPinnedActions","pinned","recentlyParticipatedItems","renderPinned","renderLatest","renderRecentlyParticipated","CampaignData","MiddleContainer","Banner","BannerAndContent","AvatarNameAndDescription","AvatarDescription","trueWhite","AvatarAndName","StyledName","BannerLeftSide","deepBlue","BannerRightSide","BannerTitle","ElectionDate","TwoRacesLeft","Options","OptionColumn","OptionDescription","SquareRoundButton","RedSquareRoundButton","GetStarted","SelectAnOption","SubHeader","_ref19","_ref20","CollectPhoneDescription","_ref21","ThreeXImpact","ThankYouDescription","SubmitButtonContainer","_ref22","fullWithOnMobile","ShareSection","ShareButtonInner","forwardedAs","StyledLabel","_ref23","_ref24","handleSubmitPhone","termsLink","DoneCheckmark","handleNativeShare","shareLink","shareNowVisible","navigator","share","paddingTop","UploadOutlined","FacebookOutlined","TwitterOutlined","encodeURIComponent","ContactPaths","_useParams$contactPat","contactPath","contactPathParam","initialScreenType","initialContactPath","initialCollectPhoneTitle","collectPhoneTitle","setCollectPhoneTitle","setContactPath","protocol","host","georgiaLandingLink","ga_runoff_enabled","CollectPhone","ThankYou","StyledFooter","Rows","Address","h6","ContactUs","HelpfulLinks","Copyright","LinkColumnContainer","LinkColumn","LinkContainer","UnderlinedLink","paddingRight","facebookCircle","twitterCircle","instagramCircle","MarketingSiteFooter","numActivities","numRecruits","numPoints","NextRankText","NextRankUntilText","RanksWrapper","RankAndBadgeText","nextRank","RankBadge","Rank","NextRank","_rank$toLowerCase","_nextRank$toLowerCase","fromComplete","toComplete","toNextRank","translatedRank","translatedNextRank","GetRankBadge","badge1","badge2","badge3","badge4","badge5","showInfo","strokeColor","trailColor","actionOrActions","ProfileHeader","ProfileInfo","EditButton","Profile","suppliedZipCode","onEditClick","hasName","initials","getLanguage","EditOutlined","createdAt","section","hasContacts","setHasContacts","normal","_useHasContacts","useHasContacts","notDropzoneProps","UPLOAD_ENDPOINT","imagesTypes","$disabled","ManageButtonsWrapper","IconButton","ImpactiveImageUpload","dropzoneRef","s3Url","shouldShowManageButtons","onDrop","maxSize","dropzoneProps","showManageButtons","setShowManageButtons","handleProgress","textState","file","_props$onProgress","onProgress","handleError","_props$onError","handleFinish","_props$onFinish","uploadedFile","handleDrop","files","rejectedFiles","_props$onDrop","contentDisposition","onFinishS3Put","s3path","server","signingUrl","signingUrlHeaders","signingUrlQueryParams","uploadRequestHeaders","upload","S3Upload","handleDropRejected","_props$onDropRejected","onDropRejected","_rejectedFiles$","_errors$","_useDropzone","useDropzone","accept","useFsAccessApi","getRootProps","getInputProps","prop","onDelete","_props$onFinish2","onMouseOver","onMouseLeave","DeleteOutlined","border","borderRadius","oneOf","StyledDropzoneS3Uploader","$empty","$placeholder","FieldsWrapper","TopBlock","NameFields","AvatarWrapper","locales","deleted","setDeleted","showConfirmModal","setShowConfirmModal","uploadProgress","setUploadProgress","showLoading","EditUserScheme","multiple","_value$signedUrl$spli","signedUrl","v","onZipChangeHandler","ConfirmDeleteModal","authApi","ProfileAndMetrics","Section","blue16","UserInfo","profileLoading","setProfileLoading","userProfile","setUserProfile","showEditModal","setShowEditModal","loadUserProfile","_userProfile$first_na","_userProfile$last_nam","activities_performed_count","activitiesCompleted","activities_completed_count","recruited_count","_userProfile$scoring","scoring","_userProfile$scoring2","rankProgressFrom","rank_progress_from","rankProgressTo","rank_progress_to","next_rank","score","created_at","SyncContacts","EditUserModal","LoadingWrapper","getOtherUser","not_me","me","getFullName","maybeSpace","formatUserReportBody","reportId","getThreadTypeName","threadType","profanityToExclude","profanityWords","words","word","StyledMessageThreadItem","left","unread","activityBackground","MessageTopSection","MessageTypeSection","MessageInfoWrapper","MessageBottomSection","ThreadInfo","UnreadDot","FullNameAndLabel","Timestamp","MessageInfo","MessageContent","darksLateGray","Tag","chatName","constructThreadLink","relationship","countOfMessages","isReportFilled","_props$messageThread","messageThread","latest_message_body","needs_attention","latest_message_at","kind","isTeamChat","onKeyDown","tabIndex","FlagFilled","localizedDateTime","initialUnread","totalMessageThreadMessagesCount","messages_count","is_staff","is_outvote","is_report_filled","setMessageThreadParams","activeMessageThreadId","decreaseUnreadMessagesCount","setUnread","is_impactive_admin","getRelationshipLabel","MessageThreadPreviewContent","MessageThreadPreview","MessageThreadLoading","NO","UNKNOWN","YES","ThreeStateSwitch","computedValue","valueTypes","ModalHeader","SubHeading","StepTitle","StepName","StepScript","messageBackground","List","ListItemLabel","RegStateTypes","VbmStateTypes","onSelectTemplate","onUpdateContact","setStep","handleClickScript","handleClickFollowUp","follow_up","instructions","reg_confirmed","vbm_confirmed","voter_first_name","voter_last_name","can_register_online","can_vbm","reg_state","reported_registered","is_sending_registration_forms","requested_registration_form","can_vbm_online","vbm_state","reported_requested_vbm","is_sending_vbm_forms","requested_absentee_form","automatic_vbm","requested_reminders","SentIcon","ErrorIcon","MessageContainer","from_me","$isError","dimGray2","FlexWrapper","DeliveryStatus","TeamLeader","SenderData","Message","sender","dateText","showErrorData","is_team_admin","CarouselWrapper","ArrowWrapper","rightArrow","cyan","StyledEnterOutlined","EnterOutlined","setScriptMessage","dragging","setDragging","renderArrow","isRight","RightOutlined","dots","beforeChange","nextArrow","prevArrow","infinite","draggable","swipeToSlide","slidesToScroll","scriptIndex","ScriptsSectionHeaderWrapper","HideButton","darkGray","textDisabled","showInfoTooltip","infoText","UpOutlined","trigger","InfoCircleOutlined","ScriptsSectionWrapper","onOpenScripts","ScriptsSectionHeader","ScriptsCarousel","Tagging","SwitchesWrapper","initialUserReport","setUserReportTaggings","FillReportContainer","ScrollableContainer","SubmitButton","ArchiveWrapper","dimGray","automaticallyArchiveThread","disableSubmitButton","setAutomaticallyArchiveThread","reportActivityId","reportActivityName","isNewReportActivity","activityUrl","TaggingsList","FillReport","setReportId","setInitialUserReport","_useLocalStorage2","useLocalStorage","_userReport$taggings","_userReport$customiza","_userReport$activityN","activityName","setReportData","activity_name","strippedTaggings","formatTaggingsResponse","strippedCustomizations","formatCustomizationResponse","userReportDataResponse","FillReportContent","InfoSection","NameAndInfo","InfoButtonContainer","showRightSideBar","ReportingSidebar","canRegister","onRegisterClick","toggleSidebar","contactFirstName","contactLastName","contactEmail","contact_email","showToggleButton","Inputs","TextAndSendButton","TextAreaWrapper","StyledTextArea","MessageInput","setMessageContent","pressSend","sendDisabled","constructMailToLink","messageContent","isEmailResponseType","profaneWordDetected","maxRows","role","ArrowUpOutlined","menuItems","styles","menu","menuItem","tooltipData","_Dropdown","overlay","noIconMargin","StyledH1","ImpactiveConfirmModal","confirmText","cancelText","MessageHeader","AvatarContainer","AvatarName","HeaderButtons","$archive","ThreadType","refreshing","handleRefresh","showFillReportButton","currentActivityId","currentThreadId","sizes","isArchived","showReassignDropdown","openReassignModal","closeReassignModal","reassignmentMenuItems","UserSwitchOutlined","FolderOutlined","marginLeft","SyncOutlined","ButtonWithDropdown","EllipsisOutlined","confirm","CenteredContainer","Messages","ThreadAndRightPanel","ScrollSection","BottomArrowContainer","resolveEndpointByType","resolveResponseMessageType","contactableType","messageList","latestMessage","latestMessageType","_metadata$contact","_metadata$team","_metadata$team2","handleThreadsRefresh","refetchThreads","refreshMessageThreads","setRefreshMessageThreads","setShowRightSideBar","setProfaneWordDetected","overflowSidebar","lastMessageRef","messageInputRef","lastScriptRef","showScrollToBottom","setShowScrollToBottom","_usePaginatedApi2","metadata","optInFormId","opt_in_form_id","p2p_free_response_disabled","is_canvasser_action","has_canvasser_permissions","person","_messageThread$contac","getPersonFromMessageThread","contact_has_phone","hasPhone","_person$email","_person$name","threadName","_person$first_name","_person$last_name","setShouldRefetchMessages","shouldrefetchMessages","setRefreshing","setTemplates","current_page","_lastMessageRef$curre","scrollIntoView","script_type","cleanTemplates","scriptType","_useState20","CheckRegistrationModal","openCheckRegistrationModal","closeCheckRegistrationModal","isNotContactable","getStickyNumber","stickyNumber","lastMessage","sender_raw","receiver_raw","trackSendByType","answerPromise","okText","onOk","trimmedMessage","messageInner","lock","rate_limit","script_id","addSentFromMe","_e$response","_e$response$data","timeNow","toISOString","newMsg","read_at","received_at","sent_at","unshift","handleRegisterClick","template","interpolateMessage","handleInput","withProfanity","splittedWords","checkForProfanity","disabled_canvasser_twilio","MessageThreadHeader","_err$response$data","_err$response2$data","onScroll","scrollTop","scrollHeight","clientHeight","encodedBody","ScriptsSection","_lastScriptRef$curren","behavior","_messageInputRef$curr","ArrowDownOutlined","report_activity_id","FilterTypes","ALL","ARCHIVED","CANVASSED","FRIENDS","NEEDS_ATTENTION","TEAM","UNREAD","NEEDS_ATTENTION_THREADS_COUNT_POLLING_INTERVAL","needsAttentionMessagesCount","setNeedsAttentionMessagesCount","needs_attention_message_threads_count","pollForChanges","_pollForChanges","timerFn","Buttons","StyledRadioButton","onFilterChange","useNeedsAttentionMessagesCount","displayCount","UnreadIcon","FolderFilled","dropdownValue","InfoIcon","InboxHeader","onRefresh","FiltersSelect","InboxFilters","InboxContainer","HeaderAndInbox","MessageThreadsList","MessageThreadContainer","NotClickedOnMessageYet","InboxWrapper","queryParams","filterQueryParam","initialThreadId","setFilter","computedFilter","friends","canvassed","getPaginatedApiParams","cancelPendingRequests","restartIntervalRefetch","resetLiveUpdatePagination","_useParams$messageThr","initialMessageThreadId","setMessageThreadId","showMessageThread","initialLoadingChanged","useComparePrevious","handleFilterChange","newFilter","renderHeaderAndInbox","InboxList","renderMessageThreadContainer","MessageThread","setModals","addChangeListener","removeChangeListener","Component","_ref$props","NewReportFormSchema","parent","OptInForm","InitialContainer","OptInImg","Subtitle","OptInButton","Disclaimer","DisclaimerLink","ThankYouContainer","ShareButtonText","StyledFacebookShareButton","StyledTwitterShareButton","StyledClipboard","FacebookShare","TwitterShare","ClipboardShare","schema","formId","trackedLinkKey","setForm","_res$data","tracked_link_key","broadcast_disabled","numberForLink","broadcast_number","encodedMessage","text_to_join_message","replaceAll","smsLink","disclaimerText","subtitle","isMobileOnly","accent_color","tracked_link_url","postmates_enabled","handleClickReady","can_vote","postmates_integration_enabled","largeBreakpoint","smallBreakpoint","small800Breakpoint","useIs800","FanOutLogo","amplitudeTrack","utm_term","utm_content","team_id","useTrackFanOut","_queryString$parse2","_activity$campaign4","StyledHref","StyledImpactiveButton","transparent","$isFooter","$isDrawer","DonateButton","fan_out","newBlue","_$customSettings$butt","_$customSettings$font","_$customSettings$back","_$customSettings$back2","_$customSettings$font2","_$customSettings$back3","$originalVariant","$customSettings","button_color","vrDefaultColors","buttonColor","font_color","background_color","customVariant","thisVariant","Drawer","strokeMiterlimit","CloseDrawer","fillOpacity","rx","DrawerAntdStyles","DrawerContent","FanOutLogoIcon","CloseIconWrapper","LinksContainer","$isActive","DrawerComponent","openDrawer","setOpenDrawer","onOpen","DrawerIcon","_Drawer","CloseDrawerIcon","header","useIsMobile","cookies","useCookies","fan_out_auth","HeroImage","HeroImages","hero_img_url","Ticket","isFriendLookUp","isMyActivity","Copy","Share","Entries","fullColor","y","filterUnits","colorInterpolationFilters","floodOpacity","in","dx","dy","stdDeviation","in2","Recruits","Box","Counter","$fullColor","blackL42","EntriesInfo","referralLink","entriesCounter","recruitsCounter","pendingCounter","statsLoading","fullEntriesColor","fullRecruitsColor","Diamond","Checked","isBattleGroundState","EntriesContent","BaseText","IconWrapper","DescriptionEntriesText","EntriesTitle","EntriesDescription","EntriesContainer","isOwnVotingPlanCompleted","ENTRIES_ARRAY","getEntriesArray","HeaderText","UnderlineButton","NotSureText","SweepstakesEntries","_activity$settings2","openReferralModal","openVoterModal","_ref5$myStats","myStats","entries","recruits","_activity$settings","settings","showMobileShare","_navigator","ShareIcon","LeftSide","RightSide","Layout","modalVoterOpen","modalReferralOpen","mobile_hero_img_url","FanOutActivity","FanOutLayout","FanOutMobileLayout","FanOutDesktopLayout","StyledTerms","TitleText","$collapsed","Panel","_Collapse","CollapseAntdStyles","StyledCollapse","StyledPanel","Separator","Terms","expandIconPosition","Card","LabelsWrapper","LabelContainer","$entries","LinkClipboard","LinkText","SweepstakeCard","sweepstake","setShareLink","total_fan_out_points","titleText","descriptionText","enter","copyLink","openShareModal","StyledCloseButton","$secondary","BUTTON_SIZE","pathProps","strokeOpacity","secondaryCloseButton","isCommonVRChooseFlow","isIframe","Facebook","_props$color","LinkedIn","Twitter","DesktopLinks","ShareButton","LinkedinShareButton","LinkIcon","MobileShare","isPartner","shareData","action_page_description","action_page_title","canShare","ShareImage","mixBlendMode","x1","y1","x2","y2","gradientUnits","stopColor","offset","gradientTransform","bottom","setBottom","ready","setReady","getPosition","element","querySelector","getBoundingClientRect","StyledBox","$ready","$translateY","centerMobile","StyledDescription","_useDescriptionPositi","useDescriptionPosition","translateY","Graph","stopOpacity","ArrowUp","DescriptionContainer","QRCodeContainer","RecruitmentContainer","RecruitmentText","ShareTitle","ShareDescription","ShareNote","StyledShareIcon","QRCodeShare","mobileShare","_navigator2","QRCode","StyledShare","StyledGraph","TrackContainer","TrackText","StatsText","FanOutShare","handleClose","fanOut","FanOutTitleWrapper","$isForm","MobileHero","isForm","Circle","SIZE","CheckMark","pageColor","StyledIncentiveItem","IncentiveItem","iconColor","Ul","Incentives","incentives","order","StyleShareButton","Image","$isIncentives","$isFanOutReferrer","IncentivesContainer","ButtonColumn","StyledChooseFlow","_activity$settings4","_activity$settings6","_activity$settings$fo","_activity$settings$bu","_activity$settings3","_activity$settings$ba","_activity$settings5","isIncentives","_activity$activity_in","activity_incentives_attributes","profile_img_url","StyledMobileHero","FanOutShareWrapper","activeFormSection","activeLanguage","separator","VoterRegistrationShare","Person","Row","Arrow","StyledHoverCard","ArrowArea","HoverCard","arrowChildren","Plus","StyledLocation","StyledPlus","StyledIconWrapper","StyledAddressCard","picked","PickerIndicator","$picked","Indicator","AgainText","AddressCard","iconMap","plus","green","Cards","NoAddressMatch","parsedVoter","recordAddress","userAddress","handleRecordCorrect","handleUserCorrect","pickedAddress","setPickedAddress","progressColor","recordCorrectText","userCorrectText","recordClicked","userClicked","CloseCircleOutlined","dob","ButtonRow","Push","StyledAddressConfirmation","AddressConfirmation","nextPage","previousPage","setSelectedFlow","differentAddress","emptyVoter","parseVoterObject","voterfile","checkRegistrationReviewInfo","encode_id","recheck","handleSelect","handleBack","_activity$settings$pr","progress_bar_color","progressBarColor","addressProps","TitleSection","IncludesText","OutlineButton","ChooseFlow","setIsReferralFlow","referrer","isCommonVRFlow","isFanOutReferrer","chooseFlow","flow","isReferralFlow","checkMyRegistration","fanOutRegistration","getMyLink","checkRegistration","registerToVote","helpOthers","InputWrapper","inputStyle","fieldOutlineColor","selectorStyle","$withoutIcon","InputMask","radioButtons","Calendar","House","Red","Relative","$iconColor","Input","maskedFieldValue","wrapperStyle","calendar","house","thisIcon","field_outline_color","SelectInput","MaskedInput","connect","findObject","_place$address_compon","streetNumberObj","streetNameObj","zipCodeObj","stateObj","countyObj","_cityObj","cityObj","short_name","street_name","StyledAutocomplete","handleBlur","_parseAddress","parseAddress","parsedAddress","StyledSvg","CheckboxIcon","HiddenInput","isTouched","setIsTouched","StyledOptIns","OptIns","linkProps","privacy","termsName","additionalTerms","termComponents","hasAdditionalTerms","termsText","Trans","i18nKey","components","showOnLeaderboard","smsOptIn","RefreshFormIcon","$position","right","top","clearData","RedoOutlined","submitContactForm","email_opt_in","show_on_leaderboard","sms_opt_in","buildData","submitContactUpdate","FormWrapper","NameWrapper","StyledSearchIcon","SearchIcon","$isDisabled","ButtonGroup","ContactForm","backButton","secondaryButton","submitButtonChildren","addressRef","_useVoterRegistration","useVoterRegistrationApi","showOptIns","handlePixelTracking","pixel_fb_id","pixel_ga_id","pixel_gtm_id","pixel_sc_id","createContact","submitUpdate","hasErrors","isAllValues","referral","refreshForm","f","stylesSettings","_len","_key","RefreshFormButton","handleAddressChange","handleDateChange","extraButton","dateFormat","dateOfBirth","typeError","min","subtract","max","ReferralFormSchema","FanOutReferralFormSchema","age_group","fanOutContactFormValues","FriendLookUpFormSchema","contactFormValues","FanOutContactFormSchema","_activity$show_contac","_activity$show_contac2","initialContact","contactFormInitialValues","show_contacts_on_leaderboard_by_default","referralFormInitialValues","friendLookUpFormInitialValues","fanOutRadioButtons","contactForm","friendLookUpForm","referralForm","schemas","fanOutContactForm","fanOutReferralForm","FindRegistration","_useContactForm","useContactForm","fanOutRegisterToVote","AgeGroupWrapper","TeensText","ReferralForm","_activity$settings7","_activity$settings8","submitReferralVrFrom","_activity$campaign5","StyledReason","IconArea","Reason","ABCheck","Clock","StyledNotRegistered","$background","KeepGoingText","NotRegistered","reason1","reason2","reason3","reason4","sectionColor","DURATION","ShowOnHover","StyledVoterItem","VoterItem","onSelect","emailOptIn","submitContactStateIdUpdate","has_state_identification","submitNormalContactForm","updatedValues","StyledSelectVoter","VoterList","SelectVoter","setError","newData","notRegistered","fanOutNotRegistered","checkRegistrationNotRegistered","minHeight","buttonLabel","TellUs","CircleCheck","CircleX","Lock","Star","customParseFormat","DATE_FORMAT","DISPLAY_DATE_FORMAT","iconTypes","dot","star","showTimeline","today","isAfter","todayBeforeOrEqual","isBefore","isSame","showPostmarkedReceivedInfo","postmarkedDate","receivedDate","postmarkedText","receivedText","linkText","sortTimelines","timelines","timelinesWithDates","timeline","timelinesWithoutDates","sortedTimelines","b","unix","splice","getLatestDate","dates","_step","latestDate","_iterator","_createForOfIteratorHelper","getNoOnlineRegistrationAvailableDeadlineDate","votingInfo","mail_reg_deadline_postmarked","mail_reg_deadline_received","mail_primary_reg_deadline_postmarked","mail_primary_reg_deadline_received","lighterGray","StyledTimelineItem","$twoColumns","TextBlock","TextWrapper","firstStyle","lastStyle","TimelineItem","displayDate","registered","customIconColor","todayIsAfter","checkAfter","accentColor","textColor","formattedDate","getLink","primaryDate","primary_election_date","generalDate","general_election_date","showPrimary","showGeneral","online_primary_reg_deadline","primary_vbm_request_deadline","online_vbm_request_link","primary_vbm_return_deadline_postmarked","primary_vbm_return_deadline_received","primary_early_vote_start","primary_early_vote_end","polling_place_locator","beforePrimaryWithRegistration","online_reg_deadline","general_vbm_request_deadline","vbm_return_deadline_postmarked","vbm_return_deadline_received","early_vote_start","early_vote_end","beforePrimaryWithoutRegistration","beforeGeneralWithRegistration","electionPassed","beforePrimary","afterPrimary","afterGeneral","noOnyearDataYet","hasOneyearData","StyledTimeline","Timeline","statusColor","_contact$state_abbrev","_contactFormResult$st","_selectedVoter$state","offyear_status","getRegisteredTimelines","getUnregisteredTimelines","sortedTimeline","$isOpen","StatusBox","IconBox","TitleBox","HeaderBox","DetailsText","TextBox","TimelineBox","_votingInfo$same_day_","isNorthDakota","disableCollapse","contactFromProps","activeKey","setActiveKey","voting_info","sameDayNonReg","same_day_registration","afterGenRegDeadline","_info$state2","_info$state","displayFormat","onlinePrimaryRegDate","getButtonLink","source_link1","online_reg_link","accepts_national_reg_form","national_reg_link","paper_reg_link","registeredText","notRegisteredText","_settings$button_colo","_settings$background_","trackOfLinkClick","RegisterButton","_settings$font_color","_settings$unregistere","_settings$registered_","registered_color","registeredColor","unregistered_color","unRegisteredColor","DetailsButton","registrationPassed","$registered","showArrow","additionalStyles","ItemWrapper","SocialShare","LinkInput","StyledShareLink","ShareLink","_activity$settings$fi","Left","hasIncentives","VotingInformation","StyledVotingInformation","_selectedVoter$voterf","is_points_earned","NorthDakotaVersion","ageRanges","formatTags","formatCustomFields","updateReportData","existing","ID","FriendLookUpFrom","FriendLookUp","FriendLookUpForm","ArrowBack","TopBox","RecruitDescriptionBox","NameText","BattleGroundText","BottomBox","VoterStatusText","VBFriendInfo","isRegistered","isBattlegroundState","isHightFrequency","memo","VBFriendInfoWrapper","LoadingBox","NoRecruitsText","StyledLinkButton","FriendLookUpResult","StyledVotingDetails","VotingDetails","latest_registration_status","Placeholder","defaultFlow","friendLookUp","selectedFlow","_window$scrollTo","_modal$scrollTo","modal","backToStart","SweepstakesContainer","AllSweepstakes","_useFlows","useFlows","flowProps","sweepstakesState","closeHandler","RecheckRegistrationIcon","BasicText","StatusWrapper","StatusText","StatusContainer","RegisteredIcon","CheckCircleFilled","NotRegisteredIcon","CloseCircleFilled","UnknownIcon","QuestionCircleFilled","VotingStatusContainer","VotingDetailsLink","InfoWrapper","ContactText","_myStats$contact3","myStatsIsLoading","_useMemo","showVotingDetailsButton","_myStats$contact","_myStats$contact2","TwoRecruits","LeftBox","RightBox","InnerBox","StyledTicket","EntriesBoxes","openFriendSearchModal","votingPlanReferralLink","votingPlanReferralLinkLoading","openVotingPlan","ExitLink","Underline","RecruitBox","VSBox","VSContent","VSText","EarnedContent","StyledEntries","SweepstakeLink","StyledExitLink","DesktopRecruit","recruit","points_earned_from_recruit","isVotingPlanSubmitted","voting_plan_submitted","_recruit$contact","firsName","ageLowerBound","age_lower_bound","ageUpperBound","age_upper_bound","navigate","CounterDescription","MobileRecruit","TopContainer","$isEmpty","BoxTitle","copyVotingReferralLink","RecruitComponent","useMyStats","isGetReferral","setStatsLoading","setMyStats","entries_earned","own_voting_plan_completed","recruits_count","useGetReferrer","referrerLoading","setReferrerLoading","setReferrer","MyActivity","localContact","_useMyStats","_useGetVotingPlanRefe","setVotingPlanReferralLink","setVotingPlanReferralLinkLoading","useGetVotingPlanReferralLink","$progressColor","$height","$isIframe","errorMsg","defaultLanguage","URL","searchParams","set","$font","modalFriendSearchOpen","useSpecificTranslation","goToPage","CurrentPage","referralFlowActive","hideProgress","headcount_registration_enabled","isIframeBool","font","Instagram","Threads","LogoContent","RightsText","ContactContent","MediaContent","MediaTitle","SocialContent","IconLink","currentYear","getFullYear","SOCIALS","$isMobile","$isButtonCover","StyledFanOutActivity","FanOut","_activity$settings9","_useParams","showReferralModal","setShowReferralModal","showVoterModal","setShowVoterModal","showFriendSearchModal","setShowFriendSearchModal","tabParam","useMyActivityRedirect","_useRestoreContact","isRestoringContact","setIsRestoringContact","isFanOutReferralFlow","setIsFanOutReferralFlow","localActivity","cookiesActivity","useRestoreContact","_useGetReferrer","VoterRegistration","VotingPlan","StyledFanOutLogo","StyledVotingPlanUnderline","VotingPlanUnderline","CreateVotingPlan","descriptionComponent","handleErrorMessage","availableQuestions","getInitialQuestionValues","activityQuestions","VPAnswers","questionAnswersField","_VPAnswers$find","answer_mappings","activity_question_id","possible_answers","question_position","fromEntries","formatContactFields","formVPAnswers","getValidationQuestionsSchema","questionAnswersValidation","of","requiredFieldsProps","HomeFilled","validation","MailFilled","getTableText","returnObjects","examples","$topCompensation","$type","VotingPlanButton","topCompensation","ButtonsSection","nextButtonProps","prevButtonProps","showPreviousButton","$hidePrefix","StyledInputMast","hidePrefix","CalendarFilled","fields","questionKeys","_requiredFieldsProps$7","_requiredFieldsProps$8","_requiredFieldsProps$9","_requiredFieldsProps$","_requiredFieldsProps$2","_requiredFieldsProps$3","_requiredFieldsProps$4","_requiredFieldsProps$5","_requiredFieldsProps$6","FormDatePicker","$maxWidth","BottomText","formAttributes","_ref3$currentPage","nextButtonText","nextIcon","onNextPage","setFormVPAnswers","onPreviousPage","questionEntries","getInitialFormValues","getValidationFormSchema","errorType","error_type","referral_name","InfoFields","Oops","_ref6$currentPage","oopsType","hideNextButton","questionPosition","answerPosition","warningMessage","proposedAnswer","getWarningMessage","InnerContainer","StyledCheckOutlined","answeredValue","disabledAnswers","handleRadioChange","_Space","direction","WarningMessage","StyledCard","_ref3$question","question_type","answered_value","RadioGroupFormPartial","setDisabledAnswers","alsoPicked10","alsoPicked11","alsoPicked00","alsoPicked01","handleDisabledAnswers","QuestionCard","HowWillYouVote","first3Questions","_ref$currentPage","prevButtonText","prevIcon","setVPAnswers","handlePreviousPage","partyAnswers","QuestionFields","FirstSentence","sortValue","random","_value$split2","_toArray","firstSentence","PageTitleDescription","WhichCandidatesRepresent","partyQuestions","setContactId","_possible_answers$fin","survey_activity_form","prevAnswers","ReferrerText","TitleResults","willEarnPoints","referrerName","referrerText","AnswersWrapper","AnswerCard","LookUpText","HowIPlanToVote","first3Answers","lookUpClick","CardWrapper","PartyCard","PartyColor","PartyPercentage","LineWrapper","ResultsText","TableWrapper","DisclaimerText","SectionWrapper","TableMainTitle","TableTitle","TableCard","TitleCard","DescriptionCard","ExamplesWrapper","ExampleCard","_ref25","_ref26","$title","WhoRepresents","_ref27","percentage","setPercentage","expanded","setExpanded","democratStyle","republicanStyle","_ref28","_ref29","onCollapseChange","tableTranslations","rotate","_ref30","examples_title","example","Results","setWillEarnPoints","fanOutSubmission","VOTING_PAGES","ReloadOutlined","pageName","$lastPage","RightWrapper","setOopsType","onBackToStart","votingPlanProps","surveyProps","sortedActivityQuestions","setSortedActivityQuestions","setFirst3Questions","setPartyQuestions","setFormAttributes","getActivityQuestions","sortedQuestions","activity_questions","useSurveyActivity","_votingPlanProps$curr","defaultImportant","f1","f2","f3","StyledText","getVariant","colored","bgGray","solid","tertiary","bgColors","purple","textVariants","spacing","wide","StyledHeroImage","setActiveLanguage","headcount_partner","redirectUrl","setRedirectUrl","redirect_campaign_slug","redirect_activity_slug","register_to_vote","redirect_team_slug","other","teamPath","goToCheckRegistration","headcount_rct_enabled","flows","CHECK_REGISTRATION","tight","Notice","textDarkGray","_activity$campaign6","_activity$campaign7","_activity$campaign8","_activity$campaign9","isDesktop","useIsDesktop","useIsPartner","cannabisRegistrationEnabled","cannabis_registration_enabled","useRedirectRules","teamImageSrc","logoUrl","scrollToCTAButtons","getElementById","activityIncentive","headcountMtvEnabled","headcount_mtv_enabled","headcountRtcEnabled","noticeText","noticeRedText","LanguageToggle","incentives_img_url","image_url","checkForRedirect","REGISTER_TO_VOTE","WANT_TO_HELP","bgGray2","textGray","yellow","wider","StyledSideHeroImage","rounded","SideHeroImage","StyledLayout","RightSideCentered","RightSideTop","HeadcountLayoutDesktop","ThemeProvider","headcountTheme","HeadcountLayoutMobile","ErrorTextWrapper","ContentWrapper","StyledButtonRow","CustomInputMask","checkboxColor","StyledTermsAndConditions","replaceURLsWithLinks","updateAddressFormFields","normalFlowFields","headcountFields","updateAddressFormInitialValues","contactFormHeadcount","updateAddressForm","referralFormHeadcount","ThanksMessage","contactFormTitle","contactFormSchema","setRootFlow","isSubmitted","setIsSubmitted","apiError","setApiError","isHeadcountRctEnabled","getDefaultAddress","isHeadcountMtvEnabled","showCompleted","paddingLeft","$isMtv","$isCannabis","$isPartner","HowToFinishWrapper","numberOfPages","isCannabis","progressBarHeight","lastStepProgress","showHowToFinishSection","StyledHeaderAndProgress","HeaderWrapper","HeaderAndProgress","imageSrc","StyledBackToStart","BackToStart","ExternalButtonLink","textDecoration","CopyIcon","$isHeadcount","showShareButton","handleShare","renderShare","antdOverrides","lineHeight","whiteSpace","fontFamily","StyledVoterBox","AddressLine","VoterBox","voterName","line1","line2","line3","calendarTealImage","calendarGreenImage","calendarYellowImage","CalendarIcon","clipboardTealImage","clipboardGreenImage","clipboardYellowImage","ClipboardIcon","checkmarkTealImage","checkmarkGreenImage","checkmarkYellowImage","CheckmarkIcon","envelopeTealImage","envelopeGreenImage","envelopeYellowImage","EnvelopeIcon","localeData","StyledDateItem","DateItem","currentLocale","typeDetails","iconStyle","getTypeDetails","AL","AK","AZ","AR","CA","CO","CT","DE","DC","FL","GA","HI","IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","RI","SC","SD","TN","TX","UT","VT","VA","WA","WV","WI","WY","DateList","StyledVotingDates","VotingDates","_stateName$toLowerCas","_stateName$toLowerCas2","lastRegDayVBM","lastRegDayOnline","earlyVotingStart","electionDayDate","isPrimary","stateAbbreviation","voteByMail","stateName","fullStateName","stateAbbrMap","getStateName","stateWithHyphens","additionalInfoLink","election","county_election_info","encodeId","voterRecord","setVoterRecord","RegisterToVoteResult","_voterRecord$voting_i","_voterRecord$voting_i2","_useFetchVoterRecord","useFetchVoterRecord","regParams","apartment","date_of_birth_day","date_of_birth_month","date_of_birth_year","phone_number","street_address","zip_5","registrationLink","CircledCheckmarkIcon","BannerWrapper","AbsoluteWrapper","StyledBanner","BackButtonWrapper","ErrorWrapper","StateIdQuestion","showBanner","handleButtonClick","getButtonVariant","AddressWrapper","StateIdQuestionWithAddress","validateForm","setTouched","sendRequest","StyledListItem","ballotBox","stopwatch","ReasonList","LastButton","setShowBanner","cta_text","handleRegisterToVote","icons","shouldDangerouslySet","excuseVBMStates","automaticVBMStates","RegisteredLocation","updateAddress","voteFromAddress","event_name","handleVoteByMail","isExcuseVBMState","isAutomaticVBMState","vbmListItem","specificString","showVBMAsMain","SelectButton","Bottom","NoneOfThese","trackNotFound","handleNotRegistered","titleKey","getVoterProps","UpdateAddressResult","_selectedVoter$addres","VoteFromAddressResult","isHeadcountMtv","VoteByMailResult","baseFlow","notRegisteredFlow","updateAddressFlow","voteByMailFlow","voteFromAddressFlow","CheckRegistration","pageNavigation","usePageNavigation","voterRegistrationInit","RegisterToVote","Center","$withMargin","ReferralShowLink","WantToHelp","_usePageNavigation","StlyedButton","VotingDatesGA","GeorgiaRunoffPage","pageRef","_pageRef$current","LinkButton","GA_RUNOFF_PAGE","Headcount","prefillContactForm","renderFlow","action_page_background_color","StyledActivityCTA","ActivityCTAContainer","JoinButtonWrapper","GetReferralButton","isDark","ReferrerDetails","referrerDetails","handleGetReferral","IndicatorNumber","IndicatorLabel","indicatorPriority","ProgressWrapper","withIndicator","ProgressContainer","ProgressPlaceholder","mediumLightGray","paintValue","GoalsPlaceholder","StyledActivityGoals","GoalLabels","GoalsLeft","GoalsRight","GoalLabel","GoalAmount","ActivityGoals","goals","registrations_goal_amount","goalAmount","registrations_goal_label","currentTotalAmount","registrations_count","currentReferralsAmount","referrals_count","currentPercent","referralsPercent","toLocaleString","BoxWrapper","BoxLogo","CampaignProfileImage","MainContainer","ActivityCTA","StyledCampaignProfileImage","StyledMainContainer","PROFILE_IMG_SIZE","DesktopHero","profileOffset","GetStartedButton","StyledIncentiveCard","IncentiveCardWrapper","IncentiveImage","IncentiveDetails","IncentiveDetailsWrapper","IncentiveTitle","IncentiveDescription","IncentiveReadMore","incentive","setDescription","StyledIncentivesSection","pageType","Swiper","slidesPerView","centeredSlides","clickable","modules","Navigation","Pagination","navigation","breakpoints","spaceBetween","SwiperSlide","IncentiveCard","StyledTeamLeaderboardCard","TeamImage","TeamDetails","TeamTitle","TeamStats","TeamStat","TeamStatNumber","TeamStatDescription","formatter","Intl","NumberFormat","maximumFractionDigits","notation","teamUrl","team_slug","is_public","team_referrals_count","contact_referrals_count","IMAGES","StyledTeamLeaderboard","LoadingSpin","ActionsList","EmptyMessage","setTeams","_campaign$slug","leaderboardLink","TeamLeaderboardCard","StyledLeaderboardCard","TopWrapper","FirstPlaceIcon","SecondPlaceIcon","ThirdPlaceIcon","_contactMetric$referr","_contactMetric$team_n","contactMetric","referrer_first_name","referrer_last_name","StyledVolunteersLeaderboard","VolunteersList","contactMetrics","setContactMetrics","VolunteerLeaderboardCard","StyledRegistrationActivity","goalsLoading","setGoalsLoading","setGoals","ActivityHero","IncentivesSection","TeamLeaderboardSection","VolunteerLeaderboardSection","getFont","autofillForm","selectPlace","handleValueChange","AddressesWrapper","fieldsToClear","clearVolunteerInfo","setAddress","form_field_background_color","form_field_font_color","form_field_outline_color","main_font_color","_requiredFieldsProps$12","_requiredFieldsProps$13","_requiredFieldsProps$14","_requiredFieldsProps$10","_requiredFieldsProps$11","address2Field","AddressFormField","toLocaleUpperCase","HeaderImage","SubText","sectionBackgroundColor","PaddedFlexCard","pageBackgroundColor","fieldBackgroundColor","UnderlinedInput","fieldFontColor","placeHolderColor","InputFieldFormPartial","bordered","_ref2$question","FormPartialComponent","mapQuestionTypeToFormPartial","section_background_color","idx","OptInSection","StyledCheckbox","PrivacyPolicyLink","optInCheckboxTermsText","termsAndPolicyLink","$borderColor","StyledLinkedinShareButton","StyledCopyButton","buttonFontColor","supportsNativeShare","showNativeShareButton","secondary_color","button_font_color","resetButtonStyle","clipboard","writeText","speechifyAiData","imgHeight","thank_you_title","messageText","thank_you_message","allow_sharing","iFrameUrl","speechifyai_url","ShareButtons","TitleAndDescriptionWrapper","StyledSubmitButton","setReferralLink","isBVMCampaign","isOptInRequired","opt_in_agreement_required","getInitialSurveyValues","getValidationSchema","formikBag","team_referral_id","_activity$speechifyai","speechifyai_activities","ReferralLink","isClosed","isValuesExists","VolunteerInfoFields","ActivityQuestions","OptInCheckboxField","PageWrapper","Images","FormIntroImage","MainImage","$mobileOnly","showForm","formQueryParams","paid_by","showIntroPage","setShowIntroPage","SurveyIntroPage","SurveyActivityForm","redirectingToUserActivity","setRedirectingToUserActivity","_ref2$data","warning","HeadcountRegistrationActivity","RegistrationActivity","voting_plan_activity_id","FanOutVotingPlanActivity","SurveyActivity","TeamPageTitle","StyledTeamActivity","about_media_type","about_media_url","teamSlug","TeamActivityVoterRegistrationPage","resp","setFirstName","setLastName","setTeamName","setPhone","setZipCode","setLocale","profileLoaded","setProfileLoaded","initialLocale","submit","EnvironmentOutlined","UserPreferences","Unlock","setCauses","timerIntervalRef","setUnreadMessagesCount","getUnreadMessagesCount","unread_message_threads_count","intervalFn","Term","Help","help","DefinitionList","BoldText","danger","TeamSection","state_info","setStateInfo","readyToVoteLink","formatDate","stateResponse","inviteSection","rewards","Definition","vbm_return_deadline_description","vbm_excuse_info","ballot_tracker","in_person_early_voting_link","InvitesContainer","TeamJoinDescription","TeamCode","TeamActivity","reports","invite_link","team_leader","teamLeaderEmailHash","email_hash","showRegistrationLink","registration_feature_enabled","checkRegistrationLink","sampleInvitation","BoldedName","RegularName","TeamMember","stats","TeamHeader","TeamWrapper","TeamContainer","TopMembersSection","MembersSection","StyledTeamMember","teamId","membersPaginator","loadTeam","_ref5$team_leader","_ref5$team_leader2","leaderFirstName","leaderLastName","teamProfileUrl","teamCampaign","leader","top_members","total_entries","TestimonialMediaPreview","setMedia","mediaType","setMediaType","isImage","isVideo","reader","FileReader","callbackReaderFn","readAsDataURL","s3","defaults","common","generateSignedUrl","fileType","fileName","_yield$activities$get","uploadMedia","put","onUploadProgress","validateFile","isValidFormat","isValidSize","Preview","_userActivity$activit2","testimonialNote","setTestimonialNote","mediaPreview","setMediaPreview","testimonialNoteURL","setTestimonialNoteURL","testimonialNoteType","setTestimonialNoteType","submitting","uploadButtonText","setUploadButtonText","uploading","setUploading","loadData","_yield$user$getUserAc","personal_note","personal_note_type","personal_note_url","HeaderLink","_Upload","listType","showUploadList","customRequest","beforeUpload","_ref2$file","originFileObj","SearchInput","SelectAllLabel","FixedBottom","ActionBar","ActionButtonsInner","_activity$autofilters","_activity$autofilters2","_activity$autofilters3","_ref7$userActivity","onGoBack","onSendIndividual","onSendBulk","autofilters","setInDistrict","setInSwingDistrict","partyAffiliation","setPartyAffiliation","is_suggested","allFiltersUnchecked","isContactSelected","handlePartyChange","showContacts","showTryClearingFilters","showSuggestSyncContacts","no_labels","newSelection","LeftHeading","RightHeading","ScriptsBox","accordion","ScriptBody","UseScriptButton","setMessage","setMe","selectedScript","setSelectedScript","showBulkInterpolationWarning","setShowBulkInterpolationWarning","scriptBody","interpolatedMessage","scriptInterpolatable","defaultActiveKey","_ref$bcc","bcc","_ref$from","Buffer","TopLeft","EmailInfo","EmailInfoLabel","TopRight","Step","SkipToNextLink","contactList","skippedInAppEmail","onCompleted","onShowActivityCompletedModal","messageBody","setMessageBody","validContacts","totalBatches","batchPage","setBatchPage","finishedSending","handleSendMessage","contactIds","mailToLink","recipients","valid","ScriptMessageInput","buildEmail","resource","raw","GmailApproval","onSkip","contactIndex","setContactIndex","askedOnce","setAskedOnce","handleSkipToNext","_ref2$manuallySending","manuallySending","hasNoEmail","contactName","isBulk","setSkippedInAppEmail","openActivityCompletedModal","closeActivityCompletedModal","handleSkip","handleCompleted","handleShowActivityCompletedModal","BulkSendingScreen","IndividualSendingScreen","initialScripts","setInitialScripts","displaySendingScreen","setDisplaySendingScreen","setRedirect","oneCampaignData","_userActivity","_yield$campaigns$getA","activityScripts","_initialScripts","mode_priority","handleGoBack","handleSendIndividual","handleSendBulk","handleGoBackToSelect","_oneCampaignData$sele","SendingScreen","ContactSelection","$confirmContactState","ProgressCount","ScriptIcon","ScriptText","SuccessMessage","ButtonSection","ScriptContainer","ScriptSkeleton","_Skeleton","PersonalizedDisclaimer","_ref2$activity","loadingScripts","setLoadingScripts","sending","setSending","initialScript","setInitialScript","setContactList","confirmContactMode","setConfirmContactMode","isConfirmContactState","setIsConfirmContactState","activityCompleted","setActivityCompleted","_useState22","setBatchSendInfo","_useState24","batchSendTimeout","setBatchSendTimeout","contactListExhausted","textingAllowed","is_allowing_texting","isSendButtonDisabled","_activity$activity","p2p_confirm_mode","_yield$campaigns$getU","fetchScripts","activity_script","preview_links","totalToSend","totalContactsToSend","sendBatch","batchTimeout","addContactForScript","batchCopy","newBatch","handleKeyDown","_userActivity$activit4","_userActivity$activit6","_userActivity$activit7","interpolatedData","skipRegex","personalizedLinkRegex","showPersonalizedDisclaimer","checkForPersonalizedLinks","_contact$first_name","_contact$last_name","capitalizedContactName","quoteIcon","paragraph","rows","vfirst","vsecond","CheckIcon","CheckCircleOutlined","vbm_request_deadline","SuccessText","_Tag","ExclamationCircleOutlined","paper_vbm_request_link","in_person_early_voting","allowMargin","TitleAndSubtitle","showAddManuallyButton","showSearchAgainButton","buttons","urlStack","_Breadcrumb","_item$url","PageHeader","breadcrumbData","BreadcrumbContainer","FieldWrapper","CustomFieldWrapper","CustomFieldOption","$selected","fieldValue","addAnotherReport","StickyFooter","redirectToFindVotersPage","resetForm","ViewTags","ViewCustomFields","FormFooter","addReportBreadcrumb","isAddManually","submitErrorMessage","setTags","setCustomFields","getAddManuallyData","blankReport","setReportFields","prepareFieldsForAvailableVoters","mergedCustomization","mergedTaggigns","formattedTags","formattedCustomFields","getUserActivityId","updateReport","trackEvent","activityCampaign","sendMessageAndUpdateActivity","setFormikState","formTags","formCustomFields","voterData","voterId","_useSendReport","useSendReport","AddManuallyForm","FindVotersForm","StyledItem","$preview","VotersListItem","selectVoter","Action","VotersList","onSelectClick","VotersHistoryModal","listSection","redirectData","setRedirectData","redirectToVoterView","isFirstRun","ViewVoterForm","FindVoters","AddManually","ViewVoter","ClearButton","AccelerateChange","useCurrentUrl","didTheyVoteFlow","isLanding","prefixParagraph","messageToShare","getShareData","$isLanding","ChooseVoter","thanksTitle","AccelerateChangeHeader","HorizontalFlex","dimGray3","activeColor","IconCircleContainer","SignUpText","LeftAligned","showDemoButton","VerticalProgressPoints","SidebarLayout","BoldHeader","PlanSelectionHeader","Subtext","VertFlex","PlanHeader","plans","currency","startingAt","price","DynamicGrid","columnCount","SectionHeader","EmptyContainer","PlanSectionHeader","optionsCount","containerStyle","isGray","TextElement","PlanGridRow","opt","onPlanSelect","plan","ImpactiveLinkButton","ShadowWrapper","ScrollingContainer","noScrollbar","Sticky","_Object$keys","scrollRefTable","scrollRefButtons","scrollLeft","PlanButtons","activityPrices","p2pSms","p2pMms","broadcastSms","broadcastMms","phoneBanking","moneyFormatter","ModalWithNoPadding","StyledGrayText","StyledCardWrapper","LeftContainer","FieldsContainer","stripePromise","loadStripe","paymentComplete","setPaymentComplete","priceLines","currentDate","subtext","getMonth","getLines","clientSecret","setClientSecret","addPaymentMethod","_yield$billing$addPay","client_secret","billing","handleSuccess","paymentMethodId","setupIntent","payment_method","setDefaultPaymentMethod","createStripeSubscription","PaymentCompleted","Elements","stripe","appearance","rules","variables","fontLineHeight","fontSizeBase","PaymentForm","line","PaymentLine","selectedPlan","setSelectedPlan","DesktopSubscriptionSelection","PaymentModal","SideBySide","OrgName","setFieldTouched","isStepInfoComplete","org_name","Select","org_type","setValue","selectOnChange","create_new_signup","formikProps","WelcomeStep","TellUsMoreStep","PlanSelectStep","ProfileImage","Titles","_controls$campaign","_controls$activity","_controls$activity$se","_controls$activity2","_controls$activity2$s","_controls$activity3","_controls$activity3$s","_controls$activity$se2","_controls$activity4","_controls$activity4$s","_controls$activity5","_controls$activity5$s","setType","ReactTable","handleFetchData","setPaginationConfig","isIndividual","leaderboard","accessor","_row$original$referre","original","statFormatted","showPageJump","showPaginationTop","pageSizeOptions","manual","sortable","paginationConfig","onFetchData","PaginationComponent","paginationProps","TablePagination","scrollToTop","canNext","noDataText","initialType","setHasMore","setLeaderboard","publicCampaign","setPublicCampaign","publicActivity","setPublicActivity","getData","links","Leaderboard","_leaderboardControls$","_leaderboardControls$2","leaderboardControls","useLeaderboard","LeaderboardTable","myVoteScoreQuestions","QuestionTitle","$isMVS","isMVS","faqs","_row$original$last_na","customizeRenderEmpty","_Empty","PRESENTED_IMAGE_SIMPLE","store","AuthProvider","_ConfigProvider","renderEmpty","StateProvider","UnauthenticatedRoute","Auth","CampaignDetail","AuthenticatedRoute","CampaignLeaderboard","TeamDetail","PledgeToVote","ConfirmAddress","StateVotingInformation","TeamActivityPage","VoterRegistrationPublicLeaderboard","PeerToPeerPublicLeaderboard","PublicActivityDetail","ActivityDetail","IdVoters","VoterMatch","GeorgiaSpecialLanding","GaOptionsPage","OptInFormWeb","NewVoterReport","Settings","Contacts","FrontLine","Hq","Inbox","DidMyFriendVoteFAQs","SearchVoter","ContactSync","AddReport","AdminPlanSelect","ModalContainer","_process$env$NODE_ENV","SENTRY_ENV","SENTRY_UNIQUE_RELEASE_NAME","dsn","environment","release","Accept","post","use","node","ReactDOM","BrowserRouter","App"],"sourceRoot":""}