{"version":3,"file":"js/7555-6cde9b06e147e2bf5556.js","mappings":"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","sources":["webpack://geosnapshot/./client/bundles/BrowseEvent/components/DeletePhotosConfirmation.tsx","webpack://geosnapshot/./client/bundles/BrowseEvent/components/PrepaidCustomerAuthPopup.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/Filters/WebcamCapture.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/Filters/SelfieFilter.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/LightBoxNavBtns.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/LightboxImage.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/vectors/SaveIcon.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/LightBoxVideo.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/EmailPopup.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/LightBox.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/MobilePhotoGallery.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/Photos.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/StyleOverridesMobile.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/Header.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/AlbumPhotos.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/vectors/AlbumsIcon.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/AlbumsList.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/Filters/NoMatchingPhotos.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/GalleryBody.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/EmbedHeader.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/GetNotifiedPopup.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/vectors/CloseIcon.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/vectors/UploadNotify.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/GetNotifiedBanner.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/vectors/NotiIcon.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/NoPhotos.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/vectors/LockIcon.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/PasswordProtected.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/PrivateScreen.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/LinkedEventsPopup.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/offerBanners/PromptClearPrepaidCart.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/CurationMode.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/vectors/CopyBtn.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/vectors/EmailIcon.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/EventSupportEmailPopup.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/offerBanners/PromptClearCart.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/Filters/PromoteFilters.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/index.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/offerBanners/RemoveBundlePrompt.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/vectors/HideCancel.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/vectors/HideIcon.tsx","webpack://geosnapshot/./client/bundles/EventGalleryMobile/vectors/LightBoxCartIcons.tsx","webpack://geosnapshot/./client/bundles/MasterImageSearch/components/results/PhotoGallery.tsx","webpack://geosnapshot/./client/bundles/MasterImageSearch/components/results/Photos.tsx","webpack://geosnapshot/./client/bundles/MasterImageSearch/components/GroupByCountry.tsx","webpack://geosnapshot/./client/bundles/MasterImageSearch/components/results/PhotosContainer.tsx","webpack://geosnapshot/./client/bundles/OrganizationEvents/BellIcon.tsx","webpack://geosnapshot/./client/bundles/PublishBanner/index.tsx","webpack://geosnapshot/./client/bundles/SaveCartEmailPopup/index.tsx","webpack://geosnapshot/./client/bundles/common/InvitePhotographerPopup.tsx","webpack://geosnapshot/./client/utils/GetAlbumId.tsx"],"sourcesContent":["import React from \"react\";\nconst warnIcon = require(\"../../EventGalleryMobile/styles/icon-red-warn.svg\");\n\nconst DeletePhotosConfirmation = ({\n closePopup,\n deletePhotos\n}: {\n closePopup: Function;\n deletePhotos: Function;\n}) => {\n return (\n
\n \n
\n
\n  \n {\n closePopup();\n }}\n >\n ×\n \n
\n
\n \n

Photos will be deleted

\n
\n
\n

Are you sure you want to delete all the selected photos?

\n
\n
\n {\n closePopup();\n }}\n >\n Cancel\n \n {\n deletePhotos();\n }}\n >\n Delete\n \n
\n
\n
\n
\n
\n );\n};\n\nexport default DeletePhotosConfirmation;\n","import PropTypes from \"prop-types\";\nimport React from \"react\";\nimport ajax from \"superagent\";\nimport _ from \"lodash\";\nimport { removeParam } from \"../../../utils/BrowserHelper\";\nimport Pluralize from \"react-pluralize\";\n\n// const bagOfPhotos = require(\"../styles/bag-of-photos.svg\");\nimport bagOfPhotos from \"../styles/bag-of-photos.svg\";\n\n// const closeIcon = require(\"../styles/remove.svg\");\nconst lockIcon = require(\"../styles/lock.svg\");\nconst verifiedTick = require(\"../styles/verified-tick.svg\");\nimport { Event } from \"./types\";\n\ninterface PrepaidCustomerAuthPopupProps {\n event: Event;\n authenticatePrepaidCustomerAPI: string;\n setPrepaidCustomer: Function;\n setUpdatedCart: Function;\n cancelPrepaidAuth: Function;\n cartId: number | null;\n}\n\ninterface PrepaidCustomerAuthPopupState {\n primaryAuthValue: string | null;\n secondaryAuthValue: string | null;\n authenticating: boolean;\n authStatus: string;\n showNeedHelp: boolean;\n showSecondaryAuth: boolean;\n}\n\nclass PrepaidCustomerAuthPopup extends React.Component<\n PrepaidCustomerAuthPopupProps,\n PrepaidCustomerAuthPopupState\n> {\n static contextTypes = {\n cartId: PropTypes.number\n };\n primaryAuthField: React.RefObject;\n secondaryAuthField: React.RefObject;\n\n constructor(props: PrepaidCustomerAuthPopupProps) {\n super(props);\n this.state = {\n primaryAuthValue: \"\",\n secondaryAuthValue: \"\",\n showSecondaryAuth: false,\n authenticating: false,\n authStatus: \"initial\", // < initial | checking | success | unauthorized >\n showNeedHelp: false\n };\n\n this.primaryAuthField = React.createRef();\n this.secondaryAuthField = React.createRef();\n }\n\n primaryAuthFieldName = () => {\n let primaryAuth = this.props.event.prepaidCustomersPrimaryAuthField;\n if (primaryAuth == \"race_number\") primaryAuth = \"student_number\";\n return _.startCase(primaryAuth).toLocaleLowerCase();\n };\n\n secondaryAuthFieldName = () => {\n if (this.props.event.prepaidCustomersSecondaryAuthField == null)\n return null;\n\n let secondaryAuth = this.props.event.prepaidCustomersSecondaryAuthField;\n if (secondaryAuth == \"race_number\") secondaryAuth = \"student_number\";\n return _.startCase(secondaryAuth).toLocaleLowerCase();\n };\n\n hasTwoStepAuth = () => !!this.props.event.prepaidCustomersSecondaryAuthField;\n\n setPrimaryAuthValue = (callback: (() => void) | undefined) => {\n this.setState(\n {\n primaryAuthValue: this.primaryAuthField.current\n ? this.primaryAuthField.current.value.trim()\n : null,\n authStatus: \"initial\",\n showSecondaryAuth: this.hasTwoStepAuth()\n },\n callback\n );\n };\n\n setSecondaryAuthValue = (callback: (() => void) | undefined) => {\n this.setState(\n {\n secondaryAuthValue: this.secondaryAuthField.current\n ? this.secondaryAuthField.current.value.trim()\n : null\n },\n callback\n );\n };\n\n clearFields = () => {\n // TS doesn't allow current?.value on the LHS\n // @ts-ignore\n this.customerEmailField.current.value = null;\n // @ts-ignore\n this.secondaryAuthField.current.value = null;\n this.setState({\n primaryAuthValue: \"\",\n secondaryAuthValue: \"\",\n showSecondaryAuth: false\n });\n };\n\n authenticateCustomer = () => {\n this.setState({ authStatus: \"checking\" }, () =>\n ajax\n .post(this.props.authenticatePrepaidCustomerAPI)\n .send({\n primary_auth_value: this.state.primaryAuthValue,\n secondary_auth_value: this.state.secondaryAuthValue,\n cart_id: this.context.cartId || this.props.cartId\n })\n .then(response => {\n this.setState(\n {\n authStatus: \"success\"\n },\n () => {\n removeParam(\"prepaid-auth\", window.location.href);\n setTimeout(() => {\n this.props.setPrepaidCustomer(response.body.customer);\n this.props.setUpdatedCart(response.body.updatedCart);\n //@ts-ignore\n toastr.success(\"You have been verified\", null, 1000);\n }, 1500);\n }\n );\n })\n .catch(_ => {\n this.setState({\n authStatus: \"unauthorized\",\n primaryAuthValue: null,\n secondaryAuthValue: null,\n showNeedHelp: true\n });\n this.clearFields();\n })\n );\n };\n\n verifyPrimaryAuth = () => {\n this.setPrimaryAuthValue(() => {\n if (!this.hasTwoStepAuth()) {\n this.authenticateCustomer();\n }\n });\n };\n\n verifySecondaryAuth = () => {\n this.setSecondaryAuthValue(() => this.authenticateCustomer());\n };\n\n removePopupParam = () => removeParam(\"prepaid-auth\", window.location.href);\n\n getAuthenticationStatus = () => {\n switch (this.state.authStatus) {\n case \"success\":\n return (\n <>\n \n
\n

You have been verified

\n
\n \n );\n case \"unauthorized\":\n return (\n
\n

\n {`We could not verify your ${this.primaryAuthFieldName()} ${\n this.hasTwoStepAuth()\n ? ` or ${this.secondaryAuthFieldName()}`\n : \"\"\n }. Please try again.`}\n

\n
\n );\n default:\n return <>;\n }\n };\n\n getPrepaidCustomerAuthPopupClassName = () => {\n switch (this.state.authStatus) {\n case \"success\":\n return \"prepaid-first-input success-input\";\n case \"unauthorized\":\n return \"prepaid-first-input failed-input\";\n default:\n return \"prepaid-first-input\";\n }\n };\n\n render() {\n return (\n
\n \n
\n \n this.props.cancelPrepaidAuth()}\n >\n ×\n \n
\n

\n Did you pre-register for a photo pack?\n

\n

\n Please enter your details below to claim your{\" \"}\n <>\n \n {\" \"}\n

\n
\n {!this.hasTwoStepAuth() ? (\n \n ) : (\n
\n
\n

1

\n
\n \n \n

2

\n
\n
\n )}\n {!this.state.showSecondaryAuth ? (\n
\n

\n Enter your {this.primaryAuthFieldName()} to proceed.\n

\n \n this.setState({ primaryAuthValue: e.target.value })\n }\n onKeyPress={target => {\n if (\n target.key === \"Enter\" &&\n !!this.state.primaryAuthValue?.trim()\n ) {\n this.verifyPrimaryAuth();\n }\n }}\n autoFocus={!/Mobi/i.test(window.navigator.userAgent)}\n >\n {this.getAuthenticationStatus()}\n \n \n \n
\n ) : (\n
\n

\n Please enter your {this.secondaryAuthFieldName()} to\n proceed\n

\n \n this.setState({ secondaryAuthValue: e.target.value })\n }\n onKeyPress={target => {\n if (\n target.key === \"Enter\" &&\n !!this.state.secondaryAuthValue?.trim()\n ) {\n this.verifySecondaryAuth();\n }\n }}\n autoFocus={!/Mobi/i.test(window.navigator.userAgent)}\n >\n {this.getAuthenticationStatus()}\n \n \n \n
\n )}\n {this.state.showNeedHelp && (\n Intercom(\"show\")}\n >\n Need Help?\n \n )}\n this.props.cancelPrepaidAuth()}\n >\n Cancel\n

\n
\n
\n
\n \n
\n
\n );\n }\n\n componentWillMount() {\n document.getElementsByTagName(\"body\")[0].classList.add(\"modal-open\");\n }\n\n componentWillUnmount() {\n document.getElementsByTagName(\"body\")[0].classList.remove(\"modal-open\");\n }\n}\n\nexport default PrepaidCustomerAuthPopup;\n\ninterface VerifyButtonTextProps {\n authStatus: string;\n}\n\nclass VerifyButtonText extends React.Component {\n render() {\n return (\n \n {/* To address G-translate issues, wrap text nodes with span tags to prevent errors in React. */}\n {this.props.authStatus == \"checking\" ? (\n \n \n   Please wait\n \n ) : this.props.authStatus == \"success\" ? (\n Verified\n ) : (\n Verify\n )}\n \n );\n }\n}\n","import React, { useState } from \"react\";\n// @ts-ignore\nimport Webcam from \"react-webcam\";\nimport ContrastForegroundUtility from \"../../../utils/ContrastForegroundUtility\";\n\nconst WebcamCapture = ({\n closeWebcam,\n captured,\n primaryColor\n}: {\n closeWebcam: () => void;\n captured: (screenshot: string) => void;\n primaryColor: string;\n}) => {\n const [webcam, setWebcam] = useState();\n const capture = () => {\n // @ts-ignore\n captured(webcam.getScreenshot());\n };\n const videoConstraints = {\n facingMode: \"user\"\n };\n return (\n
\n {\" \"}\n
\n \n Cancel\n \n \n Capture photo\n \n
\n
\n );\n};\n\nexport default WebcamCapture;\n","import React, { useState, useContext, Fragment, useRef } from \"react\";\nimport ReactS3Uploader from \"react-s3-uploader\";\nimport ajax from \"superagent\";\nimport Color from \"color\";\nimport { EventGalleryContext } from \"../index\";\nimport UploadIcon from \"../vectors/UploadIcon\";\nimport SelfieIcon from \"../vectors/SelfieIcon\";\nimport ImageUploadAlert from \"../../ImageUploadAlert\";\nimport ContrastForegroundUtility from \"../../../utils/ContrastForegroundUtility\";\nimport WebcamCapture from \"./WebcamCapture\";\nconst delImage = require(\"../images/delete.svg\");\nconst infoIcon = require(\"../images/icon-info-red.svg\");\nconst placeholderImage = require(\"../../MasterImageSearch/images/placeholder-img-ver2.svg\");\n\nconst SelfieFilter = ({\n availPhotoBundleDiscount,\n updateFilter,\n closePopup,\n selectedImage,\n bundleDiscountInfo,\n setRemoveFilter,\n trackFilterEvents,\n filterPopUpTitle\n}: {\n availPhotoBundleDiscount?: () => void;\n updateFilter: (filter: string | null, clearAllFilters: boolean) => void;\n closePopup: () => void;\n selectedImage: string | null;\n bundleDiscountInfo: boolean;\n setRemoveFilter: (value: string) => void;\n trackFilterEvents?: (filterType: string) => void;\n filterPopUpTitle: \"primary\" | \"secondary\";\n}) => {\n const [previewImage, setPreviewImage] = useState(null);\n const [processing, setProcessing] = useState(false);\n const [uploadProgress, setUploadProgress] = useState(null);\n const [showWebcam, setShowWebcam] = useState(false);\n const context = useContext(EventGalleryContext);\n\n const getSignedUrl = (file: any, callback: (json: any) => void) => {\n ajax\n .get(\"/s3/signed_url\")\n .query({\n bucket: context.selfieSearchS3Bucket,\n contentType: file.type,\n cart_id: context.cart ? context.cart.id : null\n })\n .then(data => {\n callback(JSON.parse(data.text));\n })\n .catch(error => {\n console.error(error);\n });\n };\n\n const imageSelected = (imageFile: any, next: (image: any) => void) => {\n setUploadProgress(0);\n setPreviewImage(URL.createObjectURL(imageFile));\n setProcessing(true);\n next(imageFile);\n };\n\n const uploadAndFilter = (\n imageFile: string | number | boolean | Blob | Buffer\n ) => {\n setPreviewImage(URL.createObjectURL(imageFile));\n setProcessing(true);\n let n = 10;\n setTimeout(() => {\n setUploadProgress(n);\n n += 30;\n }, 100);\n\n ajax\n .post(\"/s3/upload_image\")\n .attach(\"file\", imageFile)\n .field(\"bucket\", context.selfieSearchS3Bucket)\n .then(async response => {\n trackFilterEvents && trackFilterEvents(\"selfie\");\n availPhotoBundleDiscount && (await availPhotoBundleDiscount());\n updateFilter(response.body.url, false);\n setUploadProgress(null);\n });\n };\n\n const uploadBase64Image = (base64Img: RequestInfo) => {\n fetch(base64Img)\n .then(res => res.blob())\n .then(blob =>\n //@ts-ignore\n uploadAndFilter(new File([blob], { type: \"image/png\" }))\n );\n };\n\n return (\n
\n \n
\n
\n \n
\n
\n {filterPopUpTitle == \"primary\" ? (\n

\n {showWebcam ? \"Take a Selfie\" : \"Upload a Selfie\"}\n

\n ) : (\n <>\n

\n It's easy to find your photos!\n

\n

\n Simply add a selfie to view your matching\n photos instantly.\n

\n \n )}\n\n {context.event.isPhotoIndexingDisabled ? (\n
\n \n

\n Selfie search is unavailable for this event\n

\n
\n ) : (\n
\n {bundleDiscountInfo && (\n
\n
\n \n
\n
\n Only photos detected by face recognition can be purchased\n through the photo bundle. Other photos will need to be\n purchased separately.\n
\n
\n )}\n {showWebcam ? (\n setShowWebcam(false)}\n captured={(base64Img: string) => {\n setShowWebcam(!showWebcam);\n uploadBase64Image(base64Img);\n }}\n primaryColor={context.pageConfiguration.primaryColor}\n />\n ) : (\n <>\n
\n {previewImage ? (\n \n ) : selectedImage ? (\n \n \n (\n setRemoveFilter(\"removeSelfie\"),\n updateFilter(null, false)\n )}\n className=\"filter-delete-selfie\"\n >\n \n \n \n ) : (\n \n )}\n {uploadProgress && uploadProgress < 100 ? (\n
\n \n \n {uploadProgress}%\n \n
\n ) : null}\n
\n

\n Please upload or take a photo looking straight ahead to\n find matching photos.\n

\n
\n setShowWebcam(true)}\n >\n {\" \"}\n Take A Selfie\n \n\n {!context.hideUploadSelfie && (\n \n {\" \"}\n Upload Photo\n \n context.cart &&\n context.cart.photoBundleDiscountAvailed &&\n context.cart.photos.length > 0\n ? //@ts-ignore\n (window.location = `${context.event.browsePhotosPath}?clear-cart-prompt=true`)\n : null\n }\n style={{ display: \"none\" }}\n getSignedUrl={getSignedUrl}\n accept=\"image/*\"\n preprocess={imageSelected}\n onProgress={completedPercent => {\n setUploadProgress(completedPercent);\n }}\n onError={console.error}\n onFinish={async result => {\n if (trackFilterEvents) {\n trackFilterEvents(\"selfie\");\n }\n availPhotoBundleDiscount &&\n (await availPhotoBundleDiscount());\n await updateFilter(\n result.signedUrl.split(\"?\")[0],\n false\n );\n setUploadProgress(null);\n }}\n uploadRequestHeaders={{\n \"x-amz-acl\": \"public-read\"\n }}\n scrubFilename={(filename: string) =>\n filename.replace(/[^\\w\\d_\\-.]+/gi, \"\")\n }\n contentDisposition=\"auto\"\n />\n \n )}\n
\n {!previewImage ? : null}\n \n )}\n
\n )}\n
\n
\n
\n
\n
\n );\n};\n\nexport default SelfieFilter;\n","import React, { useCallback } from \"react\";\n\nconst LightBoxNavBtns = ({\n hasPrevImage,\n hasNextImage,\n resetLightBoxImage,\n photoIndex\n}: {\n hasPrevImage: boolean;\n hasNextImage: boolean;\n resetLightBoxImage: (index: number) => void;\n photoIndex: number;\n}) => {\n const prevImage = useCallback(\n e => {\n if (e) e.preventDefault();\n resetLightBoxImage(photoIndex - 1);\n },\n [photoIndex, resetLightBoxImage]\n );\n\n const nextImage = useCallback(\n e => {\n if (e) e.preventDefault();\n resetLightBoxImage(photoIndex + 1);\n },\n [photoIndex, resetLightBoxImage]\n );\n\n const leftArrow = () => {\n return (\n {\n prevImage(e);\n }}\n >\n \n \n );\n };\n const rightArrow = () => {\n return (\n \n \n \n );\n };\n return (\n <>\n {hasPrevImage ? leftArrow() : null}\n {hasNextImage ? rightArrow() : null}\n \n );\n};\n\nexport default LightBoxNavBtns;\n","import React, { useEffect, useContext, useState, useCallback } from \"react\";\nimport { EventGalleryContext } from \"./index\";\nimport Telemetry from \"../../utils/rudderstackAnalytics\";\nimport LightBoxNavBtns from \"./LightBoxNavBtns\";\n\nconst hiddenIcon = require(\"./styles/imgHide.svg\");\nconst heartIcon = require(\"./images/icon-heart-outline.svg\");\nconst likeIcon = require(\"./images/icon-heart-filled.svg\");\n\nconst mapImagePosition = {\n NorthEastGravity: {\n top: 0,\n right: 0\n },\n NorthWestGravity: {\n top: 0,\n left: 0\n },\n SouthEastGravity: {\n bottom: 0,\n right: 0\n },\n SouthWestGravity: {\n bottom: 0,\n left: 0\n },\n SouthGravity: {\n bottom: 0,\n margin: \"auto\",\n left: 0,\n right: 0\n }\n};\n\nconst LightboxImage = ({\n photo,\n hidden,\n setEmailModal,\n liked,\n setLiked,\n handleLikeButtonClick,\n showFavIcon,\n trackGuestFavoriteEmailPrompted,\n hasPrevImage,\n hasNextImage,\n resetLightBoxImage,\n photoIndex\n}: {\n photo: any;\n hidden: boolean;\n setEmailModal: (val: boolean) => void;\n liked: boolean;\n setLiked: (val: boolean) => void;\n handleLikeButtonClick: (\n photoId: number,\n userId: number,\n source: string\n ) => void;\n showFavIcon?: boolean;\n trackGuestFavoriteEmailPrompted: (photoId: number, source: string) => void;\n hasPrevImage: boolean;\n hasNextImage: boolean;\n resetLightBoxImage: (index: number) => void;\n photoIndex: number;\n}) => {\n const eventGalleryContext = useContext(EventGalleryContext);\n const event = eventGalleryContext.event\n ? eventGalleryContext.event\n : photo.album.event;\n const [overlayImageSize, setOverlayImageSize] = useState(0);\n const startMagicZoomIfDOMReady = () => {\n // @ts-ignore\n if (document.getElementById(\"lightboxZoomMagnifier\")) MagicZoom.start();\n else setTimeout(() => startMagicZoomIfDOMReady());\n };\n\n useEffect(() => {\n // @ts-ignore\n MagicZoom.update($(\".MagicZoom\")[0], photo.zoomImg, photo.watermarkedImg);\n }, [startMagicZoomIfDOMReady(), photo]);\n\n // @ts-ignore\n const imageOnLoadHandler = ({ target: img }) => {\n if (event.overlayImageEnabled)\n setOverlayImageSize((event.overlayImageSize * img.width) / 100);\n };\n\n const likeUserId =\n eventGalleryContext.userId || eventGalleryContext.guestUserId;\n\n return (\n
\n {hidden && (\n \n \n \n )}\n {showFavIcon && (\n {\n likeUserId\n ? (handleLikeButtonClick(photo.id, likeUserId, \"lightbox\"),\n setLiked(!liked))\n : setEmailModal(true),\n trackGuestFavoriteEmailPrompted(photo.id, \"lightbox\");\n }}\n >\n \n \n )}\n\n {event.overlayImageEnabled ? (\n \n ) : null}\n \n
\n \n \n \n \n
\n
\n );\n};\n\nexport default LightboxImage;\n","import React from \"react\";\n\nconst SaveIcon = ({ color }: { color: string }) => {\n return (\n \n \n \n );\n};\nexport default SaveIcon;\n","import React, { useEffect, useRef, useState, useContext } from \"react\";\n// @ts-ignore\nimport videojs from \"@mux/videojs-kit\";\nconst hiddenIcon = require(\"./styles/imgHide.svg\");\n// TODO extract to separate file, or load from CDN\nimport \"@mux/videojs-kit/dist/index.css\";\nimport Favorite from \"../BrowseEvent/components/albums/Favorite\";\nimport { EventGalleryContext } from \"./index\";\nimport LightBoxNavBtns from \"./LightBoxNavBtns\";\n\ninterface LightBoxVideoProps {\n video: {\n videoContent: boolean;\n videoMuxPlaybackId: string;\n videoStartTime: string;\n hidden: boolean;\n id: number;\n };\n onClickFavoriteIcon: () => void;\n hidden?: boolean;\n liked: boolean;\n showFavIcon?: boolean;\n hasPrevImage: boolean;\n hasNextImage: boolean;\n resetLightBoxImage: (index: number) => void;\n photoIndex: number;\n}\n\nconst LightBoxVideo: React.FC = ({\n video,\n onClickFavoriteIcon,\n hidden,\n liked,\n showFavIcon,\n hasPrevImage,\n hasNextImage,\n resetLightBoxImage,\n photoIndex\n}) => {\n const videoPlayerRef = useRef(null);\n const [videoId, setVideoId] = useState(video.videoMuxPlaybackId);\n const eventGalleryContext = useContext(EventGalleryContext);\n\n useEffect(() => {\n if (videoPlayerRef.current) {\n videojs(videoPlayerRef.current).currentTime(\n parseInt(video.videoStartTime)\n );\n videojs(videoPlayerRef.current).play();\n }\n }, []);\n\n useEffect(() => {\n if (video.videoMuxPlaybackId !== videoId) {\n setVideoId(video.videoMuxPlaybackId);\n }\n }, [video.videoMuxPlaybackId]);\n\n return (\n
\n {hidden && (\n \n \"Hidden\n \n )}\n \n \n \n {showFavIcon && (\n \n )}\n \n
\n );\n};\n\nexport default LightBoxVideo;\n","import React, { useRef, useEffect, useContext } from \"react\";\nimport * as EmailValidator from \"email-validator\";\nimport { EventGalleryContext } from \"./index\";\nimport Telemetry from \"../../utils/rudderstackAnalytics\";\n\nconst EmailPopup = ({\n closePopup,\n handleLikeButtonClick,\n closeLightBox,\n photoId\n}: {\n closePopup: () => void;\n handleLikeButtonClick: (\n photoId: number,\n userId: number,\n source: string,\n userEmail: string\n ) => void;\n closeLightBox: Function;\n photoId: number;\n}) => {\n const emailInput: any = useRef(null);\n const context = useContext(EventGalleryContext);\n\n const registerEmailAddress = () => {\n const email = emailInput.current.value.toLowerCase();\n\n if (EmailValidator.validate(email)) {\n const requestData = { email: email, event_id: context.event.id };\n\n fetch(context.registerGuestUserAPI, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(requestData)\n })\n .then(response => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n })\n .then(data => {\n const userId = data.user_id;\n const source = \"lightbox\";\n closePopup();\n closeLightBox();\n Telemetry.track(\"event-gallery:guest-favorites-provided-email\", {\n eventId: context.event.id,\n eventName: context.event.name,\n photoId: photoId,\n source: source\n });\n context.setGuestUserId(userId);\n handleLikeButtonClick(photoId, userId, source, email);\n })\n .catch(error => {\n console.error(\"An error occurred while registering the user:\", error);\n //@ts-ignore\n toastr.error(\"An error occurred while registering the user.\");\n });\n } else {\n //@ts-ignore\n toastr.error(\"The email you've entered is invalid.\");\n }\n };\n\n useEffect(() => {\n const handleKeyPress = (event: KeyboardEvent) => {\n if (event.key === \"Enter\") {\n registerEmailAddress();\n }\n };\n\n emailInput.current.addEventListener(\"keypress\", handleKeyPress);\n\n return () => {\n emailInput.current.removeEventListener(\"keypress\", handleKeyPress);\n };\n }, []);\n\n return (\n
\n \n
\n
\n
\n  \n closePopup()}\n >\n ×\n \n
\n
\n
\n

Please enter your email address to save favorites

\n
\n \n

\n Click the Favorites icon in the filters panel to access your\n favorite items at any time\n

\n
\n \n\n

\n You will be notified when all photos have been uploaded.\n

\n
\n registerEmailAddress()}\n >\n Done\n \n
\n
\n
\n
\n \n
\n
\n );\n};\n\nexport default EmailPopup;\n","import React, {\n useContext,\n useState,\n useEffect,\n useCallback,\n Fragment\n} from \"react\";\nimport _, { set } from \"lodash\";\nimport LightboxImage from \"./LightboxImage\";\nimport { EventGalleryContext } from \"./index\";\nimport { FindPhotosGalleryContext } from \"../MasterImageSearch/components/results/PhotosContainer\";\nimport { Photo } from \"./types\";\nimport { addParamToURL, withCartIdParam } from \"../../utils/BrowserHelper\";\nimport Telemetry from \"../../utils/rudderstackAnalytics\";\n// @ts-ignore\nimport ahoy from \"ahoy.js\";\nimport ajax from \"superagent\";\nimport SaveIcon from \"./vectors/SaveIcon\";\nimport TagsSection from \"../BrowseEvent/components/albums/TagsSections\";\n// const LightBoxVideo =\n// require(\"../BrowseEvent/components/albums/LightBoxVideo\").default;\nconst phIcon = require(\"./images/camera.svg\");\nimport HideIcon from \"./vectors/HideIcon\";\nimport HideCancel from \"./vectors/HideCancel\";\nimport LightBoxVideo from \"./LightBoxVideo\";\nimport {\n AddToCart,\n RemoveFromCart,\n LightBoxViewCart\n} from \"./vectors/LightBoxCartIcons\";\nimport ISOToDateTimeFormat from \"../../utils/ISOToDateTimeFormat\";\nimport ContrastForegroundUtility from \"../../utils/ContrastForegroundUtility\";\nimport EmailPopup from \"./EmailPopup\";\nimport { get } from \"jquery\";\n\ninterface Video {\n videoContent: boolean;\n videoMuxPlaybackId: string;\n videoStartTime: string;\n hidden: boolean;\n id: number;\n}\n\nconst LightBox = ({\n photos,\n photoIndex,\n toggleLightBox,\n trackTelemetry = false,\n parentName,\n isAuthorizedForDirectDownloads,\n userId,\n primaryColor,\n curationApiCalled,\n setCurationApiCalled,\n showFavIcon,\n canShowGuestEmailModal\n}: {\n photos: Photo[];\n photoIndex: number;\n toggleLightBox: (index: number) => void;\n trackTelemetry: boolean;\n parentName?: string;\n isAuthorizedForDirectDownloads: boolean;\n userId?: number;\n primaryColor?: string;\n curationApiCalled: boolean;\n setCurationApiCalled: Function;\n showFavIcon?: boolean;\n canShowGuestEmailModal: (photo: any) => void;\n}) => {\n const [photoSaved, setPhotoSaved] = useState(false);\n const getPhoto = photos[photoIndex];\n const [defaultHidden, setDefaultHidden] = useState(getPhoto.hidden);\n const [mediaTags, setMediaTags] = useState<\n Array<{\n name: string;\n tagId: number;\n taggableType: string;\n }>\n >([]);\n const eventGalleryContext = useContext(EventGalleryContext);\n const findPhotosContext = useContext(FindPhotosGalleryContext);\n const cartId = eventGalleryContext.cart\n ? eventGalleryContext.cart.id\n : findPhotosContext.cart\n ? findPhotosContext.cart.id\n : null;\n const isEmbed = eventGalleryContext.isEmbed\n ? eventGalleryContext.isEmbed\n : findPhotosContext.isEmbed;\n\n const [liked, setLiked] = useState(false);\n const [emailModal, setEmailModal] = useState(false);\n\n const resetLightBoxImage = (index: number) => {\n toggleLightBox(index);\n };\n\n const canDownloadPhotos = () =>\n eventGalleryContext.isAuthorizedForDirectDownloads ||\n isAuthorizedForDirectDownloads;\n\n const hasPrevImage = () => {\n return !!photos[photoIndex - 1];\n };\n const hasNextImage = () => {\n return !!photos[photoIndex + 1];\n };\n useEffect(() => {\n if (eventGalleryContext.curationMode) {\n fetch(\n `/api/v1/photos/${getPhoto.id}/is_hidden?user_id=${\n userId || eventGalleryContext.userId\n }`\n )\n .then(response => response.json())\n .then(data => setDefaultHidden(data.is_hidden));\n }\n if (canDownloadPhotos()) {\n fetch(\n `/api/v1/photos/${getPhoto.id}/is_saved?user_id=${\n userId || eventGalleryContext.userId\n }`\n )\n .then(response => response.json())\n .then(data => setPhotoSaved(data.is_saved));\n }\n if (eventGalleryContext.canManageTags) {\n getTags();\n }\n if (eventGalleryContext.userId || eventGalleryContext.guestUserId) {\n fetch(\n `/api/v1/photos/${getPhoto.id}/is_liked?user_id=${\n userId ||\n eventGalleryContext.userId ||\n eventGalleryContext.guestUserId\n }`\n )\n .then(response => response.json())\n .then(data => setLiked(data.is_liked));\n }\n }, [photoIndex]);\n\n const handleSave = () => {\n ajax\n .post(\n addParamToURL(\n withCartIdParam(\n `/api/v1/photos/${getPhoto.id}/save`,\n cartId,\n isEmbed\n ),\n \"user_id\",\n userId || eventGalleryContext.userId\n )\n )\n .then(() => {\n setPhotoSaved(true);\n // @ts-ignore\n toastr.success(\"Photo saved\", null, { timeOut: 1000 });\n });\n };\n\n const handleUnsave = () => {\n ajax\n .delete(\n addParamToURL(\n withCartIdParam(`/api/v1/photos/${getPhoto.id}/unsave`, cartId),\n \"user_id\",\n userId || eventGalleryContext.userId\n )\n )\n .then(() => {\n setPhotoSaved(false);\n // @ts-ignore\n toastr.success(\"Photo unsaved!\", null, { timeOut: 1000 });\n });\n };\n\n useEffect(() => {\n if (trackTelemetry)\n ahoy.track(\"photoView\", {\n photo_id: getPhoto.id,\n album_id: getPhoto.album.id,\n event_id: getPhoto.album.eventId\n });\n\n document\n .getElementsByTagName(\"body\")[0]\n .classList.add(\"modal-open\", \"egm-single-ph-open\");\n // eventGalleryContext.canManageTags\n // ? null\n // : document.body.addEventListener(\"touchmove\", preventDefault, {\n // passive: false\n // });\n\n return () => {\n document\n .getElementsByTagName(\"body\")[0]\n .classList.remove(\"modal-open\", \"egm-single-ph-open\");\n // eventGalleryContext.canManageTags\n // ? null\n // : document.body.removeEventListener(\"touchmove\", preventDefault);\n };\n }, []);\n\n const getTags = () => {\n ajax\n .get(`/api/v1/content_tags/${getPhoto.id}`)\n .then(response => setMediaTags(response.body.appliedTags))\n .catch(error => {\n // @ts-ignore\n toastr.error(\"There was an error loading tags\");\n console.error(error);\n });\n };\n\n const colorTheme = () =>\n primaryColor\n ? primaryColor\n : eventGalleryContext.pageConfiguration\n ? eventGalleryContext.pageConfiguration.primaryColor\n : \"#259FA5\";\n\n const handleCloseLightBox = () => (\n setCurationApiCalled(false),\n toggleLightBox(-1),\n eventGalleryContext.curationMode &&\n curationApiCalled &&\n eventGalleryContext.reloadAlbumPhotos(true)\n );\n\n const curatePhoto = async () => {\n const hiddenVal = curationApiCalled ? defaultHidden : getPhoto.hidden;\n const action = hiddenVal == true ? \"unhide\" : \"hide\";\n try {\n const res = await $.ajax({\n url: `/api/v1/photos/${action}`,\n type: \"POST\",\n data: {\n photo_ids: [getPhoto.id],\n event_id: getPhoto.album.eventId\n }\n });\n\n //@ts-ignore\n toastr.success(\"Successfully updated\");\n setDefaultHidden(!hiddenVal);\n } catch (err) {\n //@ts-ignore\n toastr.error(\"Failed to update\");\n console.error(err);\n }\n };\n\n const handleVideoLike = () => {\n if (eventGalleryContext.guestUserId || eventGalleryContext.userId) {\n handleLikeButtonClick(\n getPhoto.id,\n //@ts-ignore\n eventGalleryContext.userId || eventGalleryContext.guestUserId,\n \"lightbox\"\n );\n setLiked(!liked);\n } else {\n setEmailModal(true);\n trackGuestFavoriteEmailPrompted(getPhoto.id, \"lightbox\");\n }\n };\n\n const addLike = async (\n photoId: number,\n userId: number,\n source: string,\n userEmail: string | null\n ) => {\n const url = `${eventGalleryContext.addPhotoToFavoritesAPI}?photo_id=${photoId}&user_id=${userId}`;\n try {\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n }\n });\n if (userEmail) {\n eventGalleryContext.setGuestUserCart(\n userId,\n userEmail,\n eventGalleryContext.cart\n );\n }\n if (response.ok) {\n setLiked(true);\n trackAddToFavorite({ photoId, source });\n if (\n eventGalleryContext.filterSelections.favorite &&\n (eventGalleryContext.userId || eventGalleryContext.guestUserId)\n ) {\n }\n } else {\n const data = await response.json();\n if (response.status === 409) {\n //@ts-ignore\n toastr.error(data.error);\n trackAddToFavorite({ photoId, source });\n console.warn(\"Photo is already liked.\");\n } else {\n console.error(\"Error adding like:\", data.error);\n }\n }\n } catch (error) {\n console.error(\"Error adding like:\", error);\n }\n };\n\n const removeLike = async (photoId: number, userId: number) => {\n const url = `${eventGalleryContext.removePhotoFromFavoritesAPI}?photo_id=${photoId}&user_id=${userId}`;\n\n try {\n const response = await fetch(url, {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json\"\n }\n });\n\n if (response.ok) {\n setLiked(false);\n } else {\n const data = await response.json();\n console.error(\"Error removing like:\", data.error);\n }\n } catch (error) {\n console.error(\"Error removing like:\", error);\n }\n };\n\n const handleLikeButtonClick = async (\n photoId: number,\n userId: number,\n source: string,\n userEmail?: string\n ) => {\n if (!eventGalleryContext.guestUserId && !eventGalleryContext.userId) {\n await addLike(photoId, userId, source, userEmail ? userEmail : null);\n } else {\n if (liked) {\n removeLike(photoId, userId);\n } else {\n addLike(photoId, userId, source, userEmail ? userEmail : null);\n }\n }\n };\n\n const trackAddToFavorite = ({\n photoId,\n source\n }: {\n photoId: number;\n source: string;\n }) => {\n Telemetry.track(\"event-gallery:add-to-favorites\", {\n eventId: eventGalleryContext.event.id,\n eventName: eventGalleryContext.event.name,\n photoId: photoId,\n source: source\n });\n };\n\n const trackGuestFavoriteEmailPrompted = (photoId: number, source: string) => {\n Telemetry.track(\"event-gallery:guest-favorites-email-prompted\", {\n eventId: eventGalleryContext.event.id,\n eventName: eventGalleryContext.event.name,\n photoId: photoId,\n source: source\n });\n };\n\n return (\n <>\n \n
\n
\n
\n handleCloseLightBox()}\n >\n ×\n \n
\n
\n
\n \n
\n
\n
\n \n {photos[photoIndex] && photos[photoIndex].videoContent ? (\n
\n
\n ) : (\n
\n
\n
\n \n
\n {eventGalleryContext.canManageTags && (\n <>\n \n \n )}\n
\n
\n
\n \n {emailModal && (\n {\n // add class to handle overlapping issue on ios devices\n document.body.classList.remove(\"fav-email-popup-open\");\n setEmailModal(false);\n }}\n handleLikeButtonClick={handleLikeButtonClick}\n closeLightBox={() => {\n setEmailModal(false);\n }}\n photoId={getPhoto.id}\n />\n )}\n \n );\n};\n\nconst LightBoxHeader = ({\n photo,\n primaryColor,\n trackTelemetry,\n parentName,\n canShowGuestEmailModal\n}: {\n photo: any;\n primaryColor?: string;\n trackTelemetry: boolean;\n parentName?: string;\n canShowGuestEmailModal: (photo: any) => void;\n}) => {\n const eventGalleryContext = useContext(EventGalleryContext);\n const findPhotosContext = useContext(FindPhotosGalleryContext);\n const event = eventGalleryContext.event\n ? eventGalleryContext.event\n : photo.album.event;\n const freeEvent = () => event && event.price === 0;\n const cartHasPhotos = () =>\n eventGalleryContext.cart && eventGalleryContext.cart.photos != undefined\n ? eventGalleryContext.cart.photos.length > 0\n : findPhotosContext.cart && findPhotosContext.cart.photos != undefined\n ? findPhotosContext.cart.photos.length > 0\n : false;\n const cartId = eventGalleryContext.cart\n ? eventGalleryContext.cart.id\n : findPhotosContext.cart\n ? findPhotosContext.cart.id\n : null;\n const isEmbed = eventGalleryContext.isEmbed\n ? eventGalleryContext.isEmbed\n : findPhotosContext.isEmbed;\n\n const isPrepaid = () => {\n return (\n eventGalleryContext.cart &&\n (eventGalleryContext.arePrepaidPhotosAvailable ||\n _.includes(eventGalleryContext.cart.prepaidPhotos, photo.id))\n );\n };\n\n const colorTheme = () =>\n primaryColor\n ? primaryColor\n : eventGalleryContext.pageConfiguration\n ? eventGalleryContext.pageConfiguration.primaryColor\n : \"#259FA5\";\n\n return (\n \n
\n
\n {freeEvent() ? (\n

Free

\n ) : isPrepaid() ? (\n
\n \n {eventGalleryContext.event.displayPrice}{\" \"}\n \n \n {eventGalleryContext.event.currency}\n \n Free \n
\n ) : (\n

\n {event.displayPrice}{\" \"}\n {event.currency}\n

\n )}\n\n

*for High quality digital download

\n
\n\n
\n {photo.isSelected ? (\n {\n e.preventDefault();\n if (trackTelemetry) {\n Telemetry.track(\"event-gallery:remove-from-cart\", {\n eventId: event.id,\n eventName: event.name,\n photoId: photo.id,\n cartId: cartId,\n source: \"lightbox\",\n embeddedMode: isEmbed\n });\n }\n eventGalleryContext.cart\n ? eventGalleryContext.removePhotoFromCart(photo)\n : findPhotosContext.removePhotoFromCart(photo);\n }}\n className=\"btn-rem-cart geo-btn--caps\"\n style={{\n border: `1px solid ${ContrastForegroundUtility.lbFgColor(\n colorTheme()\n )}`\n }}\n >\n \n \n   Remove\n \n
\n ) : (\n {\n e.preventDefault();\n if (trackTelemetry) {\n Telemetry.track(\"event-gallery:add-to-cart\", {\n eventId: event.id,\n eventName: event.name,\n photoId: photo.id,\n cartId: cartId,\n source: \"lightbox\",\n embeddedMode: isEmbed\n });\n }\n if (eventGalleryContext.canShowEmailPopup()) {\n canShowGuestEmailModal(photo);\n } else if (eventGalleryContext.event) {\n eventGalleryContext.addPhotoToCart(photo);\n } else {\n findPhotosContext.addPhotoToCart(photo);\n }\n }}\n className=\"btn-add-cart geo-btn--caps\"\n style={{\n background: ContrastForegroundUtility.lbFgColor(colorTheme())\n }}\n >\n \n \n   Add to cart\n \n
\n )}\n {cartHasPhotos() ? (\n \n \n \n   View cart\n
\n \n ) : null}\n \n \n
\n \n );\n};\n\nconst LightBoxFooter = ({\n photo,\n isAuthorizedForDirectDownloads,\n userId,\n photoSaved,\n handleSave,\n handleUnsave,\n primaryColor,\n defaultHidden,\n setCurationApiCalled,\n curatePhoto\n}: {\n photo: Photo;\n isAuthorizedForDirectDownloads: boolean;\n userId?: number;\n photoSaved: boolean;\n handleSave: () => void;\n handleUnsave: () => void;\n primaryColor?: string;\n defaultHidden: boolean;\n setCurationApiCalled: Function;\n curatePhoto: Function;\n}) => {\n const eventGalleryContext = useContext(EventGalleryContext);\n\n const canDownloadPhotos = () =>\n eventGalleryContext.isAuthorizedForDirectDownloads ||\n isAuthorizedForDirectDownloads;\n\n const toggleSave = () => (photoSaved ? handleUnsave() : handleSave());\n\n const colorThemeBorder = () =>\n photoSaved\n ? `gray`\n : primaryColor\n ? primaryColor\n : eventGalleryContext.pageConfiguration.primaryColor\n ? eventGalleryContext.pageConfiguration.primaryColor\n : `#259fa5`;\n\n const colorTheme = () =>\n primaryColor\n ? primaryColor\n : eventGalleryContext.pageConfiguration.primaryColor\n ? eventGalleryContext.pageConfiguration.primaryColor\n : `#259fa5`;\n\n const hidePhotographersFilter = () =>\n eventGalleryContext.hidePhotographersFilter ||\n photo.hidePhotographersFilter;\n\n return (\n
\n
\n
\n {!hidePhotographersFilter() && photo.album.photographerName && (\n

\n {\" \"}\n \n {photo.album.photographerName}{\" \"}\n \n \n

\n )}\n {photo.dateTimeTaken && (\n \n {ISOToDateTimeFormat(photo.dateTimeTaken)}\n \n )}\n
\n\n \n {canDownloadPhotos() ? (\n \n toggleSave()}\n style={{\n border: `1px solid ${ContrastForegroundUtility.lbFgColor(\n colorThemeBorder()\n )}`\n }}\n >\n \n \n \n \n \n \n ) : null}\n {eventGalleryContext.curationMode && (\n (curatePhoto(), setCurationApiCalled(true))}\n >\n {defaultHidden ? (\n \n ) : (\n \n )}\n \n )}\n
\n
\n \n Report Content\n \n \n );\n};\n\nexport default LightBox;\n","import React, { useState, useContext, useEffect } from \"react\";\nimport { Album, Event, Photo } from \"./types\";\n// @ts-ignore\nimport Gallery from \"react-grid-gallery\";\nimport _ from \"lodash\";\n// @ts-ignore\nimport ahoy from \"ahoy.js\";\nimport LightBox from \"./LightBox\";\nimport { EventGalleryContext } from \"./index\";\nimport { FindPhotosGalleryContext } from \"../MasterImageSearch/components/results/PhotosContainer\";\nconst playIcon = require(\"./styles/play.svg\");\nconst hideIcon = require(\"./styles/imgHide.svg\");\nimport Telemetry from \"../../utils/rudderstackAnalytics\";\n\nimport {\n CartOutline,\n CartFilled\n} from \"../BrowseEvent/components/vectors/AddToCartIcon\";\nimport {\n CheckOutline,\n CheckFilled\n} from \"../BrowseEvent/components/vectors/CheckIcon\";\n\nconst MobilePhotoGallery = ({\n photos,\n trackTelemetry,\n isAuthorizedForDirectDownloads,\n userId,\n reset,\n primaryColor,\n parentName,\n showFavIcon,\n canShowGuestEmailModal\n}: {\n photos: Photo[];\n trackTelemetry: boolean;\n isAuthorizedForDirectDownloads: boolean;\n userId?: number;\n reset?: boolean;\n primaryColor?: string;\n parentName?: string;\n showFavIcon?: boolean;\n canShowGuestEmailModal: (photo: any) => void;\n}) => {\n const [photoIndex, setPhotoIndex] = useState(-1);\n const [curationApiCalled, setCurationApiCalled] = useState(false);\n const [currentMedia, setCurrentMedia] = useState<{\n mediaId: number;\n currentState: boolean;\n }>();\n const [showLightBox, setShowLightBox] = useState(false);\n const [photosState, setphotos] = useState([]);\n const context = useContext(EventGalleryContext);\n const findPhotosContext = useContext(FindPhotosGalleryContext);\n\n useEffect(() => {\n if (reset) {\n setShowLightBox(false), setPhotoIndex(-1);\n }\n setphotos(photos);\n }, [photos]);\n\n interface ImageComponentProps {\n props: {\n index: number;\n item: {\n videoContent: any;\n videoDuration: string | number;\n thumbnail: string | undefined;\n id: number;\n album: { name: string };\n hidden: boolean;\n isSelected: boolean;\n };\n imageProps: JSX.IntrinsicAttributes &\n React.ClassAttributes &\n React.ImgHTMLAttributes;\n };\n handleImageSelect: ({\n photo,\n index\n }: {\n photo: any;\n index: number;\n }) => void;\n primaryColor: string;\n shouldShowCheckIcon: boolean;\n }\n\n const ImageComponent = ({\n props,\n handleImageSelect,\n primaryColor,\n shouldShowCheckIcon\n }: ImageComponentProps) => {\n const ImageSelectIcon = (\n {\n e.stopPropagation();\n handleImageSelect({ photo: props.item, index: props.index });\n }}\n >\n {shouldShowCheckIcon ? (\n props.item.isSelected ? (\n \n ) : (\n \n )\n ) : props.item.isSelected ? (\n \n ) : (\n \n )}\n \n );\n\n return (\n
\n {props.item.hidden && (\n \n \n \n )}\n {props.item.videoContent && (\n \n )}\n {ImageSelectIcon}\n \n
\n );\n };\n\n const updatePhotoInCart = (photo: any) => {\n if (photo.isSelected) {\n if (trackTelemetry) {\n Telemetry.track(\"event-gallery:remove-from-cart\", {\n eventId: context.event?.id,\n eventName: context.event?.name,\n photoId: photo.id,\n cartId: context.cart?.id,\n source: \"thumbnail\",\n embeddedMode: context.isEmbed\n });\n }\n if (context.cart) context.removePhotoFromCart(photo);\n else findPhotosContext.removePhotoFromCart(photo);\n } else {\n if (trackTelemetry) {\n Telemetry.track(\"event-gallery:add-to-cart\", {\n eventId: context.event?.id,\n eventName: context.event?.name,\n photoId: photo.id,\n cartId: context.cart?.id,\n source: \"thumbnail\",\n embeddedMode: context.isEmbed\n });\n }\n if (context.canShowEmailPopup()) {\n canShowGuestEmailModal(photo);\n } else if (context.event) {\n // considering this context is from MobileEventGallery\n // Needs to be Refactored\n context.addPhotoToCart(photo, true);\n } else {\n findPhotosContext.addPhotoToCart(photo);\n }\n }\n };\n\n useEffect(() => {\n if (photoIndex >= 0) {\n setShowLightBox(true);\n }\n }, [photoIndex]);\n\n const toggleLightBox = (index: number) => {\n if (photos[photoIndex] && photos[photoIndex].videoContent) {\n setShowLightBox(false);\n }\n setPhotoIndex(index);\n if (index == -1) {\n setShowLightBox(false);\n }\n if (index >= 0) {\n if (!context.guestUserId) {\n setCurrentMedia({\n mediaId: photos[index].id,\n currentState: photos[index].favorite\n });\n }\n if (trackTelemetry) {\n ahoy.track(\"albumInteraction\", {\n secondary_type: \"openedPhotoLightbox\",\n album_id: photos[index].album.id,\n event_id: photos[index].album.eventId\n });\n Telemetry.track(\"event-gallery:opened-lightbox\", {\n eventId: context.event.id,\n eventName: context.event.name,\n photoId: photos[index].id,\n embeddedMode: context.isEmbed\n });\n }\n }\n };\n\n const contextMenu = (e: any) => {\n e.preventDefault();\n return false;\n };\n\n const tagStyle = {\n display: \"inline\",\n padding: \".2em .6em .3em\",\n fontSize: \"60%\",\n fontWeight: \"600\",\n lineHeight: \"1\",\n color: \"#FFF\",\n background: \"rgba(7,36,22,.6)\",\n textAlign: \"center\",\n whiteSpace: \"nowrap\",\n verticalAlign: \"baseline\",\n borderRadius: \".25em\"\n };\n\n const handleImageSelect = ({\n photo,\n index\n }: {\n photo: any;\n index: number;\n }) => {\n context.curationMode\n ? //@ts-ignore\n (setphotos(context.getPhotoId(photo, index, photos)),\n context.getPhotoId(photo, index, photos))\n : updatePhotoInCart(photo);\n };\n\n return (\n
\n 0 ? photosState : photos}\n rowHeight={120}\n margin={5}\n enableLightbox={false}\n enableImageSelection={false}\n onClickThumbnail={(index: number) => {\n toggleLightBox(index);\n }}\n tagStyle={tagStyle}\n tileViewportStyle={customThumbViewportStyle}\n thumbnailStyle={customThumbStyle}\n selectedIconColor={\n primaryColor\n ? primaryColor\n : context.pageConfiguration\n ? context.pageConfiguration.primaryColor\n : \"#259FA5\"\n }\n enableKeyboardInput={true}\n onContextMenu={contextMenu}\n onRender={() => null}\n thumbnailImageComponent={(props: any) => {\n return (\n \n );\n }}\n />\n {showLightBox && (\n 0 ? photosState : photos}\n photoIndex={photoIndex}\n toggleLightBox={toggleLightBox}\n trackTelemetry={trackTelemetry}\n isAuthorizedForDirectDownloads={isAuthorizedForDirectDownloads}\n userId={userId}\n primaryColor={primaryColor}\n curationApiCalled={curationApiCalled}\n setCurationApiCalled={(val: boolean) => setCurationApiCalled(val)}\n parentName={parentName}\n showFavIcon={showFavIcon}\n canShowGuestEmailModal={canShowGuestEmailModal}\n />\n )}\n
\n );\n};\n\nconst customThumbViewportStyle = function () {\n // @ts-ignore\n const item = this.props.item;\n return {\n width: item.vwidth,\n minWidth: 60,\n height: item.height,\n overflow: \"hidden\",\n position: \"initial\"\n };\n};\n\nconst customThumbStyle = function () {\n // @ts-ignore\n const item = this.props.item;\n return {\n cursor: \"pointer\",\n width: item.scaletwidth,\n height: item.height,\n marginLeft: item.marginLeft,\n marginTop: 0,\n WebkitTouchCallout: \"none\"\n };\n};\n\nexport default MobilePhotoGallery;\n","import React from \"react\";\nimport { Photo } from \"./types\";\nimport _ from \"lodash\";\nimport InfiniteScroll from \"react-infinite-scroll-component\";\nimport MobilePhotoGallery from \"./MobilePhotoGallery\";\nconst gssNewLoader = require(\"../../assets/gss-loader.gif\");\n\nconst Photos = ({\n photos,\n hasMore,\n loadPhotos,\n trackTelemetry,\n isAuthorizedForDirectDownloads,\n userId,\n primaryColor,\n reset,\n parentName,\n showFavIcon,\n canShowGuestEmailModal\n}: {\n photos: Photo[];\n hasMore: boolean;\n loadPhotos: () => void;\n trackTelemetry: boolean;\n isAuthorizedForDirectDownloads: boolean;\n userId?: number;\n primaryColor?: string;\n reset?: boolean;\n parentName?: string;\n showFavIcon?: boolean;\n canShowGuestEmailModal: (photo: any) => void;\n}) => {\n return (\n
\n \n \n
\n }\n >\n \n \n \n );\n};\n\nexport default Photos;\n","import React, { Component } from \"react\";\nimport Color from \"color\";\nimport ContrastForegroundUtility from \"../../utils/ContrastForegroundUtility\";\n\ninterface StyleOverridesMobileProps {\n primaryColor: string;\n secondaryColor: string;\n accentColor: string;\n}\n\ninterface StyleOverridesMobileState {\n fgColor: string;\n fgSecondaryColor: string;\n fgAccentColor: string;\n mobileBannerColor: string;\n gradientColor: string;\n fgTextColor: string;\n}\n\nclass StyleOverridesMobile extends Component<\n StyleOverridesMobileProps,\n StyleOverridesMobileState\n> {\n constructor(props: StyleOverridesMobileProps) {\n super(props);\n this.state = {\n fgColor: \"\",\n fgAccentColor: \"\",\n fgSecondaryColor: \"\",\n mobileBannerColor: \"\",\n gradientColor: \"\",\n fgTextColor: \"\"\n };\n }\n\n public componentDidMount() {\n this.setState({\n fgColor: ContrastForegroundUtility.fgColor(this.props.primaryColor),\n fgTextColor: ContrastForegroundUtility.fgColor(\n ContrastForegroundUtility.lightenColor(this.props.primaryColor)\n ),\n fgAccentColor: ContrastForegroundUtility.fgColor(this.props.accentColor),\n fgSecondaryColor: ContrastForegroundUtility.fgColor(\n this.props.secondaryColor\n ),\n mobileBannerColor: ContrastForegroundUtility.lightenColor(\n this.props.primaryColor\n ),\n gradientColor: Color(this.props.primaryColor).darken(0.2).hex()\n });\n }\n\n render() {\n return (\n \n );\n }\n}\n\nexport default StyleOverridesMobile;\n","import React, { useContext } from \"react\";\nimport { Album, Event } from \"./types\";\nimport \"./styles/header.css\";\nimport { EventGalleryContext } from \"./index\";\nconst shareIcon = require(\"./styles/share.svg\");\n\nconst backIcon = require(\"./styles/back.svg\");\n\nconst Header = ({\n event,\n albumName,\n navigateToPreviousURL,\n isExpanded = false,\n linkedEventsAvailable,\n promptLinkedEventsPopup,\n showShareGallery,\n albumModeID\n}: {\n event: Event;\n albumName: string;\n navigateToPreviousURL: () => void;\n isExpanded: boolean;\n linkedEventsAvailable: boolean;\n promptLinkedEventsPopup: () => void;\n showShareGallery: Function;\n albumModeID: string | null;\n}) => {\n const context = useContext(EventGalleryContext);\n const isNavigatedFromOrgGallery = localStorage.getItem(\n \"isNavigatedFromOrgGallery\"\n )\n ? JSON.parse(localStorage.getItem(\"isNavigatedFromOrgGallery\") as string)\n : false;\n \n const canShowBackBtn = context.isEmbed ? isNavigatedFromOrgGallery : true;\n\n return (\n
\n
\n
\n
\n \n {!albumModeID && canShowBackBtn ? (\n
\n \n
\n ) : null}\n
\n {albumModeID && (\n \n

\n {\" \"}\n {event.name}{\" \"}\n

\n
\n )}\n

\n {albumModeID ? albumName : event.name}\n

\n \n {event.date + \" \"}\n \n {\"• \" + event.location}\n \n {event.country}\n \n {linkedEventsAvailable && (\n promptLinkedEventsPopup()}\n >\n Linked Events\n

\n )}\n
\n
\n
\n
\n
\n \n );\n};\nexport default Header;\n","import React, { useState, useEffect, useContext } from \"react\";\nimport { Album, Photo } from \"./types\";\nimport ajax from \"superagent\";\nimport Photos from \"./Photos\";\nimport \"./styles/albums-list.css\";\nimport { EventGalleryContext } from \"./index\";\nimport { withCartIdParam } from \"../../utils/BrowserHelper\";\nimport _ from \"lodash\";\n\nconst leftArrIcon = require(\"./styles/left-arrow.svg\");\n\nconst AlbumPhotos = ({\n album,\n toggleAlbum,\n eventPassword,\n canShowGuestEmailModal\n}: {\n album: Album;\n toggleAlbum: (album: Album | null) => void;\n eventPassword: string;\n canShowGuestEmailModal: (photo: any) => boolean;\n}) => {\n const [photos, setPhotos] = useState([]);\n const [nextPage, setNextPage] = useState(1);\n const [totalCount, setTotalCount] = useState(0);\n const context = useContext(EventGalleryContext);\n\n useEffect(() => {\n if (context.reset == true) {\n setNextPage(1);\n setTotalCount(0);\n }\n }, [context.reset]);\n\n useEffect(() => {\n if (nextPage == 1 && context.guestUserId) {\n loadPhotos(true);\n } else if (nextPage == 1) {\n loadPhotos(false);\n }\n }, [nextPage]);\n\n useEffect(() => {\n const updatedPhotos = galleryPhotos(photos);\n setPhotos(updatedPhotos);\n context.setPhotos(updatedPhotos);\n }, [context.listOfMediaId.length, context.cart?.photos.length]);\n\n const loadPhotos = async (reset: boolean = false) => {\n await photosRequest(\n album.links.photos,\n nextPage,\n context.cart ? context.cart.id : null,\n eventPassword\n )\n .then(response => {\n setPhotos(previousPhotos => {\n const photos = _.concat(\n context.reset || reset ? [] : previousPhotos,\n response.body.photos\n );\n return galleryPhotos(photos);\n });\n setNextPage(response.body.meta.nextPage);\n setTotalCount(response.body.meta.totalCount);\n context.reloadAlbumPhotos(false);\n })\n .catch(err => console.log(err));\n };\n\n const photosRequest = async (\n link: string,\n nextPage: number | null,\n cartId: number,\n eventPassword: string\n ) => {\n let req = ajax.get(withCartIdParam(link, cartId)).query({\n page: nextPage,\n user_id: context.userId || context.guestUserId\n });\n\n if (eventPassword !== \"\") {\n req = req.query({\n event_password: eventPassword\n });\n }\n\n return req;\n };\n\n const isSelected = (photo: Photo) => {\n return _.includes(\n context.curationMode\n ? context.listOfMediaId.map(item => item.id)\n : context.cart\n ? context.cart.photos\n : [],\n photo.id\n );\n };\n const galleryPhotos = (photos: any) => {\n return photos.map((photo: any) => {\n return {\n ...photo,\n ...(photo.timeTaken\n ? {\n tags: [\n {\n title: \"Time\",\n value: photo.timeTaken\n }\n ]\n }\n : {}),\n isSelected: isSelected(photo),\n src: \"\",\n disableContextMenu: true\n };\n });\n };\n\n return (\n
\n
\n toggleAlbum(null)}\n >\n \n \n
\n

{album.name}

\n

\n {album.photosCount} photos{\" \"}\n {!context.hidePhotographersFilter && (\n \n •  by{\" \"}\n \n {album.photographerName}\n \n \n )}\n

\n
\n
\n {photos && (\n \n )}\n
\n );\n};\nexport default AlbumPhotos;\n","import React from \"react\";\n\nconst AlbumsIcon = ({ color }: { color: string }) => {\n return (\n \n \n \n \n );\n};\nexport default AlbumsIcon;\n","import React, { useContext, useState } from \"react\";\nimport { Album } from \"./types\";\nimport \"./styles/albums-list.css\";\nimport AlbumsIcon from \"./vectors/AlbumsIcon\";\nimport { EventGalleryContext } from \"./index\";\nconst rightArrIcon = require(\"./styles/right-arrow.svg\");\n// @ts-ignore\nimport ahoy from \"ahoy.js\";\n\nconst AlbumsList = ({\n albums,\n toggleAlbum\n}: {\n albums: Album[];\n toggleAlbum: (album: Album | null) => void;\n}) => {\n const context = useContext(EventGalleryContext);\n const openAlbum = (album: Album) => {\n ahoy.track(\"albumInteraction\", {\n secondary_type: \"expandAlbum\",\n album_id: album.id,\n event_id: album.eventId\n });\n toggleAlbum(album);\n };\n return (\n
\n
\n
\n {\" \"}\n Albums\n
\n
\n {albums.map(album => (\n {\n openAlbum(album);\n }}\n >\n
\n

\n {album.name}\n openAlbum(album)}\n >\n \n \n

\n

\n {album.photosCount} photos{\" \"}\n {!context.hidePhotographersFilter && (\n <>\n •  by \n {album.photographerName}\n \n )}\n

\n
\n
\n ))}\n \n );\n};\nexport default AlbumsList;\n","import React, { useContext } from \"react\";\nimport { EventGalleryContext } from \"../index\";\nconst noImgIcon = require(\"../images/dark-no-imgs.svg\");\nconst clearIcon = require(\"../styles/clear-icon.svg\");\n\nconst AlbumsIcon = () => {\n const context = useContext(EventGalleryContext);\n return (\n
\n
\n \"\"\n

\n No photos found under the selected filters\n

\n (\n context.setRemoveFilter(\"clearAllFilters\"), context.resetFilter()\n )}\n >\n \"\" Clear filters\n \n
\n
\n );\n};\nexport default AlbumsIcon;\n","import React, { useState, useContext, useEffect, useRef } from \"react\";\nimport { Album, Cart, FilterSelections, Photo } from \"./types\";\nimport AlbumPhotos from \"./AlbumPhotos\";\nimport ajax from \"superagent\";\nimport { EventGalleryContext } from \"./index\";\nimport AlbumsList from \"./AlbumsList\";\nimport Photos from \"./Photos\";\nimport NoMatchingPhotos from \"./Filters/NoMatchingPhotos\";\nimport _ from \"lodash\";\nimport { removeParam, addParam } from \"../../utils/BrowserHelper\";\nconst gssNewLoader = require(\"../../assets/gss-loader.gif\");\nimport Telemetry from \"../../utils/rudderstackAnalytics\";\nimport SaveCart from \"../SaveCartEmailPopup\";\n\ninterface Like {\n photoId: number;\n userId: number;\n}\n\nconst GalleryBody = ({\n albums,\n eventPhotosAPI,\n openedAlbum,\n userInputPassword,\n listOfMediaId,\n userId,\n setGuestUserCart,\n handlePhotoAddedToCart,\n photoAddedToCart,\n removePhotoAddedToCart\n}: {\n albums: Album[];\n eventPhotosAPI: string;\n openedAlbum: Album | null;\n userInputPassword: string;\n listOfMediaId: Array<{ id: number; hidden: boolean }>;\n userId: number | null;\n setGuestUserCart: (userId: number, userEmail: string, cart: Cart) => void;\n handlePhotoAddedToCart: (photo: any) => void;\n photoAddedToCart: any;\n removePhotoAddedToCart: () => void;\n}) => {\n const [activeAlbum, toggleAlbum] = useState(openedAlbum);\n const [filteredPhotos, setFilteredPhotos] = useState([]);\n const [nextPage, setNextPage] = useState(1);\n const [loading, setLoading] = useState(true);\n const [showSaveCartModal, setShowSaveCartModal] = useState(null);\n const context = useContext(EventGalleryContext);\n\n const mounted = useRef(true);\n\n const photosRequest = (\n url: string,\n filters: FilterSelections,\n pageNumber: number,\n userIdProp?: number\n ) => {\n let req = ajax.get(url).query({\n page: pageNumber,\n user_id: userId || userIdProp || context.guestUserId,\n cartId: context.cart ? context.cart.id : null\n });\n\n if (userInputPassword !== \"\") {\n req = req.query({\n event_password: userInputPassword\n });\n }\n\n if (filters.photoTime.active) {\n req = req.query({\n minute_from: filters.photoTime.minuteFrom,\n minute_to: filters.photoTime.minuteTo\n });\n }\n\n if (filters.referenceImage) {\n req = req.query({\n reference_image: filters.referenceImage\n });\n }\n\n if (filters.albums.length > 0) {\n const albumIdsString = filters.albums\n .map(albumId => `album_ids[]=${albumId}`)\n .join(\"&\");\n req = req.query(albumIdsString);\n }\n\n if (filters.photoText) {\n req = req.query({\n photo_text: filters.photoText\n });\n }\n\n if (filters.favorite) {\n req = req.query({\n favorite: true\n });\n }\n\n if (filters.photographers) {\n req = req.query({\n \"album_ids[]\": _.map(\n _.filter(\n albums,\n album =>\n //@ts-ignore\n _.indexOf(filters.photographers, album.photographerId) >= 0\n ),\n \"id\"\n )\n });\n }\n\n return req;\n };\n\n const trackSelfieSearchResults = (isResultsFound: boolean) => {\n if (context.filterSelections.referenceImage) {\n Telemetry.track(\"event-gallery:selfie-search-completed\", {\n photosAvailable: isResultsFound\n });\n }\n };\n\n const loadPhotos = async (\n filters: FilterSelections,\n reset: boolean = false,\n userIdProp?: number\n ) => {\n context.updatePhotosCount(0);\n try {\n const response = await photosRequest(\n eventPhotosAPI,\n filters,\n reset ? 1 : nextPage,\n userIdProp\n );\n\n await new Promise(resolve => {\n setFilteredPhotos(previousPhotos => {\n if (reset || context.reset) {\n context.setPhotos(galleryPhotos([...response.body.photos]));\n return galleryPhotos([...response.body.photos]);\n } else {\n context.setPhotos(\n galleryPhotos([...previousPhotos, ...response.body.photos])\n );\n return galleryPhotos([...previousPhotos, ...response.body.photos]);\n }\n });\n resolve();\n });\n\n setNextPage(response.body.meta.nextPage);\n context.updatePhotosCount(response.body.meta.totalCount);\n\n if (response.body.meta.currentPage == 1) {\n if (response.body.meta.totalCount) {\n trackSelfieSearchResults(true);\n } else {\n trackSelfieSearchResults(false);\n }\n }\n\n context.reloadAlbumPhotos(false);\n setLoading(false);\n } catch (err) {\n console.log(err);\n }\n };\n\n useEffect(() => {\n const urlParams = new URLSearchParams(window.location.search);\n const albumIdOpen = urlParams.get(\"album_id_open\");\n\n if (context.activeFilters.length > 0 && !photoAddedToCart) {\n setLoading(true);\n loadPhotos(context.filterSelections, true);\n } else {\n context.activeFilters.length == 0 && setFilteredPhotos([]);\n\n // Prevent clearing album if album_id_open exists in the URL\n if (!albumIdOpen) {\n // This is to make sure user doesn't get confused that\n // filters are specific to album\n if (!mounted.current) toggleAlbum(null);\n else mounted.current = false;\n }\n\n setLoading(false);\n }\n }, [context.filterSelections]);\n\n useEffect(() => {\n if (context.reset === true) {\n setLoading(true);\n loadPhotos(context.filterSelections, true);\n }\n }, [context.activeFilters.length > 0 ? context.reset : 0]);\n\n useEffect(() => {\n if (context.activeFilters.length > 0) {\n setFilteredPhotos(galleryPhotos(filteredPhotos));\n }\n }, [listOfMediaId.length, context.cart ? context.cart.photos.length : 0]);\n\n const noPhotosMatched =\n context.activeFilters.length > 0 && filteredPhotos.length === 0;\n\n const setAlbum = (album: Album | null) => {\n toggleAlbum(album);\n if (album) addParam(\"album_id_open\", album.signedId);\n else removeParam(\"album_id_open\", window.location.href);\n };\n\n const isSelected = (photo: Photo) =>\n _.includes(\n context.curationMode\n ? context.listOfMediaId.map(item => item.id)\n : context.cart\n ? context.cart.photos\n : [],\n photo.id\n );\n const prepaidAuthCookie = () =>\n context.event.prepaidCustomersPrimaryAuthField === \"cookie\";\n\n const canShowGuestEmailModal = (photo: any) => {\n if (context.canShowEmailPopup()) {\n setShowSaveCartModal(photo);\n handlePhotoAddedToCart(photo);\n return true;\n } else return false;\n };\n\n const galleryPhotos = (photos: any) => {\n return _.uniqBy(photos, \"id\").map((photo: any) => {\n return {\n ...photo,\n ...(photo.timeTaken\n ? {\n tags: [\n {\n title: \"Time\",\n value: photo.timeTaken\n }\n ]\n }\n : {}),\n isSelected: isSelected(photo),\n src: \"\",\n disableContextMenu: true\n };\n });\n };\n return (\n
\n {loading ? (\n
\n {\" \"}\n \n
\n ) : noPhotosMatched ? (\n \n ) : filteredPhotos.length > 0 ? (\n
\n loadPhotos(context.filterSelections)}\n hasMore={!!nextPage}\n trackTelemetry={true}\n userId={context.userId ? context.userId : undefined}\n isAuthorizedForDirectDownloads={false}\n reset={context.filterSelections.favorite ? true : false}\n showFavIcon={true}\n canShowGuestEmailModal={canShowGuestEmailModal}\n />\n
\n ) : activeAlbum ? (\n \n ) : (\n \n )}\n {showSaveCartModal && (\n {\n removePhotoAddedToCart();\n setShowSaveCartModal(null);\n if (!prepaidAuthCookie()) {\n context.addPhotoToCart(showSaveCartModal);\n }\n }}\n setSaveCartPromptShown={() =>\n localStorage.setItem(\"isUserAskedForEmailToSaveCart\", \"true\")\n }\n setGuestUserCart={context.setGuestUserCart}\n trackCartEmailPopupActions={context.trackCartEmailPopupActions}\n emailMandatory={prepaidAuthCookie()}\n />\n )}\n
\n );\n};\nexport default GalleryBody;\n","import React, { useContext } from \"react\";\n// @ts-ignore\nimport Pluralize from \"react-pluralize\";\nimport { withCartIdParam } from \"../../utils/BrowserHelper\";\nimport ContrastForegroundUtility from \"../../utils/ContrastForegroundUtility\";\nimport { Cart } from \"./types\";\nimport { LightBoxViewCart } from \"./vectors/LightBoxCartIcons\";\nimport { EventGalleryContext } from \"./index\";\n\nconst EmbedHeader = ({\n cart,\n isEmbed,\n primaryColor\n}: {\n cart: Cart;\n isEmbed: boolean;\n primaryColor: string;\n}) => {\n const context = useContext(EventGalleryContext);\n\n return (\n
\n \n
\n
\n\n
\n {cart?.photos?.length ? (\n \n \n \n ) : null}\n \n {\" \"}\n View Cart\n {cart?.photos?.length ? (\n  ({cart.photos.length})\n ) : null}\n \n
\n
\n );\n};\n\nexport default EmbedHeader;\n","import React, { useContext } from \"react\";\nimport { Event } from \"./types\";\nimport _ from \"lodash\"; // TODO: use lodash-es, import only what's needed\nimport \"../OrganizationEvents/styles/get-notified-popup.css\";\nimport { moment } from \"../../utils/fakeMoment\";\nimport BellIcon from \"../OrganizationEvents/BellIcon\";\nimport ContrastForegroundUtility from \"../../utils/ContrastForegroundUtility\";\nimport { EventGalleryContext } from \"./index\";\n\nconst closeIcon = require(\"../OrganizationEvents/styles/remove.svg\");\n\nconst GetNotifiedPopup = ({\n event,\n registerCustomerLead,\n clearSelection\n}: {\n event: Event;\n registerCustomerLead: (email: string) => void;\n clearSelection: () => void;\n}) => {\n const customerEmailField: any = React.createRef();\n const context = useContext(EventGalleryContext);\n\n return (\n
\n
\n {context.pageConfiguration && (\n
\n
\n clearSelection()}\n className=\"get-notified-close-icon\"\n />\n
\n \n
\n

Get Notified

\n

\n Please enter your email to know when photos are uploaded to this\n event.\n

\n
\n
\n \n

\n {moment(event.startDate).format(\"D\")}\n

\n

\n {moment(event.startDate).format(\"MMM\")}\n

\n

\n {moment(event.startDate).format(\"YYYY\")}\n

\n
\n
\n

{event.name}

\n

{event.location}

\n
\n
\n
\n
\n \n \n registerCustomerLead(customerEmailField.current.value)\n }\n >\n {\" \"}\n Notify me{\" \"}\n \n
\n
\n \n {\" \"}\n Cancel\n \n
\n )}\n
{\" \"}\n
\n
\n );\n};\n\nexport default GetNotifiedPopup;\n","import React from \"react\";\n\nconst CloseIcon = ({ color }: { color: string }) => {\n return (\n \n \n \n \n \n \n );\n};\nexport default CloseIcon;\n","import React from \"react\";\n\nconst UploadNotify = ({ color }: { color: string }) => {\n return (\n \n \n \n \n \n \n );\n};\nexport default UploadNotify;\n","import React, { useContext } from \"react\";\nimport \"./styles/header.css\";\nimport { EventGalleryContext } from \"./index\";\nimport CloseIcon from \"./vectors/CloseIcon\";\nimport UploadNotify from \"./vectors/UploadNotify\";\nimport ContrastForegroundUtility from \"../../utils/ContrastForegroundUtility\";\n\nconst GetNotifiedBanner = ({\n userEmail,\n photoBundleDiscountAvailed,\n registerCustomerLead,\n getNotifiedPopup,\n closeBanner\n}: {\n userEmail: string | null;\n photoBundleDiscountAvailed: boolean;\n registerCustomerLead: (email: string) => void;\n getNotifiedPopup: () => void;\n closeBanner: () => void;\n}) => {\n const context = useContext(EventGalleryContext);\n const iconColor = ContrastForegroundUtility.fgColor(\n ContrastForegroundUtility.lightenColor(\n context.pageConfiguration.primaryColor\n )\n );\n return (\n
\n
\n
\n
\n \n
\n
\n

\n Photos are still being uploaded\n

\n
\n \n userEmail ? registerCustomerLead(userEmail) : getNotifiedPopup()\n }\n >\n Notify me\n \n
\n \n
\n
\n
\n
\n );\n};\nexport default GetNotifiedBanner;\n","import React from \"react\";\n\nconst NotiIcon = ({ color }: { color: string }) => {\n return (\n \n \n \n \n \n );\n};\nexport default NotiIcon;\n","import React, { useContext, Fragment, useState } from \"react\";\nimport { EventGalleryContext } from \"./index\";\nimport NotiIcon from \"./vectors/NotiIcon\";\nimport ContrastForegroundUtility from \"../../utils/ContrastForegroundUtility\";\nimport { getCookie, setCookie } from \"../../utils/BrowserHelper\";\n\nconst NoPhotos = ({\n userEmail,\n registerCustomerLead,\n userOptedNotify\n}: {\n userEmail: string | null;\n registerCustomerLead: (email: string) => void;\n userOptedNotify: boolean;\n}) => {\n const context = useContext(EventGalleryContext);\n const customerEmailField: any = React.createRef();\n const [submitted, setSubmitted] = useState(false);\n\n const testEmail = (email: string) => {\n if (email != \"\" && /^([\\w.%+-]+)@([\\w-]+\\.)+([\\w]{2,})$/i.test(email)) {\n return true;\n } else return false;\n };\n\n return (\n
\n
\n \n

No photos uploaded yet

\n {!userOptedNotify && (\n \n {\" \"}\n

\n Get notified when photos are uploaded\n

\n {submitted ? (\n
\n Thanks, we'll send you an email once the photos are ready.\n
\n ) : (\n
\n {!userEmail && (\n \n )}\n {context.pageConfiguration && (\n \n userEmail\n ? (registerCustomerLead(userEmail), setSubmitted(true))\n : (registerCustomerLead(\n customerEmailField.current.value\n ),\n setSubmitted(\n testEmail(customerEmailField.current.value)\n ))\n }\n >\n {\" \"}\n Notify me{\" \"}\n \n )}\n
\n )}\n
\n )}\n
\n
\n );\n};\nexport default NoPhotos;\n","import React from \"react\";\n\nconst LockIcon = ({ color }: { color: string }) => {\n return (\n \n \n \n );\n};\nexport default LockIcon;\n","import React, { useContext, Fragment, useState } from \"react\";\nimport { EventGalleryContext } from \"./index\";\nimport { Event } from \"./types\";\nimport LockIcon from \"./vectors/LockIcon\";\nimport ajax from \"superagent\";\n\nconst PasswordProtected = ({\n event,\n unlockEvent,\n updateUserInputPassword\n}: {\n event: Event;\n unlockEvent: () => void;\n updateUserInputPassword: (password: string | any) => void;\n}) => {\n const context = useContext(EventGalleryContext);\n const passwordField: any = React.createRef();\n const [loader, setLoader] = useState(false);\n const [invalidPassword, setInvalidPassword] = useState(false);\n\n const passwordFormSubmit = (e: any) => {\n e.preventDefault();\n setLoader(true);\n authenticatePassword(e);\n };\n\n const authenticatePassword = (e: any) => {\n e.preventDefault();\n let password = passwordField.current.value;\n ajax\n .get(context.authenticateEventPasswordAPI)\n .query({\n event_password: password\n })\n .then(res => {\n if (res.body.authenticated) {\n updateUserInputPassword(password);\n unlockEvent();\n updateInvalidPassword(false);\n } else {\n updateInvalidPassword(true);\n }\n });\n };\n\n const updateInvalidPassword = (invalid: boolean) => {\n setInvalidPassword(invalid);\n setLoader(false);\n };\n\n const eventOrganiserEmail = event.supportEmail || event.organiserEmail;\n\n const mailtoEventOrganiser = () => {\n return (\n `mailto:${eventOrganiserEmail}?cc=support@geosnapshot.com&subject=Password request for ${event.name}&body=` +\n encodeURIComponent(\n `Hi ${event.organiserFirstName}, I'm requesting the password for the event ${event.name} could you please reply to this email with the password so I can view and purchase the photos.`\n )\n );\n };\n\n return (\n
\n
\n \n
This event is protected
\n

\n Please enter the password provided by the Event Organiser\n

\n
\n \n \n {invalidPassword ? (\n \n The password you've given is incorrect.\n \n ) : null}\n \n {!loader ? (\n Unlock\n ) : (\n <>\n Please wait \n \n \n )}\n \n
\n

\n

\n Contact the{\" \"}\n \n Event Organiser\n {\" \"}\n to get the password\n

\n \n
\n \n );\n};\nexport default PasswordProtected;\n","import React, { useContext, useState } from \"react\";\nimport { Event } from \"./types\";\nimport SelfieFilter from \"./Filters/SelfieFilter\";\nimport { EventGalleryContext } from \"./index\";\nconst selfieIllus = require(\"./images/selfi-illustration.svg\");\n\nconst PasswordProtected = ({\n updateFilters,\n trackPrivateEventSelfieUploadFlow,\n trackSelfieFilterApplied\n}: {\n updateFilters: (\n newFilters: { [x: string]: any },\n clearFilters: boolean\n ) => void;\n trackPrivateEventSelfieUploadFlow: (trackEventName: string) => void;\n trackSelfieFilterApplied: () => void;\n}) => {\n const [selfieUploadPopup, toggleSelfieUploadPopup] = useState(false);\n const context = useContext(EventGalleryContext);\n\n return (\n
\n
\n
\n {\" \"}\n \n \n It's easy to find your photos!\n \n
\n

\n Simply upload a selfie to view your matching photos\n instantly.\n

\n {\n trackPrivateEventSelfieUploadFlow(\n \"event-gallery:private-event:selfie-button-clicked\"\n );\n context.showPrepaidClearCartWarning\n ? context.promptClearPrepaidCart()\n : toggleSelfieUploadPopup(true);\n }}\n >\n {context.hideUploadSelfie ? \"Take\" : \"Upload\"} a Selfie\n \n {selfieUploadPopup && (\n {\n updateFilters(\n {\n referenceImage: imageURL\n },\n false\n );\n toggleSelfieUploadPopup(false);\n trackPrivateEventSelfieUploadFlow(\n \"event-gallery:private-event:selfie-uploaded\"\n );\n trackSelfieFilterApplied();\n }}\n closePopup={() => toggleSelfieUploadPopup(false)}\n selectedImage={\"\"}\n bundleDiscountInfo={false}\n setRemoveFilter={context.setRemoveFilter}\n filterPopUpTitle=\"primary\"\n />\n )}\n
\n
\n );\n};\n\nexport default PasswordProtected;\n","import { moment } from \"../../utils/fakeMoment\";\nimport React from \"react\";\nimport { Event } from \"./types\";\nimport \"./styles/filters.css\";\n\nconst LinkedEventsPopup = ({\n linkedEvents,\n closeLinkedEventsPopup\n}: {\n linkedEvents: Event[];\n closeLinkedEventsPopup: () => void;\n}) => {\n return (\n
\n \n
\n closeLinkedEventsPopup()}\n >\n ×\n \n
\n

\n {linkedEvents.length} Linked Events\n

\n {linkedEvents.map((event: any) => (\n \n
{event.name}
\n
\n {moment(event.startDate).format(\"MMMM DD, YYYY, dddd\")}\n
\n
{event.location}
\n
\n {event.albumsCount} Albums\n
\n
\n \n ))}\n
\n
\n
\n
\n
\n );\n};\n\nexport default LinkedEventsPopup;\n","import React, { useContext, Fragment } from \"react\";\nimport { removeParam } from \"../../../utils/BrowserHelper\";\nconst warnIcon = require(\"../styles/icon-red-warn.svg\");\nimport { EventGalleryContext } from \"../index\";\n\ninterface PromptClearPrepaidCartProps {\n closePopup: Function;\n clearCart: () => void;\n primaryAuth: string;\n}\n\nconst PromptClearPrepaidCart = ({\n closePopup,\n clearCart,\n primaryAuth\n}: PromptClearPrepaidCartProps) => {\n const removePopupParam = async () => {\n await removeParam(\"clear-cart-prompt\", window.location.href);\n closePopup(false);\n };\n\n const context = useContext(EventGalleryContext);\n\n return (\n
\n \n
\n
\n  \n {\n removePopupParam();\n }}\n >\n ×\n \n
\n
\n \n

Clear your cart to redeem the pack

\n
\n
\n {primaryAuth === \"cookie\" ? (\n

\n The pack can be applied only to this event, clear your cart to\n continue\n

\n ) : (\n

\n This offer applies to only one (1) selfie per event. Please\n clear the cart in order to upload a selfie.\n

\n )}\n
\n
\n {\n removePopupParam();\n }}\n >\n Cancel\n \n {\n await clearCart();\n removePopupParam();\n }}\n >\n Clear Cart\n \n
\n
\n
\n
\n
\n );\n};\n\nexport default PromptClearPrepaidCart;\n","import React, { useContext } from \"react\";\nimport \"./styles/albums-list.css\";\nimport { EventGalleryContext } from \"./index\";\nconst deleteIcon = require(\"./styles/delete.svg\");\n\n// @ts-ignore\nimport HideCancel from \"./vectors/HideCancel\";\nimport HideIcon from \"./vectors/HideIcon\";\n\nconst CurationMode = ({\n activeFilters,\n curationMode,\n selectAll,\n selectAllVisible,\n listOfMediaId,\n setBulkTagging,\n confirmDelete,\n curatePhotos,\n canDeletePhotos,\n pageConfiguration,\n hideOrUnhideAction\n}: {\n activeFilters: Function;\n curationMode: boolean;\n selectAll: boolean;\n selectAllVisible: Function;\n listOfMediaId: Array;\n setBulkTagging: Function;\n curatePhotos: Function;\n confirmDelete: Function;\n canDeletePhotos: boolean;\n pageConfiguration: any;\n hideOrUnhideAction: Function;\n}) => {\n const context = useContext(EventGalleryContext);\n return (\n
\n {curationMode && activeFilters().length == 0 ? (\n
\n {listOfMediaId.length} {listOfMediaId.length > 1 ? \"photos\" : \"photo\"}{\" \"}\n selected\n
\n ) : (\n curationMode &&\n activeFilters().length > 0 && (\n \n \n selectAllVisible()}\n />\n \n Select all visible\n \n \n )\n )}\n {curationMode && (\n
\n <>\n {canDeletePhotos && (\n confirmDelete()}\n disabled={listOfMediaId.length > 0 ? false : true}\n style={{\n marginRight: 4\n }}\n >\n \n \n )}\n curatePhotos()}\n style={{ marginRight: 4 }}\n disabled={listOfMediaId.length > 0 ? false : true}\n >\n {hideOrUnhideAction() == \"hide\" ? (\n \n ) : (\n \n )}\n \n \n setBulkTagging()}\n disabled={listOfMediaId.length > 0 ? false : true}\n style={{ color: pageConfiguration.primaryColor }}\n >\n + Tags\n \n
\n )}\n
\n );\n};\nexport default CurationMode;\n","import React from \"react\";\n\nconst CoptBtn = ({ color }: { color: string }) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\nexport default CoptBtn;\n","import React from \"react\";\n\nconst EmailIcon = ({ color }: { color: string }) => {\n return (\n \n \n \n \n );\n};\nexport default EmailIcon;\n","import React, { useContext } from \"react\";\nimport CopyBtn from \"./vectors/CopyBtn\";\nimport EmailIcon from \"./vectors/EmailIcon\";\nimport { EventGalleryContext } from \"./index\";\n\ninterface EventSupportEmailPopupProps {\n showEmail: boolean;\n customerSupportReference: string;\n supportEmail: string;\n}\n\nconst EventSupportEmailPopup: React.FC = ({\n showEmail,\n customerSupportReference,\n supportEmail\n}) => {\n const context = useContext(EventGalleryContext);\n\n return showEmail && supportEmail ? (\n <>\n \n {\" \"}\n
\n \n
\n \n {customerSupportReference\n ? customerSupportReference\n : \"Contact Support\"}\n \n \n {supportEmail}\n \n
\n
\n (\n navigator.clipboard.writeText(`${supportEmail}`), //@ts-ignore\n toastr.success(\"Copied\")\n )}\n >\n \n \n \n \n \n ) : null;\n};\n\nexport default EventSupportEmailPopup;\n","import React, { useContext, Fragment } from \"react\";\nimport { removeParam } from \"../../../utils/BrowserHelper\";\nconst warnIcon = require(\"../styles/icon-red-warn.svg\");\nimport { EventGalleryContext } from \"../index\";\n\ninterface PromptClearCartProps {\n clearCart: () => void;\n photoBundleDiscountAvailed: boolean;\n setClearCartWarning: (val: boolean) => void;\n}\n\nconst PromptClearCart = ({\n clearCart,\n photoBundleDiscountAvailed,\n setClearCartWarning\n}: PromptClearCartProps) => {\n const removePopupParam = async () => {\n setClearCartWarning(false);\n };\n\n const context = useContext(EventGalleryContext);\n\n return (\n
\n \n
\n
\n  \n {\n removePopupParam();\n }}\n >\n ×\n \n
\n
\n \n

Cart will be Cleared

\n
\n
\n {photoBundleDiscountAvailed ? (\n

\n You can only apply this offer to one selfie and event at a time.\n If you change this selfie or apply another offer your current\n cart will be cleared.\n

\n ) : (\n

\n If you want to apply the photo bundle offer, all the photos from\n the cart will get cleared.\n

\n )}\n
\n
\n {\n removePopupParam();\n }}\n >\n Don't Apply\n \n {\n await clearCart();\n removePopupParam();\n }}\n >\n Apply\n \n
\n
\n
\n
\n
\n );\n};\n\nexport default PromptClearCart;\n","import React from \"react\";\nconst selfieIcon = require(\"../styles/icon-selfie-pr.svg\");\nconst bibIcon = require(\"../styles/icon-bib-pr.svg\");\nimport { Event } from \"../types\";\n\ninterface PromoteFiltersProps {\n showSelfieFilter: () => void;\n showBibFilter: () => void;\n hidePromoteFilters: () => void;\n photosCount: number;\n selfieSearchEnabled: boolean;\n bibFilterEnabled: boolean;\n event: Event;\n}\n\nconst PromoteFilters = ({\n showSelfieFilter,\n showBibFilter,\n hidePromoteFilters,\n photosCount,\n selfieSearchEnabled,\n bibFilterEnabled,\n event\n}: PromoteFiltersProps) => {\n return (\n
\n \n
\n
\n \n {event.name}{\" \"}\n {event.date}\n \n Find your photos with our smart filters\n \n \n {\n hidePromoteFilters();\n }}\n >\n ×\n \n
\n\n
\n {selfieSearchEnabled ? (\n
\n
\n \"\"\n
\n
\n
Selfie Search
\n
\n Upload a selfie to see photos of you only.\n
\n {\n showSelfieFilter();\n }}\n >\n Take a selfie or upload\n \n
\n
\n ) : null}\n\n {bibFilterEnabled ? (\n
\n
\n \"\"\n
\n
\n
Bib Number
\n
\n Add your bib number to see photos of you.\n
\n {\n showBibFilter();\n }}\n >\n Bib Search\n \n
\n
\n ) : null}\n\n
\n

\n Or you can also browse through{\" \"}\n {photosCount > 0 ? {photosCount} photos : \"all photos\"}{\" \"}\n to find yours\n

\n {\n hidePromoteFilters();\n }}\n >\n See all Albums\n \n
\n
\n
\n
\n
\n
\n );\n};\n\nexport default PromoteFilters;\n","import React, { Component, Fragment, Suspense } from \"react\";\nimport _ from \"lodash\"; // TODO: import only whats needed from lodash-es\nimport Header from \"./Header\";\nimport ajax from \"superagent\";\nimport GalleryBody from \"./GalleryBody\";\n// @ts-ignore\nimport PrepaidCustomerAuthPopup from \"../BrowseEvent/components/PrepaidCustomerAuthPopup\";\n// @ts-ignore\nimport EmbedHeader from \"./EmbedHeader\";\n// @ts-ignore\nimport StyleOverridesMobile from \"./StyleOverridesMobile\";\nimport GetNotifiedPopup from \"./GetNotifiedPopup\";\nimport {\n Event,\n Album,\n Cart,\n Photo,\n PrepaidCustomer,\n Photographer,\n PageConfiguration,\n FilterSelections\n} from \"./types\";\nimport GetNotifiedBanner from \"./GetNotifiedBanner\";\nimport NoPhotos from \"./NoPhotos\";\nimport PasswordProtected from \"./PasswordProtected\";\nimport {\n getCookie,\n setCookie,\n deleteCookie,\n withCartIdParam,\n getParameterByName,\n removeParam\n} from \"../../utils/BrowserHelper\";\nimport \"./styles/index.css\";\nconst gssNewLoader = require(\"../../assets/gss-loader.gif\");\n// @ts-ignore\nimport ahoy from \"ahoy.js\";\nimport PrivateScreen from \"./PrivateScreen\";\nimport LinkedEventsPopup from \"./LinkedEventsPopup\";\nimport ShareSocialPopup from \"../ShareSocialPopup/index\";\nimport RemoveBundlePrompt from \"./offerBanners/RemoveBundlePrompt\";\nimport PromptClearPrepaidCart from \"./offerBanners/PromptClearPrepaidCart\";\nimport BundleMediaSelect from \"../BrowseEvent/components/albums/BundleSelectMedia\";\nimport CurationMode from \"./CurationMode\";\nimport DeletePhotosConfirmation from \"../BrowseEvent/components/DeletePhotosConfirmation\";\nimport PublishBanner from \"../PublishBanner\";\nimport PublishingOptions from \"../PublishingOptions\";\nimport EventSupportEmailPopup from \"./EventSupportEmailPopup\";\nimport Telemetry from \"../../utils/rudderstackAnalytics\";\nimport PromptClearCart from \"./offerBanners/PromptClearCart\";\nconst clearFIcon = require(\"./styles/clear-icon.svg\");\nconst Filters = React.lazy(() => import(\"./Filters/index\"));\nconst OfferBanners = React.lazy(() => import(\"./offerBanners/index\"));\nimport \"./styles/footer-cta.css\";\nimport { LightBoxViewCart } from \"./vectors/LightBoxCartIcons\";\nimport ContrastForegroundUtility from \"../../utils/ContrastForegroundUtility\";\nimport SaveCart from \"../SaveCartEmailPopup\";\nimport getAlbumId from \"../../utils/GetAlbumId\";\nimport InvitePhotographerPopup from \"../common/InvitePhotographerPopup\";\nimport PromoteFilters from \"./Filters/PromoteFilters\";\nimport BibFilter from \"./Filters/BibFilter\";\nconst wave = require(\"../common/images/wave.svg\");\n\ninterface EventGalleryMobileProps {\n promoteFiltersABTestActive: boolean;\n event: Event | any;\n eventPhotosCount: number;\n albumsAPI: string;\n addToCartAPI: string;\n removeFromCartAPI: string;\n emptyCartAPI: string;\n registerCustomerLeadAPI: string;\n userSignedIn: boolean;\n userEmail: string | null;\n cart: Cart;\n initialFilters: object;\n currentUserHasPasswordAccess: boolean;\n enableFilterByText: boolean;\n selfieSearchS3Bucket: string;\n embedded: boolean;\n ios: boolean;\n mobile: boolean;\n photoTimeRange: {\n min: number;\n max: number;\n };\n cookieInjectURL: string;\n uploadInProgress: boolean;\n eventAnalyticsEventsAPI: string;\n eventAnalyticsVisitsAPI: string;\n authenticatePrepaidCustomerAPI: string;\n createPrepaidCustomerAPI: string;\n promptPrepaidAuth: boolean | string;\n unlinkPrepaidCustomerAPI: string;\n logoutPrepaidCustomerAPI: string;\n findPhotosPath: string;\n eventPhotosAPI: string;\n galleryPage: string;\n prepaidCustomer: PrepaidCustomer;\n pageConfiguration: PageConfiguration;\n openedAlbumId: string;\n photoBundleDiscountAvailable: boolean;\n availPhotoBundleDiscountAPI: string;\n withdrawPhotoBundleDiscountAPI: string;\n bypassPasswordPrompt: string | null;\n linkedEvents: Event[];\n linkedEventsAvailable: boolean;\n photosAvailable: boolean;\n isAuthorizedForDirectDownloads: boolean;\n manageEventPath: string | null;\n userId: number | null;\n eventPassword: string | null;\n authenticateEventPasswordAPI: string;\n galleryURL: string;\n canManageTags: boolean;\n canDeletePhotos: boolean;\n schoolUser: boolean;\n supportEmail: string;\n eventSupportLabel: string;\n addPhotoToFavoritesAPI: string;\n removePhotoFromFavoritesAPI: string;\n registerGuestUserAPI: string;\n favoritesGuestUserId: number;\n addAllToCartAPI: string;\n hideUploadSelfie: boolean;\n customerCartEmailEnabled: boolean;\n showInvitePhotographerModal: boolean;\n isCustomerOnly: boolean;\n cookiePrepaidAvailed: boolean;\n cookiePrepaidPhotosAvailed: number | null;\n}\n\ninterface EventGalleryMobileState {\n albums: Album[];\n cart: Cart;\n prepaidCustomer: PrepaidCustomer | null;\n filterSelections: FilterSelections;\n filterOptions: {\n albums: Album[];\n photographers: Photographer[];\n photoTimeRange: { min: number; max: number };\n favorite: boolean;\n };\n defaultFilters: FilterSelections;\n promptPrepaidAuth: boolean | string;\n photosCount: number | null;\n promptNotifyAuth: boolean;\n notifyBanner: boolean;\n loading: boolean;\n authenticated: boolean;\n reset: boolean;\n unlockedPrivateEvent: boolean;\n deletePhotosPopup: boolean;\n discountMessage: string;\n promptRemoveOffer: boolean;\n selfieUploaderPopup: boolean;\n linkedEventsPopup: boolean;\n userInputPassword: string | any;\n showShareGalleryModal: boolean;\n removeSelfie: boolean;\n clearAllFilters: boolean;\n curationMode: boolean;\n listOfMediaId: Array<{ id: number; hidden: boolean }>;\n showBulkTagging: boolean;\n visiblePhotos: any;\n selectAll: boolean;\n publishPopup: boolean;\n publishState: string;\n selfiePrepaidStatus: string;\n clearPrepaidCartPopup: boolean;\n showEmail: boolean;\n cartFullPrice: string;\n cartDiscountedPrice: string;\n cartHasDiscount: boolean;\n guestUserId: number | null;\n clearCartWarning: boolean;\n albumModeID: string | null;\n showSaveCartModal: boolean;\n isMobile: boolean;\n showInvitePopup: boolean;\n showPromoteFiltersPopup: boolean;\n bibFilterPopup: boolean;\n selfieFilterPopup: boolean;\n guestUserEmail: string;\n photoAddedToCart: any;\n isAddToCartLoading: boolean;\n}\n\ninterface EventGallery {\n addPhotoToCart: (photo: Photo, hideEmailPopup?: boolean) => void;\n logoutPrepaidCustomer: (availBundleDiscountOffer: boolean) => void;\n removePhotoFromCart: (photo: Photo) => void;\n cart: Cart | any;\n event: Event | any;\n currentUserHasPasswordAccess: any;\n prepaidCustomer: any;\n selfieSearchS3Bucket: string;\n enableBibFilter: boolean;\n filterSelections: FilterSelections;\n promptPrepaidAuth: boolean | string;\n reloadAlbumPhotos: Function;\n activeFilters: string[];\n reset: boolean;\n curatePhotos: Function;\n updatePhotosCount: (photosCount: number) => void;\n photosCount: number | null;\n pageConfiguration: PageConfiguration;\n resetFilter: () => void;\n arePrepaidPhotosAvailable: boolean;\n isEmbed: boolean;\n discountMessage: string;\n photoBundleDiscountAvailable: boolean;\n hidePhotographersFilter: boolean;\n isAuthorizedForDirectDownloads: boolean;\n userId: number | null;\n eventPassword: string | null;\n authenticateEventPasswordAPI: string;\n removeSelfie: boolean;\n clearAllFilters: boolean;\n removeFilter: (val: string, newFilter: object | null) => void;\n setRemoveFilter: (value: string) => void;\n updateFilters: (newFilters: any, clearFilters: any) => void;\n canManageTags: boolean;\n clearMediaIds: () => void;\n getPhotoId: (photo: Photo, index: any, photos: any) => void;\n listOfMediaId: Array<{ id: number; hidden: boolean }>;\n curationMode: boolean;\n setPhotos: Function;\n setSelectAll: Function;\n promptClearPrepaidCart: () => void;\n showPrepaidClearCartWarning: boolean;\n supportEmail: string;\n eventSupportLabel: string;\n cartFullPrice: string;\n cartDiscountedPrice: string;\n cartHasDiscount: boolean;\n addPhotoToFavoritesAPI: string;\n removePhotoFromFavoritesAPI: string;\n registerGuestUserAPI: string;\n guestUserId: number | null;\n setGuestUserId: (val: number) => void;\n hideUploadSelfie: boolean;\n setClearCartWarning: (val: boolean) => void;\n albumModeID: string | null;\n showInvitePhotographerModal: boolean;\n showGalleryActions: Function;\n cookiePrepaidAvailed: boolean;\n cookiePrepaidPhotosAvailed: number | null;\n canShowEmailPopup: () => boolean | null;\n setGuestUserCart: (userId: number, userEmail: string, cart: Cart) => void;\n trackCartEmailPopupActions: (eventName: string) => void;\n}\n\nexport const EventGalleryContext = React.createContext({\n addPhotoToCart: () => null,\n logoutPrepaidCustomer: () => null,\n removePhotoFromCart: () => null,\n cart: null,\n event: null,\n currentUserHasPasswordAccess: null,\n prepaidCustomer: null,\n selfieSearchS3Bucket: \"\",\n enableBibFilter: false,\n reset: false,\n curatePhotos: (action?: string, photoId?: number[], render?: boolean) => null,\n reloadAlbumPhotos: (val: boolean) => null,\n filterSelections: {\n albums: [],\n photographers: [],\n photoTime: {\n minuteFrom: 0, // 00:00 to minutes\n minuteTo: 1439, // 23:59 to minutes\n active: false\n },\n referenceImage: null,\n photoText: null,\n favorite: false\n },\n promptPrepaidAuth: getParameterByName(\"prepaid-auth\") || false,\n activeFilters: [],\n updatePhotosCount: () => null,\n setPhotos: () => null,\n photosCount: null,\n pageConfiguration: {\n primaryColor: \"#259FA5\",\n secondaryColor: \"#C1EBED\",\n accentColor: \"#259FA5\",\n showHeader: false,\n bannerUrl: \"\",\n croppedBannerURL: \"\"\n },\n updateFilters: (newFilters: any, clearFilters: any) => null,\n resetFilter: () => null,\n arePrepaidPhotosAvailable: false,\n isEmbed: false,\n photoBundleDiscountAvailable: false,\n discountMessage: \"\",\n hidePhotographersFilter: false,\n isAuthorizedForDirectDownloads: false,\n userId: null,\n eventPassword: \"\",\n authenticateEventPasswordAPI: \"\",\n removeFilter: (val: string, newFilter: object | null) => null,\n setRemoveFilter: (value: string) => null,\n removeSelfie: false,\n clearAllFilters: false,\n canManageTags: false,\n clearMediaIds: () => null,\n getPhotoId: (photo: Photo, index: any, photos: any) => [],\n listOfMediaId: [],\n curationMode: false,\n setSelectAll: () => null,\n promptClearPrepaidCart: () => null,\n showPrepaidClearCartWarning: false,\n supportEmail: \"\",\n eventSupportLabel: \"\",\n cartFullPrice: \"\",\n cartDiscountedPrice: \"\",\n cartHasDiscount: false,\n addPhotoToFavoritesAPI: \"\",\n removePhotoFromFavoritesAPI: \"\",\n registerGuestUserAPI: \"\",\n guestUserId: null,\n setGuestUserId: (val: number) => null,\n hideUploadSelfie: false,\n setClearCartWarning: (val: boolean) => null,\n albumModeID: null,\n showInvitePhotographerModal: false,\n showGalleryActions: () => false,\n cookiePrepaidAvailed: false,\n cookiePrepaidPhotosAvailed: null,\n canShowEmailPopup: () => null,\n setGuestUserCart: (userId: number, userEmail: string, cart: Cart) => null,\n trackCartEmailPopupActions: (eventName: string) => null\n});\n\nexport const EventGalleryContextConsumer = EventGalleryContext.Consumer;\n\nclass EventGalleryMobile extends Component<\n EventGalleryMobileProps,\n EventGalleryMobileState\n> {\n constructor(props: EventGalleryMobileProps) {\n super(props);\n const initialDefaultFilters: FilterSelections = {\n albums: [],\n photographers: [],\n photoTime: {\n minuteFrom: props.photoTimeRange.min || 0, // 00:00 to minutes\n minuteTo: props.photoTimeRange.max || 1439, // 23:59 to minutes\n active: false\n },\n referenceImage: null,\n photoText: null,\n favorite: false\n };\n\n this.state = {\n loading: true,\n reset: false,\n albums: [],\n cart: this.props.cart,\n deletePhotosPopup: false,\n prepaidCustomer: this.props.prepaidCustomer,\n filterSelections: {\n ...initialDefaultFilters,\n ...props.initialFilters,\n referenceImage: this.getReferenceImage()\n },\n showShareGalleryModal: false,\n publishPopup: false,\n publishState: this.props.event.publishMode,\n filterOptions: {\n albums: [],\n photographers: [],\n photoTimeRange: props.photoTimeRange,\n favorite: false\n },\n discountMessage: \"\",\n defaultFilters: initialDefaultFilters,\n promptPrepaidAuth:\n getParameterByName(\"prepaid-auth\") ||\n (this.props.event.prepaidCustomersEnabled &&\n !this.props.prepaidCustomer &&\n this.props.promptPrepaidAuth),\n photosCount: null,\n promptNotifyAuth: false,\n notifyBanner: this.props.uploadInProgress,\n authenticated: false,\n unlockedPrivateEvent: this.props.event.isPrivate\n ? !!this.getReferenceImage()\n : true,\n promptRemoveOffer: false,\n selfieUploaderPopup: false,\n linkedEventsPopup: false,\n userInputPassword: \"\",\n removeSelfie: false,\n clearAllFilters: false,\n curationMode: false,\n listOfMediaId: [],\n showBulkTagging: false,\n visiblePhotos: [],\n selectAll: false,\n selfiePrepaidStatus: this.defaultSelfiePrepaidStatus(),\n clearPrepaidCartPopup: false,\n showEmail: false,\n guestUserId: this.props.favoritesGuestUserId,\n clearCartWarning: false,\n albumModeID: null,\n showSaveCartModal: false,\n isMobile: window.innerWidth < 992,\n showInvitePopup: false,\n showPromoteFiltersPopup: false,\n selfieFilterPopup: false,\n bibFilterPopup: false,\n guestUserEmail: \"\",\n photoAddedToCart: null,\n isAddToCartLoading: false\n };\n ahoy.configure({\n eventsUrl: props.eventAnalyticsEventsAPI,\n visitsUrl: props.eventAnalyticsVisitsAPI,\n trackVisits: true\n });\n ahoy.trackView({ event_id: props.event.id });\n\n this.addPhotoToCart = this.addPhotoToCart.bind(this);\n this.logoutPrepaidCustomer = this.logoutPrepaidCustomer.bind(this);\n this.removePhotoFromCart = this.removePhotoFromCart.bind(this);\n this.emptyPhotosFromCart = this.emptyPhotosFromCart.bind(this);\n this.removePhotoBundleDiscount = this.removePhotoBundleDiscount.bind(this);\n this.updateFilters = this.updateFilters.bind(this);\n this.resetFilter = this.resetFilter.bind(this);\n this.activeFilters = this.activeFilters.bind(this);\n this.updatePhotosCount = this.updatePhotosCount.bind(this);\n this.registerCustomerLead = this.registerCustomerLead.bind(this);\n this.userOptedNotify = this.userOptedNotify.bind(this);\n this.navigateToPreviousURL = this.navigateToPreviousURL.bind(this);\n this.unlockProtectedEvent = this.unlockProtectedEvent.bind(this);\n this.setSelfieUploaderPopup = this.setSelfieUploaderPopup.bind(this);\n this.defaultSelfiePrepaidStatus =\n this.defaultSelfiePrepaidStatus.bind(this);\n }\n\n public componentDidMount() {\n const { event } = this.props;\n\n this.setState({ albumModeID: getAlbumId() });\n\n if ((getAlbumId() || !event.isProtected) && this.state.isMobile) {\n this.loadAlbums();\n } else {\n this.authenticateEvent();\n }\n\n this.checkDiscountAndGetStatus();\n $(\"body\").bind(\"copy\", e => {\n e.preventDefault();\n return false;\n });\n $(\"body\").bind(\"paste\", e => {\n e.preventDefault();\n return false;\n });\n if (this.showGalleryActions() && this.props.showInvitePhotographerModal) {\n Telemetry.track(\"internal-referrals:event-gallery-ph-referral-btn-shown\");\n }\n if (this.showGalleryActions() && this.props.canManageTags) {\n Telemetry.track(\"curate-btn-shown\");\n }\n this.handlePromoteFiltersPopup();\n }\n\n componentDidUpdate(\n prevProps: Readonly,\n prevState: Readonly\n ): void {\n if (\n prevState.authenticated !== this.state.authenticated &&\n this.state.authenticated\n ) {\n this.setState({ loading: true });\n this.loadAlbums();\n }\n }\n\n removeFilter = (val: string, newFilter: object | null) =>\n this.setState(\n //@ts-ignore\n { [val]: false },\n () =>\n this.updateFilters(newFilter, val === \"clearAllFilters\" ? true : false)\n );\n\n canShowPromoteFiltersPopup = () => {\n if (this.interactedWithPromoteFiltersPopup()) return false;\n if (this.props.openedAlbumId) return false;\n if (\n this.props.event.isPhotoIndexingDisabled &&\n !this.props.enableFilterByText\n )\n return false;\n if (this.props.event.isPrivate) return false;\n if (this.props.event.isProtected && !this.state.authenticated) return false;\n return true;\n };\n\n handlePromoteFiltersPopup = () => {\n if (this.canShowPromoteFiltersPopup()) {\n if (this.props.promoteFiltersABTestActive) {\n this.setState({ showPromoteFiltersPopup: true }, () => {\n this.trackPromoteFiltersPopupABTest(true);\n });\n } else {\n this.trackPromoteFiltersPopupABTest(false);\n }\n }\n };\n\n //@ts-ignore\n setRemoveFilter = (value: string) => this.setState({ [value]: true });\n\n clearMediaIds = () => this.setState({ listOfMediaId: [] });\n\n defaultSelfiePrepaidStatus = () => {\n if (this.props.event.prepaidCustomersPrimaryAuthField == \"selfie\") {\n if (this.props.prepaidCustomer) return \"available\";\n }\n return \"unavailable\";\n };\n\n getPhotoId = (photo: Photo, index: any, photos: any) => {\n const listofIDs = [...this.state.listOfMediaId];\n const listOfMedia = [...photos];\n listOfMedia[index].isSelected = true;\n const arrayOfId = listofIDs.filter(i => i.id === photo.id);\n if (arrayOfId.length === 0) {\n listofIDs.push({ id: photo.id, hidden: photo.hidden });\n this.setState({ listOfMediaId: listofIDs });\n } else {\n let indexOfId = -1;\n listofIDs.forEach((i, index) => {\n if (i.id === photo.id) {\n indexOfId = index;\n }\n });\n listOfMedia[index].isSelected = false;\n listofIDs.splice(indexOfId, 1);\n this.setState({ listOfMediaId: listofIDs });\n }\n };\n\n selectAllVisible = () => {\n let listofIDs: any[] = [];\n if (!this.state.selectAll) {\n this.state.visiblePhotos.forEach((element: any) => {\n element.isSelected = true;\n listofIDs.push({ id: element.id, hidden: element.hidden });\n });\n } else {\n this.state.visiblePhotos.forEach((element: any) => {\n element.isSelected = false;\n });\n listofIDs = [];\n }\n\n this.setState({\n listOfMediaId: listofIDs,\n selectAll: !this.state.selectAll\n });\n };\n setPhotos = (val: any) =>\n this.setState({\n visiblePhotos: val\n });\n setSelectAll = () => this.setState({ selectAll: false });\n\n deletePhotos = async () => {\n const { listOfMediaId } = this.state;\n const arrayOfIds = listOfMediaId.map(item => item.id);\n try {\n const res = await $.ajax({\n url: `/api/v1/photos/delete`,\n type: \"DELETE\",\n data: {\n photo_ids: arrayOfIds,\n event_id: this.props.event.id\n }\n });\n\n //@ts-ignore\n toastr.success(\"Successfully updated\");\n Telemetry.track(\"event-gallery-curate:photos-deleted\");\n this.setState({\n listOfMediaId: [],\n selectAll: false,\n reset: true,\n deletePhotosPopup: false\n });\n } catch (err) {\n //@ts-ignore\n toastr.error(\"Failed to update\");\n console.error(err);\n }\n };\n\n curatePhotos = async () => {\n const { listOfMediaId } = this.state;\n const arrayOfIds = listOfMediaId.map(item => item.id);\n const actionVal = this.hideOrUnhideAction();\n try {\n const res = await $.ajax({\n url: `/api/v1/photos/${actionVal}`,\n type: \"POST\",\n data: {\n photo_ids: arrayOfIds,\n event_id: this.props.event.id\n }\n });\n\n //@ts-ignore\n toastr.success(\"Successfully updated\");\n Telemetry.track(`event-gallery-curate:${actionVal}-photos`);\n this.setState({\n listOfMediaId: [],\n selectAll: false,\n reset: true\n });\n } catch (err) {\n //@ts-ignore\n toastr.error(\"Failed to update\");\n console.error(err);\n }\n };\n\n hideOrUnhideAction = () => {\n if (this.state.listOfMediaId.length === 0) return \"hide\";\n const hideOrUnhide = this.state.listOfMediaId.filter(i =>\n i.hidden != true ? true : false\n );\n return hideOrUnhide.length > 0 ? \"hide\" : \"unhide\";\n };\n\n reloadAlbumPhotos = (val: boolean) => this.setState({ reset: val });\n\n showAddAllToCartBtn = () =>\n this.state.filterSelections.favorite &&\n !this.state.loading &&\n !this.state.curationMode &&\n this.state.visiblePhotos.length > 0;\n\n showGalleryActions = () => {\n return (\n (!this.showPasswordComponent() && !this.props.event.isPrivate) ||\n ((this.state.unlockedPrivateEvent || this.getReferenceImage()) &&\n !this.showPasswordComponent())\n );\n };\n\n clearFilters = (e: any) => (e.preventDefault(), this.resetFilter());\n closeSaveCartModal = () => this.setState({ showSaveCartModal: false });\n\n setClearCartWarning = (val: boolean) =>\n this.setState({ clearCartWarning: val });\n\n photoBundleDiscountApplied = () =>\n this.props.cart &&\n this.props.cart.photoBundleDiscountAvailed &&\n this.props.event.id == this.props.cart.photoBundleDiscountEventId;\n\n clearCart = async () => {\n this.state.filterSelections.referenceImage\n ? await this.availPhotoBundleDiscount()\n : this.emptyPhotosFromCart();\n !this.state.filterSelections.referenceImage ||\n (this.state.filterSelections.referenceImage &&\n this.photoBundleDiscountApplied())\n ? this.setSelfieUploaderPopup(true)\n : null;\n };\n canShowFooterCTA = () =>\n this.state.cart?.photos?.length && !this.props.embedded;\n\n setSaveCartPromptShown = () =>\n localStorage.setItem(\"isUserAskedForEmailToSaveCart\", \"true\");\n\n trackPromoteFiltersPopupInteraction = (action: string) => {\n Telemetry.track(\"event-gallery:promote-filters-popup-interacted\", {\n eventId: this.props.event.id,\n eventName: this.props.event.name,\n filterType: action,\n embeddedMode: this.props.embedded\n });\n localStorage.setItem(\"promoteFiltersPopupInteracted\", \"true\");\n };\n\n trackPromoteFiltersPopupABTest = (triggered: boolean) => {\n Telemetry.track(\n \"event-gallery:promote-filters-popup-eligible-event-viewed\",\n {\n eventId: this.props.event.id,\n eventName: this.props.event.name,\n popupTriggered: triggered,\n embeddedMode: this.props.embedded\n }\n );\n };\n\n setGuestUser = (userId: number) => this.setState({ guestUserId: userId });\n\n setGuestUserCart = (userId: number, userEmail: string, cart: Cart) => {\n this.setState(\n { guestUserId: userId, guestUserEmail: userEmail, cart: cart },\n () => {\n this.trackCartEmailPopupActions(\"event-gallery:cart-email-provided\");\n if (this.state.photoAddedToCart) {\n this.addPhotoToCart(this.state.photoAddedToCart);\n }\n }\n );\n };\n trackCartEmailPopupActions = (eventName: string) => {\n Telemetry.track(eventName, {\n eventId: this.props.event.id,\n eventName: this.props.event.name,\n cartId: this.state.cart ? this.state.cart.id : null\n });\n };\n\n shouldShowClearFilters = () => {\n if (this.state.albumModeID) {\n return (\n this.activeFilters().includes(\"albums\") &&\n this.activeFilters().length > 1\n );\n }\n\n return !this.state.albumModeID;\n };\n\n public render() {\n return (\n
\n this.setSelectAll(),\n promptClearPrepaidCart: this.promptClearPrepaidCart,\n showPrepaidClearCartWarning: this.showPrepaidClearCartWarning(),\n setClearCartWarning: (val: boolean) =>\n this.setClearCartWarning(val),\n eventSupportLabel: this.props.event.eventSupportLabel,\n supportEmail: this.props.event.supportEmail,\n guestUserId: this.state.guestUserId,\n setGuestUserId: (val: number) =>\n this.setState({ guestUserId: val }),\n hideUploadSelfie: this.props.hideUploadSelfie,\n albumModeID: this.state.albumModeID,\n showInvitePhotographerModal: this.props.showInvitePhotographerModal,\n showGalleryActions: () => this.showGalleryActions(),\n cookiePrepaidAvailed: this.props.cookiePrepaidAvailed,\n cookiePrepaidPhotosAvailed: this.props.cookiePrepaidPhotosAvailed,\n canShowEmailPopup: () => this.canShowEmailPopup(),\n setGuestUserCart: (userId: number, userEmail: string, cart: Cart) =>\n this.setGuestUserCart(userId, userEmail, cart),\n trackCartEmailPopupActions: this.trackCartEmailPopupActions\n }}\n >\n
\n {this.state.publishState === \"unpublished\" &&\n this.props.event.canUpdatePrivacy && (\n this.setState({ publishPopup: true })}\n />\n )}\n {this.props.embedded ? (\n \n ) : null}\n \n 0 ? this.state.albums[0].name : \"\"\n }\n navigateToPreviousURL={this.navigateToPreviousURL}\n isExpanded={false}\n linkedEventsAvailable={this.props.linkedEventsAvailable}\n promptLinkedEventsPopup={() =>\n this.setState({ linkedEventsPopup: true })\n }\n showShareGallery={() =>\n this.setState({ showShareGalleryModal: true })\n }\n albumModeID={this.state.albumModeID}\n />\n {this.props.photosAvailable && (\n \n {this.renderOfferBanners()}\n {this.props.event.supportEmail ? (\n
\n {this.state.showEmail && (\n \n )}\n
\n \n this.setState({ showEmail: !this.state.showEmail })\n }\n >\n {this.props.event.eventSupportLabel\n ? this.props.event.eventSupportLabel\n : \"Contact support\"}\n \n {this.props.showInvitePhotographerModal && (\n {\n Telemetry.track(\n \"internal-referrals:event-gallery-ph-referral\"\n );\n this.setState({ showInvitePopup: true });\n }}\n >\n \n
\n {\" \"}\n Are you a
\n photographer?\n
\n
\n )}\n
\n
\n ) : (\n this.props.showInvitePhotographerModal && (\n \n {\n Telemetry.track(\n \"internal-referrals:event-gallery-ph-referral\"\n );\n this.setState({ showInvitePopup: true });\n }}\n >\n \n
\n {\" \"}\n Are you a
\n photographer?\n
\n
\n \n )\n )}\n {this.showGalleryActions() && (\n <>\n
\n
\n {this.props.manageEventPath && (\n \n Manage Event\n \n )}\n
\n\n {this.props.canManageTags && (\n
\n {\" \"}\n \n Curate\n \n \n
\n )}\n
\n Loading...}>\n \n this.setState({ promptRemoveOffer: true })\n }\n showBibFilterPopup={this.state.bibFilterPopup}\n showSelfieFilterPopup={this.state.selfieFilterPopup}\n />\n \n \n )}\n\n {this.renderNotifyBanner()}\n {this.activeFilters().length && this.state.photosCount ? (\n
\n
\n

\n {this.state.photosCount} images found\n

\n {this.shouldShowClearFilters() && (\n this.clearFilters(e)}\n >\n Clear\n \n )}\n
\n
\n ) : null}\n {this.showGalleryActions() && this.showAddAllToCartBtn() && (\n
\n {\n this.setState({ isAddToCartLoading: true });\n this.addAllToCart(this.state.visiblePhotos);\n }}\n style={{ marginBottom: 10 }}\n disabled={this.state.isAddToCartLoading}\n >\n {\" \"}\n Add all to cart\n {this.state.isAddToCartLoading ? (\n \n ) : null}\n \n
\n )}\n \n )}\n {this.showGalleryActions() && (\n this.setState({ deletePhotosPopup: true })}\n curatePhotos={this.curatePhotos}\n selectAll={this.state.selectAll}\n selectAllVisible={this.selectAllVisible}\n listOfMediaId={this.state.listOfMediaId}\n setBulkTagging={() => this.setState({ showBulkTagging: true })}\n canDeletePhotos={this.props.canDeletePhotos}\n pageConfiguration={this.props.pageConfiguration}\n hideOrUnhideAction={this.hideOrUnhideAction}\n />\n )}\n\n {this.renderBody()}\n {this.renderPopups()}\n \n \n {this.state.showShareGalleryModal ? (\n \n this.setState({ showShareGalleryModal: false })\n }\n text={\"Share with participants or just show off ;)\"}\n />\n ) : null}\n {this.state.promptRemoveOffer && (\n \n this.setState({ promptRemoveOffer: val })\n }\n removePhotoBundleDiscount={this.removePhotoBundleDiscount}\n hideBundleRemovePrompt={() =>\n this.setState({ promptRemoveOffer: false })\n }\n removeSelfie={this.state.removeSelfie}\n clearAllFilters={this.state.clearAllFilters}\n removeFilter={this.removeFilter}\n />\n )}\n {this.state.showBulkTagging && (\n \n this.setState({ showBulkTagging: false, selectAll: false })\n }\n handlePostCall={() => (\n this.clearMediaIds(), this.setState({ listOfMediaId: [] })\n )}\n />\n )}\n {this.state.deletePhotosPopup && (\n this.setState({ deletePhotosPopup: false })}\n deletePhotos={this.deletePhotos}\n />\n )}\n {this.state.clearCartWarning && (\n \n )}\n {this.state.showPromoteFiltersPopup && (\n {\n this.setState({\n showPromoteFiltersPopup: false,\n selfieFilterPopup: true\n });\n this.trackPromoteFiltersPopupInteraction(\"selfie\");\n }}\n showBibFilter={() => {\n this.setState({\n showPromoteFiltersPopup: false,\n bibFilterPopup: true\n });\n this.trackPromoteFiltersPopupInteraction(\"bib\");\n }}\n hidePromoteFilters={() => {\n this.setState({ showPromoteFiltersPopup: false });\n this.trackPromoteFiltersPopupInteraction(\"close\");\n }}\n photosCount={this.props.eventPhotosCount}\n selfieSearchEnabled={!this.props.event.isPhotoIndexingDisabled}\n bibFilterEnabled={this.props.enableFilterByText}\n />\n )}\n\n {this.canShowFooterCTA() ? (\n \n View Cart\n \n ) : null}\n \n );\n }\n private hidePrepaidBanner() {\n return (\n this.props.event.prepaidCustomersPrimaryAuthField == \"selfie\" &&\n (this.state.selfiePrepaidStatus == \"unavailable\" ||\n !this.state.filterSelections.referenceImage)\n );\n }\n private showOfferBanners() {\n return (\n (this.props.event.prepaidCustomersEnabled && !this.hidePrepaidBanner()) ||\n this.hasValidDiscount()\n );\n }\n\n prepaidAuthSelfie =\n this.props.event.prepaidCustomersEnabled &&\n this.props.event.prepaidCustomersPrimaryAuthField == \"selfie\";\n\n private renderOfferBanners() {\n return this.showOfferBanners() ? (\n Loading...}>\n \n this.setState({ promptPrepaidAuth: true })\n }\n updateFilters={this.updateFilters}\n prepaidHardLimitEnabled={\n this.props.event.prepaidCustomersHardLimitEnabled\n }\n cartCount={\n this.state.cart && this.state.cart.photos\n ? this.state.cart.photos.length\n : 0\n }\n emptyPhotosFromCart={this.emptyPhotosFromCart}\n removePhotoBundleDiscount={this.removePhotoBundleDiscount}\n offerRemover={this.state.promptRemoveOffer}\n hideBundleRemovePrompt={() =>\n this.setState({ promptRemoveOffer: false })\n }\n setSelfieUploaderPopup={this.setSelfieUploaderPopup}\n selfieUploaderPopup={this.state.selfieUploaderPopup}\n getReferenceImage={this.getReferenceImage}\n availPhotoBundleDiscount={this.availPhotoBundleDiscount}\n clearCartWarning={this.state.clearCartWarning}\n setClearCartWarning={this.setClearCartWarning}\n />\n \n ) : null;\n }\n\n private renderNotifyBanner() {\n return (\n this.state.notifyBanner &&\n !this.userOptedNotify() && (\n {\n this.setState({ promptNotifyAuth: true });\n }}\n photoBundleDiscountAvailed={\n this.state.cart ? this.state.cart.photoBundleDiscountAvailed : false\n }\n closeBanner={() => this.setState({ notifyBanner: false })}\n />\n )\n );\n }\n\n trackPrivateEventSelfieUploadFlow = (trackEventName: string) => {\n Telemetry.track(trackEventName, {\n eventId: this.props.event.id,\n eventName: this.props.event.name,\n eoUserId: this.props.event.eoUserId\n });\n };\n\n trackSelfieFilterApplied = () => {\n Telemetry.track(\"event-gallery:filter-applied\", {\n eventId: this.props.event.id,\n eventName: this.props.event.name,\n filterType: \"selfie\",\n embeddedMode: this.props.embedded\n });\n };\n\n private renderBody() {\n return this.state.loading ? (\n
\n \n
\n ) : !this.props.photosAvailable ? (\n \n ) : this.showPasswordComponent() ? (\n \n this.setState({ userInputPassword: password })\n }\n unlockEvent={() => this.unlockProtectedEvent()}\n />\n ) : !this.state.unlockedPrivateEvent ? (\n \n ) : this.state.albums.length > 0 ? (\n {\n this.setState({\n photoAddedToCart: photo,\n filterSelections: {\n ...this.state.filterSelections\n }\n });\n }}\n photoAddedToCart={this.state.photoAddedToCart}\n removePhotoAddedToCart={() => this.setState({ photoAddedToCart: null })}\n />\n ) : null;\n }\n\n private renderPopups() {\n return (\n \n {this.state.promptNotifyAuth && (\n {\n this.setState({ promptNotifyAuth: false });\n }}\n />\n )}\n\n {this.state.promptPrepaidAuth && (\n {\n this.setState({\n prepaidCustomer,\n promptPrepaidAuth: false\n });\n }}\n setUpdatedCart={(updatedCart: Cart) => {\n this.setState({ cart: updatedCart });\n }}\n cancelPrepaidAuth={() =>\n this.setState({ promptPrepaidAuth: false }, () => {\n removeParam(\"prepaid-auth\", window.location.href),\n window.scrollTo(0, 0);\n })\n }\n cartId={this.state.cart ? this.state.cart.id : null}\n />\n )}\n\n {this.state.linkedEventsPopup && this.props.linkedEventsAvailable && (\n \n this.setState({ linkedEventsPopup: false })\n }\n />\n )}\n {this.state.publishPopup && (\n this.setState({ publishPopup: false })}\n updateEventPrivacy={(id: number, val: { publish_mode: string }) =>\n this.setState({ publishState: val.publish_mode })\n }\n schoolUser={this.props.schoolUser}\n eventData={{\n id: this.props.event.id,\n name: this.props.event.name,\n url: this.props.galleryURL,\n publishMode: this.props.event.publishMode,\n password: \"\"\n }}\n />\n )}\n\n {this.state.clearPrepaidCartPopup && (\n \n this.setState({\n clearPrepaidCartPopup: false\n })\n }\n clearCart={() => {\n this.emptyPhotosFromPrepaidCart();\n }}\n primaryAuth={this.props.event.prepaidCustomersPrimaryAuthField}\n />\n )}\n {this.state.showInvitePopup && (\n this.setState({ showInvitePopup: false })}\n type={\"mobile\"}\n />\n )}\n \n );\n }\n\n private showPasswordComponent = () =>\n this.props.event.isProtected && !this.state.authenticated;\n\n private hasValidDiscount = () =>\n this.props.event.price !== 0 && this.props.event.hasDiscount;\n\n private arePrepaidPhotosAvailable() {\n return !!(\n this.state.cart &&\n this.state.prepaidCustomer &&\n (!this.props.event.prepaidCustomersHardLimitEnabled ||\n this.state.cart.prepaidPhotos.length <\n this.state.prepaidCustomer.freePhotosAvailable)\n );\n }\n\n private showPrepaidClearCartWarning() {\n return (\n this.prepaidAuthSelfie &&\n this.state.cart &&\n this.state.cart.photos.length > 0\n );\n }\n\n private promptClearPrepaidCart = () => {\n this.setState({\n clearPrepaidCartPopup: true\n });\n };\n\n private bundleDiscountAvailedFromAnotherEvent = (photo: Photo) =>\n this.state.cart &&\n this.state.cart.photoBundleDiscountAvailed &&\n photo.album.eventId != this.state.cart.photoBundleDiscountEventId;\n\n private isCurrencyMismatch = () => {\n if (\n this.state.cart &&\n this.props.event.currency !== this.state.cart.currency &&\n this.state.cart.photos.length > 0\n ) {\n //@ts-ignore\n toastr.error(\n `The cart can only contain photos in one currency, currently ${this.props.event.currency}. Clear and try adding again.`\n );\n return true;\n }\n return false;\n };\n\n private isBundleDiscountRestricted = (photo: Photo) => {\n if (\n this.bundleDiscountAvailedFromAnotherEvent(photo) &&\n this.state.cart &&\n this.state.cart.photos.length > 0\n ) {\n //@ts-ignore\n toastr.error(\n `You have an active package discount applied. This feature does not permit photos to be added from multiple events. Please clear cart or remove offer before proceeding.`,\n { timeOut: 9500 }\n );\n return true;\n }\n return false;\n };\n\n private isPrepaidPhotoInvalid = () => {\n if (\n this.state.prepaidCustomer &&\n this.props.event.id !== this.state.prepaidCustomer.eventId\n ) {\n //@ts-ignore\n toastr.error(\n \"Your photo pack only applies to the event you purchased it for.\"\n );\n return true;\n }\n return false;\n };\n\n private shouldShowPrepaidCartPopup = () => {\n return (\n this.state.cart &&\n this.state.cart.eventIds.length >= 1 &&\n !this.state.cart.eventIds.includes(this.props.event.id) &&\n this.prepaidAuthCookie()\n );\n };\n\n private needsPrepaidCustomerCreation = () => {\n return (\n this.props.event.prepaidCustomersEnabled &&\n this.props.event.prepaidCustomersPrimaryAuthField == \"cookie\" &&\n !this.state.prepaidCustomer\n );\n };\n\n private addAllToCart = async (valArray: Array) => {\n const photoIds = valArray.map(photo => photo.id);\n\n if (\n this.isCurrencyMismatch() ||\n this.isBundleDiscountRestricted(valArray[0]) ||\n this.isPrepaidPhotoInvalid()\n ) {\n this.setState({ isAddToCartLoading: false });\n return;\n } else if (this.shouldShowPrepaidCartPopup()) {\n this.setState({ isAddToCartLoading: false, clearPrepaidCartPopup: true });\n return;\n } else {\n if (this.needsPrepaidCustomerCreation()) {\n const response = await this.handleCookiePrepaidCustomerCreation();\n if (response) {\n this.setState({ photoAddedToCart: valArray[0] });\n }\n }\n await ajax\n .post(this.props.addAllToCartAPI)\n .send({\n photo_ids: photoIds,\n activeFilters: this.activeFilters(),\n cart_id: this.state.cart ? this.state.cart.id : null\n })\n .then(res => {\n this.setState({ cart: res.body.cart }, () => {\n Telemetry.track(\"event-gallery:add-all-to-cart\", {\n eventId: this.props.event.id,\n eventName: this.props.event.name,\n cartId: res.body.cart.id\n });\n this.setState({ isAddToCartLoading: false });\n // @ts-ignore\n toastr.success(\"Added to cart\", null, { timeOut: 1000 });\n this.checkDiscountAndGetStatus();\n $.getScript(\n withCartIdParam(\"/cart_sales_count\", this.state.cart.id)\n );\n });\n })\n .catch(err => {\n console.log(err);\n this.setState({ isAddToCartLoading: false });\n });\n if (\n this.bundleDiscountAvailedFromAnotherEvent(this.state.visiblePhotos[0])\n ) {\n this.setState(\n {\n cart: {\n ...this.state.cart,\n photoBundleDiscountAvailed: false\n }\n },\n () => this.removePhotoBundleDiscount(false, false)\n );\n }\n const uniquePhotoIds = _.uniq([\n ...(this.state.cart ? this.state.cart.photos : []),\n ...this.state.visiblePhotos.map((photo: Photo) => photo.id)\n ]);\n\n const uniquePrepaidPhotoIds = _.uniq([\n ...(this.state.cart ? this.state.cart.prepaidPhotos : []),\n ...this.state.visiblePhotos.map((photo: Photo) => photo.id)\n ]);\n\n this.setState({\n cart: {\n ...this.state.cart,\n photos: uniquePhotoIds,\n currency: this.props.event.currency,\n prepaidPhotos: this.arePrepaidPhotosAvailable()\n ? uniquePrepaidPhotoIds\n : this.state.cart\n ? this.state.cart.prepaidPhotos\n : []\n }\n });\n }\n };\n\n isCartEmpty = () => {\n if (this.state.cart === null) return true;\n return this.state.cart?.photos?.length == 0;\n };\n\n isSaveCartPopupSeen = () =>\n localStorage.getItem(\"isUserAskedForEmailToSaveCart\")\n ? JSON.parse(\n localStorage.getItem(\"isUserAskedForEmailToSaveCart\") as string\n )\n : false;\n\n interactedWithPromoteFiltersPopup = () =>\n localStorage.getItem(\"promoteFiltersPopupInteracted\")\n ? JSON.parse(\n localStorage.getItem(\"promoteFiltersPopupInteracted\") as string\n )\n : false;\n\n // show cart email popup on clicking add to cart button when user is not signed in, flag is on, paid event, user did not opt for NOT NOW in the past , guest user record null and the cart is empty.\n canShowEmailPopup = () => {\n const { customerCartEmailEnabled, userSignedIn, event } = this.props;\n const { guestUserId } = this.state;\n\n const isConditionsMet =\n customerCartEmailEnabled &&\n !guestUserId &&\n this.isCartEmpty() &&\n !userSignedIn;\n if (this.prepaidAuthCookie()) {\n return isConditionsMet;\n } else {\n return (\n isConditionsMet &&\n !this.isSaveCartPopupSeen() &&\n !event.prepaidCustomersEnabled\n );\n }\n };\n\n afterAddToCart = () => {\n this.checkDiscountAndGetStatus();\n $.getScript(withCartIdParam(\"/cart_sales_count\", this.state.cart.id));\n this.prepaidAuthCookie() && this.handleCookiePrepaidCustomerCreation();\n };\n prepaidAuthCookie = () =>\n this.props.event.prepaidCustomersPrimaryAuthField === \"cookie\";\n\n addPhotoToCart = (photo: any, hideEmailPopup?: boolean) => {\n if (this.isCurrencyMismatch() || this.isBundleDiscountRestricted(photo)) {\n return;\n }\n\n if (this.shouldShowPrepaidCartPopup()) {\n this.setState({ clearPrepaidCartPopup: true });\n return;\n } else {\n ajax\n .post(this.props.addToCartAPI)\n .send({\n photo_id: photo.id,\n activeFilters: this.activeFilters(),\n cart_id: this.state.cart ? this.state.cart.id : null\n })\n .then(res => {\n this.setState(\n {\n cart: res.body.cart\n },\n () => {\n this.afterAddToCart();\n this.trackCartEmailPopupActions(\n \"event-gallery:cart-email-popup-displayed\"\n );\n }\n );\n });\n if (this.bundleDiscountAvailedFromAnotherEvent(photo)) {\n this.setState(\n {\n cart: {\n ...this.state.cart,\n photoBundleDiscountAvailed: false\n }\n },\n () => this.removePhotoBundleDiscount(false, false)\n );\n }\n //@ts-ignore\n (window.dataLayer || []).push({ event: \"addToCart\" });\n ahoy.track(\"albumInteraction\", {\n secondary_type: \"addToCart\",\n photo_id: photo.id,\n album_id: photo.album.id,\n event_id: this.props.event.id\n });\n }\n };\n\n private findAlbumById(albumId: string) {\n return _.filter(this.state.albums, album => album.signedId === albumId)[0];\n }\n\n private setSelfieUploaderPopup(value: boolean) {\n this.setState({ selfieUploaderPopup: value });\n }\n\n private logoutPrepaidCustomer() {\n // @ts-ignore\n toastr.success(\"Logging you out now...\");\n ajax\n .delete(this.props.logoutPrepaidCustomerAPI)\n .send({ cart_id: this.state.cart.id })\n .then(response => {\n this.setState({ prepaidCustomer: null });\n })\n .catch(() =>\n // @ts-ignore\n toastr.failure(\"Error logging out. Please try again.\")\n );\n }\n\n private updatePhotosCount(photosCount: number) {\n this.setState({ photosCount });\n }\n\n private updateFilters(newFilters: any, clearFilters: any) {\n this.setState(\n {\n filterSelections: {\n ...(clearFilters\n ? this.state.defaultFilters\n : this.state.filterSelections),\n ...newFilters\n },\n promptRemoveOffer: clearFilters ? false : this.state.promptRemoveOffer\n },\n () => {\n if (this.state.curationMode) {\n this.setSelectAll();\n this.clearMediaIds();\n this.setPhotos([]);\n }\n if (clearFilters || newFilters?.referenceImage === null) {\n deleteCookie(\"reference_image_for_event\");\n if (this.prepaidAuthSelfie) {\n this.unlinkSelfiePrepaidCustomer();\n }\n } else if (this.state.filterSelections.referenceImage != undefined) {\n setCookie(\n \"reference_image_for_event\",\n `${this.props.event.id}-imageURL-${this.state.filterSelections.referenceImage}`\n );\n }\n if (\n this.props.event.prepaidCustomersEnabled &&\n this.props.event.prepaidCustomersPrimaryAuthField == \"selfie\" &&\n this.state.filterSelections.referenceImage\n )\n this.handleSelfiePrepaidCustomerCreation(\n this.state.filterSelections.referenceImage\n );\n if (this.props.event.isPrivate) this.togglePrivateEvent();\n }\n );\n }\n\n private unlinkSelfiePrepaidCustomer = () => {\n ajax\n .delete(\n withCartIdParam(this.props.unlinkPrepaidCustomerAPI, this.state.cart.id)\n )\n .then(res => {\n this.setState({\n cart: res.body.updatedCart,\n prepaidCustomer: res.body.prepaidCustomer,\n selfiePrepaidStatus: \"unavailable\"\n });\n });\n };\n\n private handleSelfiePrepaidCustomerCreation = (referenceImageURL: string) => {\n this.setState(\n {\n selfiePrepaidStatus: \"unavailable\"\n },\n () => {\n ajax\n .post(this.props.createPrepaidCustomerAPI)\n .send({\n reference_image_url: referenceImageURL\n })\n .then(res => {\n this.setState({\n cart: res.body.updatedCart,\n prepaidCustomer: res.body.prepaidCustomer,\n selfiePrepaidStatus: res.body.prepaidCustomer\n ? \"available\"\n : \"availed\"\n });\n });\n }\n );\n };\n\n private togglePrivateEvent() {\n if (this.state.filterSelections.referenceImage) this.unlockPrivateEvent();\n else this.lockPrivateEvent();\n }\n\n private resetFilter() {\n if (this.state.cart && this.state.cart.photoBundleDiscountAvailed) {\n this.setState({ promptRemoveOffer: true, removeSelfie: true });\n } else if (this.state.albumModeID) {\n this.updateFilters(\n { ...this.state.defaultFilters, albums: [this.state.albums[0].id] },\n false\n );\n } else {\n this.updateFilters(null, true);\n }\n }\n\n private activeFilters() {\n const filters = this.state.filterSelections;\n const activeFiltersCollection = [];\n\n if (filters.albums.length > 0) activeFiltersCollection.push(\"albums\");\n if (filters.photographers.length > 0)\n activeFiltersCollection.push(\"photographers\");\n if (filters.photoTime.active) activeFiltersCollection.push(\"time\");\n if (filters.photoText) activeFiltersCollection.push(\"bib_number\");\n if (filters.referenceImage) activeFiltersCollection.push(\"selfie\");\n if (filters.favorite) activeFiltersCollection.push(\"favorite\");\n\n return activeFiltersCollection;\n }\n\n private checkDiscountAndGetStatus() {\n if (this.props.event.hasDiscount)\n ajax\n .get(\n withCartIdParam(\n this.props.event.discountStatusPath,\n this.state.cart ? this.state.cart.id : null\n )\n )\n .then(res => {\n this.setState({\n discountMessage: res.body.message,\n cartFullPrice: res.body.cart_full_price,\n cartDiscountedPrice: res.body.cart_discounted_price,\n cartHasDiscount: res.body.cart_has_discount\n });\n });\n }\n\n private removePhotoFromCart(photo: Photo) {\n const substitutePrepaidPhoto =\n _.includes(this.state.cart.prepaidPhotos, photo.id) &&\n _.head(\n _.difference(this.state.cart.photos, this.state.cart.prepaidPhotos)\n );\n\n this.setState({\n cart: {\n ...this.state.cart,\n photos: _.without(this.state.cart.photos, photo.id),\n prepaidPhotos: _.concat(\n _.without(this.state.cart.prepaidPhotos, photo.id),\n substitutePrepaidPhoto || []\n )\n }\n });\n\n ajax\n .delete(this.props.removeFromCartAPI)\n .send({ photo_id: photo.id, cart_id: this.state.cart.id })\n .then(res => {\n // @ts-ignore\n toastr.success(\"Removed from cart\", null, {\n timeOut: 1000\n });\n this.checkDiscountAndGetStatus();\n $.getScript(withCartIdParam(\"/cart_sales_count\", this.state.cart.id));\n })\n .catch(err => {\n console.log(err);\n });\n }\n\n private async emptyPhotosFromCart() {\n let response = await ajax.delete(this.props.emptyCartAPI).send({\n cart_id: this.state.cart ? this.state.cart.id : null\n });\n if (response.status === 200) {\n this.setState({\n cart: response.body.cart\n });\n $.getScript(withCartIdParam(\"/cart_sales_count\", this.state.cart.id));\n }\n }\n\n private emptyPhotosFromPrepaidCart() {\n ajax\n .delete(this.props.emptyCartAPI)\n .send({ cart_id: this.state.cart ? this.state.cart.id : null })\n .then((response: any) => {\n this.setState({\n cart: response.body.cart\n });\n $.getScript(withCartIdParam(\"/cart_sales_count\", this.state.cart.id));\n // @ts-ignore\n toastr.success(\"Your current cart has been cleared.\");\n });\n }\n\n handleCookiePrepaidCustomerCreation = async () => {\n if (!this.props.cookiePrepaidAvailed && !this.state.prepaidCustomer) {\n try {\n const res = await ajax.post(this.props.createPrepaidCustomerAPI).send({\n email: this.state.guestUserId && this.state.guestUserEmail\n });\n\n return new Promise(resolve => {\n this.setState(\n {\n cart: res.body.updatedCart,\n prepaidCustomer: res.body.prepaidCustomer\n },\n () => {\n resolve(true);\n }\n );\n });\n } catch (error) {\n console.error(\"Error in handleCookiePrepaidCustomerCreation:\", error);\n return false;\n }\n }\n return true;\n };\n\n private availPhotoBundleDiscount = async () => {\n if (this.state.cart && this.state.cart.id) {\n await this.emptyPhotosFromCart();\n }\n await ajax\n .post(this.props.availPhotoBundleDiscountAPI)\n .send({\n cart_id: this.state.cart ? this.state.cart.id : null,\n event_id: this.props.event.id\n })\n .then(res => {\n this.setState({\n cart: {\n ...this.state.cart,\n ...res.body.cart\n }\n });\n });\n };\n\n private removePhotoBundleDiscount = (\n availPrepaidOffer: boolean,\n availResetFilter: boolean\n ) => {\n ajax\n .post(this.props.withdrawPhotoBundleDiscountAPI)\n .send({ cart_id: this.state.cart.id })\n .then(res => {\n this.setState({\n cart: {\n ...this.state.cart,\n ...res.body.cart\n },\n promptRemoveOffer: false\n });\n availResetFilter ? this.resetFilter() : null;\n availPrepaidOffer && this.setState({ promptPrepaidAuth: true });\n })\n .catch(err => console.log(err));\n };\n\n private registerCustomerLead(email: string) {\n if (/^([\\w.%+-]+)@([\\w-]+\\.)+([\\w]{2,})$/i.test(email)) {\n ajax\n .post(this.props.registerCustomerLeadAPI)\n .send({ email })\n .then(() => {\n setCookie(\n \"customer_email_for_event\",\n `${email}-${this.props.event.slug}`\n );\n this.setState({ promptNotifyAuth: false });\n setTimeout(() => this.setState({ notifyBanner: false }), 2000);\n // @ts-ignore\n toastr.success(\n \"Thanks, we'll send you an email once the photos are ready.\"\n );\n })\n .catch(error => {\n // @ts-ignore\n toastr.error(error.response.body.error);\n });\n } else {\n // @ts-ignore\n toastr.error(\"The email you've entered is invalid.\");\n }\n }\n\n private userOptedNotify() {\n const cookie = getCookie(\"customer_email_for_event\");\n const userEmail = this.props.userEmail;\n const eventSlug = this.props.event.slug;\n if (!cookie) return false;\n const cookieEmail = cookie.split(\"-\")[0];\n const cookieEventSlug = cookie.split(\"-\")[1];\n if (userEmail)\n return cookieEmail === userEmail && cookieEventSlug === eventSlug;\n else return cookieEventSlug === eventSlug;\n }\n\n private authenticateEvent() {\n const storedEventPassword = getCookie(\"authenticated_event_password\");\n\n ajax\n .get(this.props.authenticateEventPasswordAPI)\n .query({\n event_password: storedEventPassword\n })\n .then(res => {\n let userAuthenticated =\n res.body.authenticated || !!this.props.bypassPasswordPrompt;\n this.setState(\n {\n userInputPassword: this.props.event.isProtected\n ? userAuthenticated\n ? getCookie(\"authenticated_event_password\") ||\n this.props.eventPassword\n : \"\"\n : \"\",\n authenticated: this.props.event.isProtected\n ? userAuthenticated\n : true\n },\n () => this.setState({ loading: false })\n );\n });\n }\n\n private loadAlbums() {\n ajax\n .get(this.props.albumsAPI)\n .query({ cartId: this.state.cart ? this.state.cart.id : null })\n .query({ album_id: getAlbumId() })\n .then(\n response => {\n const albums = response.body.albums;\n this.setState({\n albums,\n loading: false,\n //@ts-ignore\n filterSelections: getAlbumId()\n ? {\n ...this.state.filterSelections,\n albums: [albums[0].id]\n }\n : this.state.filterSelections,\n filterOptions: {\n ...this.state.filterOptions,\n //@ts-ignore\n albums: _.uniqBy(\n _.map(albums, album => {\n return {\n id: album.id,\n name: album.name,\n photographerId: album.photographerId,\n photographerName: album.photographerName\n };\n }),\n \"id\"\n ),\n photographers: _.uniqBy(\n _.map(albums, album => {\n return {\n id: album.photographerId,\n name: album.photographerName,\n albumsCount: _.filter(albums, {\n photographerId: album.photographerId\n }).length\n };\n }),\n \"id\"\n )\n }\n });\n },\n response => null\n );\n }\n\n getReferenceImage = () => {\n const cookie = getCookie(\"reference_image_for_event\");\n const [eventId, referenceImage] = cookie ? cookie.split(\"-imageURL-\") : [];\n const photoBundleSelfie =\n this.props.cart &&\n this.props.cart.photoBundleDiscountEventId === this.props.event.id &&\n this.props.cart.photoBundleDiscountAvailed\n ? cookie\n : null;\n const parsedEventId = eventId ? parseInt(eventId) : null;\n if (\n (!cookie && !photoBundleSelfie) ||\n (cookie && parsedEventId != this.props.event.id)\n ) {\n //return null if none of these exist or if cookie exists but the event ID doesn't match\n return null;\n } else if (\n photoBundleSelfie ||\n (parsedEventId === this.props.event.id && referenceImage)\n ) {\n //return reference image if either of the above conditions are true\n return referenceImage;\n }\n return null;\n };\n\n private navigateToPreviousURL() {\n window.location.assign(document.referrer);\n }\n\n private unlockProtectedEvent() {\n this.setState(\n {\n authenticated: true\n },\n () => {\n setCookie(\n \"authenticated_event_password\",\n `${this.state.userInputPassword}`\n );\n this.handlePromoteFiltersPopup();\n }\n );\n }\n\n private unlockPrivateEvent() {\n this.setState({\n unlockedPrivateEvent: true\n });\n }\n\n private lockPrivateEvent() {\n this.setState({\n unlockedPrivateEvent: false\n });\n }\n}\n\nexport default EventGalleryMobile;\n","import React from \"react\";\nconst warnIcon = require(\"../styles/icon-red-warn.svg\");\n\ninterface RemoveBundlePromptProps {\n setPromptRemoveOffer: Function;\n removePhotoBundleDiscount: (\n availPrepaidOffer: boolean,\n availResetFilter: boolean\n ) => void;\n hideBundleRemovePrompt: () => void;\n removeSelfie: boolean;\n clearAllFilters: boolean;\n removeFilter: (val: string, newFilter: object | null) => void;\n}\n\nconst RemoveBundlePrompt = ({\n setPromptRemoveOffer,\n removePhotoBundleDiscount,\n hideBundleRemovePrompt,\n removeSelfie,\n clearAllFilters,\n removeFilter\n}: RemoveBundlePromptProps) => {\n const removeOffer = async () => {\n await removePhotoBundleDiscount(false, false);\n clearAllFilters\n ? removeFilter(\"clearAllFilters\", null)\n : removeSelfie &&\n removeFilter(\"removeSelfie\", {\n [\"referenceImage\"]: null\n });\n setPromptRemoveOffer(false);\n };\n\n return (\n
\n \n
\n  \n setPromptRemoveOffer(false)}\n >\n ×\n \n
\n \n

Are you Sure?

\n
\n
\n

\n If you remove this offer, you will have to pay full price for the\n photos in the cart.\n

\n
\n
\n removeOffer()}\n >\n Remove Offer\n \n {\n await hideBundleRemovePrompt();\n setPromptRemoveOffer(false);\n }}\n >\n Keep Offer\n \n
\n
\n
\n
\n
\n );\n};\n\nexport default RemoveBundlePrompt;\n","import React from \"react\";\n\nconst HideCancel = ({ color, width }: { color: string; width: number }) => {\n return (\n \n \n \n \n \n );\n};\nexport default HideCancel;\n","import React from \"react\";\n\nconst HideIcon = (props: { color: string | undefined; width: number }) => {\n return (\n \n \n \n \n );\n};\nexport default HideIcon;\n","import React from \"react\";\n\nexport const AddToCart = (props: { color: string }) => {\n return (\n \n \n \n );\n};\nexport const RemoveFromCart = (props: { color: string }) => {\n return (\n \n \n \n \n \n );\n};\nexport const LightBoxViewCart = (props: { color: string }) => {\n return (\n \n \n \n \n \n );\n};\n","import React from \"react\";\nimport _ from \"lodash\";\nimport { Photo, Cart } from \"../types\";\nimport Modal from \"../../../../utils/Modal\";\nimport LightBox from \"../../../BrowseEvent/components/albums/LightBox\";\nimport Gallery from \"react-grid-gallery\";\nimport millisecondsTohms from \"../../../../utils/millisecondsTohms\";\nconst playIcon = require(\"../../styles/play.svg\");\nimport {\n CartOutline,\n CartFilled\n} from \"../../../BrowseEvent/components/vectors/AddToCartIcon\";\nimport \"../../styles/styles.css\";\n\ninterface PhotoGalleryProps {\n photos: Photo[];\n addPhotoToCart: (photo: Photo) => void;\n removePhotoFromCart: (photo: Photo) => void;\n cart: Cart;\n isEmbed: boolean;\n loadMorePhotos: () => void;\n isAuthorizedForDirectDownloads: boolean;\n primaryColor?: string;\n userId?: number;\n parentName?: string;\n}\ninterface PhotoGalleryState {\n showLightBox: boolean;\n photoIndex: number;\n photos: Photo[];\n}\nconst tagStyle = {\n display: \"inline\",\n padding: \".2em .6em .3em\",\n fontSize: \"60%\",\n fontWeight: \"600\",\n lineHeight: \"1\",\n color: \"#FFF\",\n background: \"rgba(7,36,22,.6)\",\n textAlign: \"center\",\n whiteSpace: \"nowrap\",\n verticalAlign: \"baseline\",\n borderRadius: \".25em\"\n};\n\nconst customThumbViewportStyle = () => {\n return {\n overflow: \"hidden\"\n };\n};\n\nconst customThumbStyle = () => {\n return {\n cursor: \"pointer\",\n marginTop: 0,\n WebkitTouchCallout: \"none\"\n };\n};\n\ninterface ImageComponentProps {\n props: {\n item: {\n videoContent: any;\n videoDuration: string | number;\n thumbnail: string | undefined;\n id: number;\n album: { name: string };\n hidden: boolean;\n favorite: boolean;\n isSelected: boolean;\n };\n imageProps: JSX.IntrinsicAttributes &\n React.ClassAttributes &\n React.ImgHTMLAttributes;\n };\n handleImageSelect: ({ photo }: { photo: any }) => void;\n primaryColor: string;\n}\n\nconst ImageComponent = ({\n props,\n handleImageSelect,\n primaryColor\n}: ImageComponentProps) => {\n const [show, setShow] = React.useState(false);\n\n const ImageSelectIcon = (\n {\n e.stopPropagation();\n handleImageSelect({ photo: props.item });\n }}\n >\n {props.item.isSelected ? (\n \n ) : (\n \n )}\n \n );\n if (props.item.videoContent) {\n return (\n
\n \n {millisecondsTohms(props.item.videoDuration)}\n \n \n {ImageSelectIcon}\n setShow(true)}\n onMouseLeave={() => setShow(false)}\n alt={`${props.item.album.name}-${props.item.id}`}\n />\n
\n );\n } else\n return (\n <>\n {ImageSelectIcon}\n \n \n );\n};\n\nclass PhotoGallery extends React.Component<\n PhotoGalleryProps,\n PhotoGalleryState\n> {\n constructor(props: PhotoGalleryProps) {\n super(props);\n\n this.state = {\n showLightBox: false,\n photoIndex: -1,\n photos: []\n };\n }\n\n public componentDidMount() {\n this.updatePhotos(\n this.props.photos,\n this.props.cart ? this.props.cart.photos : []\n );\n }\n\n public componentWillReceiveProps(nextProps: PhotoGalleryProps) {\n this.updatePhotos(\n nextProps.photos,\n nextProps.cart ? nextProps.cart.photos : []\n );\n }\n\n handleImageSelect = ({ photo }: { photo: any }) => {\n this.updatePhotoInCart(photo);\n };\n\n public render() {\n return (\n <>\n {\n return (\n \n );\n }}\n onClickThumbnail={this.showLightBox}\n tagStyle={tagStyle}\n selectedIconColor={this.props.primaryColor || \"#34b2a7\"}\n enableKeyboardInput={true}\n onContextMenu={this.contextMenu}\n tileViewportStyle={customThumbViewportStyle}\n thumbnailStyle={customThumbStyle}\n onRender={() => null}\n />\n {this.state.showLightBox ? (\n \n 0\n }\n addToCart={this.props.addPhotoToCart}\n removeFromCart={this.props.removePhotoFromCart}\n cartId={this.props.cart ? this.props.cart.id : null}\n isEmbed={this.props.isEmbed}\n isAuthorizedForDirectDownloads={\n this.props.isAuthorizedForDirectDownloads\n }\n primaryColor={this.props.primaryColor || \"#259fa5\"}\n userId={this.props.userId}\n parentName={this.props.parentName}\n />\n \n ) : null}\n \n );\n }\n\n private updatePhotos = (photos: Photo[], photosInCart: number[]) => {\n this.setState({\n photos: photos.map((photo: Photo) => {\n return {\n ...photo,\n ...(photo.timeTaken\n ? {\n tags: [\n {\n title: \"Time\",\n value: photo.timeTaken\n }\n ]\n }\n : {}),\n isSelected: _.includes(photosInCart, photo.id),\n src: \"\",\n disableContextMenu: true\n };\n })\n });\n };\n private contextMenu = (e: any) => {\n e.preventDefault();\n return false;\n };\n private photoEvent = () =>\n this.state.photos[this.state.photoIndex].album.event;\n private photoAlbum = () => this.state.photos[this.state.photoIndex].album;\n\n private updatePhotoInCart = (photo: Photo) => {\n if (photo.isSelected) {\n this.props.removePhotoFromCart(photo);\n } else {\n this.props.addPhotoToCart(photo);\n }\n };\n private showLightBox = (index: number) => {\n this.setState({ showLightBox: false }, () => {\n this.setState({\n photoIndex: index,\n showLightBox: true\n });\n });\n\n if (this.state.photos[index + 1] === undefined) {\n this.props.loadMorePhotos();\n }\n };\n\n private closeLightBox = () => {\n this.setState({\n showLightBox: false\n });\n };\n}\n\nexport default PhotoGallery;\n","import React from \"react\";\nimport _ from \"lodash\";\nimport { Photo, Cart } from \"../types\";\nimport InfiniteScroll from \"react-infinite-scroll-component\";\nconst gssNewLoader = require(\"../../images/gss-loader.gif\");\n// @ts-ignore\nimport PrecacheImg from \"../../../../utils/PrecacheImage\";\nimport PhotoGallery from \"./PhotoGallery\";\n\ninterface PhotosProps {\n photos: Photo[];\n cart: Cart;\n addPhotoToCart: (photo: Photo) => void;\n removePhotoFromCart: (photo: Photo) => void;\n loadMorePhotos: () => void;\n isEmbed: boolean;\n hasMorePhotos: boolean;\n isAuthorizedForDirectDownloads: boolean;\n primaryColor?: string;\n userId?: number;\n parentName?: string;\n}\n\nclass Photos extends React.Component {\n constructor(props: PhotosProps) {\n super(props);\n }\n\n public render() {\n return (\n
\n
\n \n \n
\n }\n >\n \n \n
\n\n \n \n );\n }\n\n private imagesToPrefetch = () => {\n if (this.props.photos.length > 0) {\n return [\n this.props.photos[0].watermarkedImg,\n this.props.photos[0].zoomImg\n ];\n } else {\n return [];\n }\n };\n}\n\nexport default Photos;\n","import React, { useContext } from \"react\";\nimport _ from \"lodash\";\n\nconst GroupByCountry = ({\n photosCount,\n selectedCountry,\n countries,\n updateCountry\n}: {\n photosCount: number;\n selectedCountry: string;\n countries: string[];\n updateCountry: (country: string) => void;\n}) => {\n return (\n
\n {photosCount} photos matched in\n
\n \n {selectedCountry} \n \n \n
\n
\n );\n};\n\nexport default GroupByCountry;\n","import React from \"react\";\nimport ajax from \"superagent\";\nimport { moment } from \"../../../../utils/fakeMoment\";\nimport _ from \"lodash\"; // TODO: import only whats needed from lodash-es\nimport Photos from \"./Photos\";\nimport MobilePhotos from \"../../../EventGalleryMobile/Photos\";\nimport { Cart, Photo, Filters, Event } from \"../types\";\nimport {\n SelfieSearchContext,\n SelfieSearchContextType\n} from \"../SelfieSearchContext\";\nimport GroupByCountry from \"../GroupByCountry\";\n// import GroupByEvents from \"../GroupByEvents\"; // TODO: unused - remove\nconst greenFilter = require(\"../../images/green-filter.svg\");\nconst noimgs = require(\"../../images/dark-no-imgs.svg\");\n// const gssNewLoader = require(\"../../images/gss-loader.gif\"); // TODO: unused - remove\n\ninterface PhotosContainerProps {\n photosAPI: string;\n cart: Cart;\n addPhotoToCart: (photo: Photo) => void;\n removePhotoFromCart: (photo: Photo) => void;\n filters: Filters;\n updateFilterOptions: (filters: any) => void;\n openFiltersPopup: () => void;\n}\n\ninterface Photographer {\n id: number;\n name: string;\n albumsCount: number;\n}\n\ninterface PhotosContainerState {\n photos: Photo[];\n totalCount: number;\n enableEventGrouping: boolean;\n selectedCountry: string;\n loadingPhotos: boolean;\n nextPage: number;\n}\n\ninterface FindPhotosGallery {\n cart: Cart | any;\n addPhotoToCart: (photo: Photo) => void;\n removePhotoFromCart: (photo: Photo) => void;\n isEmbed: boolean;\n primaryColor: string;\n}\n\nexport const FindPhotosGalleryContext = React.createContext({\n cart: {},\n addPhotoToCart: () => null,\n removePhotoFromCart: () => null,\n isEmbed: false,\n primaryColor: \"#259fa5\"\n});\n\nclass PhotosContainer extends React.Component<\n PhotosContainerProps,\n PhotosContainerState,\n SelfieSearchContextType\n> {\n public static contextType = SelfieSearchContext;\n public context!: React.ContextType;\n\n constructor(props: PhotosContainerProps, context: SelfieSearchContextType) {\n super(props, context);\n\n this.state = {\n photos: [],\n totalCount: 0,\n enableEventGrouping: false,\n selectedCountry: \"\",\n loadingPhotos: false,\n nextPage: 0\n };\n }\n\n public componentDidMount() {\n this.loadPhotos(this.props.filters, true);\n this.listenToScroll();\n this.setState({\n selectedCountry: this.context.currentUserCountry\n });\n }\n\n public componentWillReceiveProps(nextProps: PhotosContainerProps) {\n if (\n (!_.isEqual(\n this.props.filters.referenceImage,\n nextProps.filters.referenceImage\n ) ||\n this.props.filters.confidenceLevel !==\n nextProps.filters.confidenceLevel ||\n this.props.filters.purchasedEventsFilter !==\n nextProps.filters.purchasedEventsFilter) &&\n nextProps.filters.referenceImage\n ) {\n this.loadPhotos(nextProps.filters, true);\n }\n }\n\n public render() {\n return (\n
\n
\n
\n \n \n Change\n \n
\n \n \"\" Filters{\" \"}\n \n \n
{\" \"}\n {this.renderPhotos()}\n {\n // @ts-ignore\n this.endMarkerEl = el;\n }}\n >\n
\n {this.hasMorePhotos() ? this.footer() : null}\n
\n \n );\n }\n\n private photosRequest = (\n url: string,\n filters: Filters,\n pageNumber: number\n ) => {\n let req = ajax.get(url).query({\n page: pageNumber,\n user_id: this.context.currentUserId\n });\n\n if (filters.referenceImage) {\n req = req.query({\n reference_image: filters.referenceImage\n });\n }\n\n if (filters.confidenceLevel) {\n req = req.query({\n match_threshold: filters.confidenceLevel\n });\n }\n\n if (filters.purchasedEventsFilter) {\n req = req.query({\n purchased_events_filter: filters.purchasedEventsFilter\n });\n }\n return req;\n };\n\n private loadPhotos = (filters: Filters, reset = false) => {\n if (reset) this.setState({ loadingPhotos: true, photos: [] });\n\n this.photosRequest(\n this.props.photosAPI,\n filters,\n reset ? 1 : this.state.nextPage\n )\n .then(response => {\n this.setState(\n {\n photos: _.filter(\n _.concat(this.state.photos, response.body.photos),\n photo => !!photo.watermarkedImg\n ),\n nextPage: response.body.meta.nextPage,\n totalCount: response.body.meta.totalCount,\n loadingPhotos: false\n },\n () => {\n this.props.updateFilterOptions({\n photographers: this.photographersForFilter(this.state.photos)\n });\n }\n );\n })\n .catch(error => {\n console.log(error);\n });\n };\n\n private photographersForFilter = (photos: Photo[]) => {\n return _.uniqBy(\n _.map(photos, photo => {\n return {\n id: photo.album.photographerId,\n name: photo.album.photographerName,\n albumsCount: _.filter(\n photos,\n p => p.album.photographerId === photo.album.photographerId\n ).length\n };\n }),\n \"id\"\n );\n };\n\n private filteredPhotos = () => {\n if (_.isEmpty(this.props.filters.photographers))\n return this.filterByCountry(this.state.photos);\n else\n return this.filterByCountry(\n _.filter(this.state.photos, (photo: Photo) =>\n _.includes(\n this.props.filters.photographers,\n photo.album.photographerId\n )\n )\n );\n };\n\n private filterByCountry = (photos: Photo[]) =>\n this.state.selectedCountry === \"Worldwide\"\n ? photos\n : _.filter(photos, photo => photo.country === this.state.selectedCountry);\n\n private uniqCountries = () =>\n _.uniq(this.state.photos.map(photo => photo.country));\n\n private uniqEvents = () =>\n _.uniqWith(\n this.filteredPhotos().map((photo: Photo) => photo.album.event),\n _.isEqual\n );\n\n private eventPhotos = (eventId: number) =>\n _.filter(\n this.filteredPhotos(),\n (photo: Photo) => photo.album.event.id === eventId\n );\n\n private hasMorePhotos = () => !!this.state.nextPage;\n\n private updateCountry = (country: string) =>\n this.setState({ selectedCountry: country });\n\n private toggleEventGrouping = () =>\n this.setState({\n enableEventGrouping: !this.state.enableEventGrouping\n });\n\n private footer = () => {\n return (\n this.state.loadingPhotos && (\n \n )\n );\n };\n\n private listenToScroll = () => {\n // @ts-ignore\n this.observer = new IntersectionObserver(\n (entries, observer) => {\n entries.forEach(entry => {\n if (entry.intersectionRatio !== 0 && this.hasMorePhotos()) {\n this.loadPhotos(this.props.filters);\n this.setState({ loadingPhotos: true });\n }\n if (!this.hasMorePhotos()) observer.disconnect();\n });\n },\n { rootMargin: \"400px 0px 0px 0px\" }\n );\n // @ts-ignore\n this.observer.observe(this.endMarkerEl);\n };\n private isSelected = (photo: Photo) =>\n _.includes(this.props.cart ? this.props.cart.photos : [], photo.id);\n\n private galleryPhotos = (photos: any) => {\n return _.uniqBy(photos, \"id\").map((photo: any) => {\n return {\n ...photo,\n ...(photo.timeTaken\n ? {\n tags: [\n {\n title: \"Time\",\n value: photo.timeTaken\n }\n ]\n }\n : {}),\n isSelected: this.isSelected(photo),\n src: \"\",\n disableContextMenu: true\n };\n });\n };\n\n private renderPhotos() {\n if (this.state.loadingPhotos && this.filteredPhotos().length === 0) {\n return (\n
\n
\n
\n
\n
\n );\n } else if (this.filteredPhotos().length === 0) {\n return (\n
\n
\n \n

\n There are no photos matching the uploaded face image. Try with a\n different photo.\n

\n
\n
\n );\n } else if (this.state.enableEventGrouping) {\n return this.uniqEvents().map((event: Event, index: number) => (\n
\n
\n

\n \n {event.name} \n \n

\n

\n {moment(event.startDate).format(\"DD MMM, YY\")}\n \n {event.location}\n

\n
\n {\n if (this.hasMorePhotos()) this.loadPhotos(this.props.filters);\n }}\n isEmbed={false}\n hasMorePhotos={this.hasMorePhotos()}\n isAuthorizedForDirectDownloads={false}\n parentName={\"my-snaps-lightbox\"}\n />{\" \"}\n
\n
\n ));\n } else if (/Mobi/i.test(window.navigator.userAgent)) {\n return (\n \n {\n if (this.hasMorePhotos()) this.loadPhotos(this.props.filters);\n }}\n hasMore={this.hasMorePhotos()}\n trackTelemetry={false}\n isAuthorizedForDirectDownloads={false}\n likedMedia={[]}\n userId={undefined}\n primaryColor={\"\"}\n handleLikeButtonClick={() => {}}\n reset={false}\n parentName={\"my-snaps-lightbox\"}\n />\n \n );\n } else {\n return (\n {\n if (this.hasMorePhotos()) this.loadPhotos(this.props.filters);\n }}\n isEmbed={false}\n hasMorePhotos={this.hasMorePhotos()}\n isAuthorizedForDirectDownloads={false}\n parentName={\"my-snaps-lightbox\"}\n />\n );\n }\n }\n}\n\nexport default PhotosContainer;\n","import React, { useContext } from \"react\";\n\nconst BellIcon = ({ color }: { color: string }) => {\n return (\n \n \n \n \n );\n};\nexport default BellIcon;\n","import React, { useEffect, useState, useLayoutEffect } from \"react\";\n\nconst PublishBanner = ({\n openPublishPopup\n}: {\n openPublishPopup: Function;\n}) => {\n const [hasTranslateClass, setHasTranslateClass] = useState(false);\n const [mobileScreen, setMobileScreen] = useState(false);\n\n useLayoutEffect(() => {\n const onDOMContentLoaded = () => {\n const screenWidth = window.innerWidth;\n\n if (screenWidth > 700) {\n setMobileScreen(false);\n } else {\n setMobileScreen(true);\n }\n const hasTranslateClass =\n document.querySelector(\".bg-googl-translate\") !== null;\n setHasTranslateClass(hasTranslateClass);\n };\n\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", onDOMContentLoaded);\n } else {\n onDOMContentLoaded();\n }\n return () => {\n document.removeEventListener(\"DOMContentLoaded\", onDOMContentLoaded);\n };\n }, []);\n\n return (\n \n \n Unpublished{\" \"}\n openPublishPopup()}>\n {\" \"}\n Publish Now\n \n \n \n \n \n );\n};\n\nexport default PublishBanner;\n","import React, { KeyboardEvent, useState } from \"react\";\nimport * as EmailValidator from \"email-validator\";\nimport { Cart } from \"../BrowseEvent/components/types\";\n\ntype SaveCartProps = {\n closeSaveCartModal: () => void;\n setSaveCartPromptShown: () => void;\n setGuestUserCart: (userId: number, userEmail: string, cart: Cart) => void;\n trackCartEmailPopupActions: (eventName: string) => void;\n emailMandatory: boolean;\n};\n\nconst SaveCart = ({\n closeSaveCartModal,\n setSaveCartPromptShown,\n setGuestUserCart,\n trackCartEmailPopupActions,\n emailMandatory\n}: SaveCartProps) => {\n const customerEmailField: any = React.createRef();\n const [shouldDisableSave, setShouldDisableSave] = useState(false);\n\n const saveGuestUserCart = () => {\n const email = customerEmailField.current.value;\n const requestBody = {\n email: email.toLowerCase()\n };\n\n if (EmailValidator.validate(email)) {\n setShouldDisableSave(true);\n fetch(\"/api/v1/customer_user/create_guest\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(requestBody)\n })\n .then(response => {\n return response.json();\n })\n .then(data => {\n setGuestUserCart(data.user_id, data.user_email, data.cart);\n //@ts-ignore\n toastr.success(\"Email sent with a link to your cart\", null, {\n timeOut: 1000\n });\n setSaveCartPromptShown();\n setShouldDisableSave(false);\n closeSaveCartModal();\n })\n .catch(error => {\n const errorMessage = error.message.replace(\"Error: \", \"\");\n //@ts-ignore\n toastr.error(errorMessage);\n });\n }\n // @ts-ignore\n else toastr.error(\"Please enter a valid email\");\n };\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n saveGuestUserCart();\n }\n };\n const handleBackdropClick = () => {\n setSaveCartPromptShown();\n trackCartEmailPopupActions(\"event-gallery:cart-email-popup-dismissed\");\n closeSaveCartModal();\n };\n\n return (\n
\n \n
\n
\n
\n Almost there...\n {\n trackCartEmailPopupActions(\n \"event-gallery:cart-email-popup-dismissed\"\n );\n setSaveCartPromptShown();\n closeSaveCartModal();\n }}\n >\n ×{\" \"}\n \n
\n\n
\n

\n Add your email to save this photo for checkout\n

\n \n

\n By adding your email address you consent to use as per the\n website {\" \"}\n \n Terms & conditions\n \n

\n\n
\n \n {\" \"}\n Add to Cart{\" \"}\n \n
\n {\n setSaveCartPromptShown();\n closeSaveCartModal();\n trackCartEmailPopupActions(\n \"event-gallery:cart-email-popup-dismissed\"\n );\n }}\n >\n {emailMandatory ? \"Not now\" : \"Proceed without email\"}\n
\n
\n
\n
\n
\n\n {\n handleBackdropClick();\n }}\n />\n \n );\n};\n\nexport default SaveCart;\n","import React, { useEffect, useRef } from \"react\";\nimport photographer from \"./images/photographer.svg\";\nimport popup from \"./images/popup-bg.png\";\nimport \"./styles/style.css\";\ndeclare global {\n interface Window {\n hbspt: {\n forms: {\n create: (options: {\n region: string;\n portalId: string;\n formId: string;\n target: string;\n }) => void;\n };\n };\n }\n}\n\nconst HubSpotForm = () => {\n useEffect(() => {\n const script = document.createElement(\"script\");\n script.src = \"//js.hsforms.net/forms/embed/v2.js\";\n script.charset = \"utf-8\";\n script.type = \"text/javascript\";\n\n script.onload = () => {\n if (window.hbspt) {\n window.hbspt.forms.create({\n region: \"na1\",\n portalId: \"42524444\",\n formId: \"638fb581-cec3-4fe6-814c-42c276602cf8\",\n target: \"#hubspotForm\"\n });\n }\n };\n\n document.body.appendChild(script);\n\n return () => {\n document.body.removeChild(script);\n };\n }, []);\n\n return
;\n};\n\nconst InvitePhotographerPopup = ({\n handleCloseClick,\n type\n}: {\n handleCloseClick: Function;\n type: string;\n}) => {\n const popupRef = useRef(null);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n popupRef.current &&\n !popupRef.current.contains(event.target as Node)\n ) {\n handleCloseClick();\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [handleCloseClick]);\n\n return (\n
\n \n \n \n
\n  \n \n
\n
\n \n

\n Ready to sell more photos and maximize your photography success?\n

\n \n Join GeoSnapShot: the number one platform for sports\n photographers. No sign up fees.\n \n
\n
\n
\n \n
\n
\n \n \n
\n
\n );\n};\n\nexport default InvitePhotographerPopup;\n","const getAlbumId = () => {\n const queryString = window.location.search;\n const urlParams = new URLSearchParams(queryString);\n const albumIdFromUrl = urlParams.get(\"album_id\");\n return albumIdFromUrl;\n};\n\nexport default getAlbumId;\n"],"names":["_","_a","userId","handleImageSelect","primaryColor","photos","nextPage","eventPassword","index","hasTranslateClass"],"sourceRoot":""}