{"version":3,"file":"js/event-search-bar-bundle-39c162420d67af51238a.js","mappings":"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","sources":["webpack://geosnapshot/./client/bundles/PhotoManager/API/api.tsx","webpack://geosnapshot/./client/bundles/EventSearchBar/index.tsx","webpack://geosnapshot/./client/packs/event-search-bar-bundle.js","webpack://geosnapshot/./client/utils/BrowserHelper.tsx"],"sourcesContent":["import ajax from \"superagent\";\nimport { Album, EventType } from \"../components\";\nimport { addParamToURL } from \"../../../utils/BrowserHelper\";\n\nexport const fetchEventList = async (\n page: number,\n setEvents: (val: EventType[], nextPage: number | null) => void,\n filter: string | null = \"all\"\n) => {\n try {\n const response = await fetch(\n `/api/v1/photo-manager/contents?t=root&page=${page}&event_timing_scope=${filter}`,\n {\n headers: {\n \"Cache-Control\": \"no-store\",\n Pragma: \"no-cache\"\n },\n cache: \"no-store\"\n }\n );\n if (!response.ok) {\n throw new Error(`HTTP error! Status: ${response.status}`);\n }\n const data = await response.json();\n const meta = data.meta;\n setEvents(data.entities, meta.nextPage);\n } catch (error) {\n console.error(\"Failed to fetch events:\", error);\n }\n};\n\nexport const fetchAlbumDetails = async (eventId: number) => {\n try {\n const response = await fetch(\n `/api/v1/photo-manager/contents?t=Gallery&id=${eventId}`,\n {\n headers: {\n \"Cache-Control\": \"no-store\",\n Pragma: \"no-cache\"\n },\n cache: \"no-store\"\n }\n );\n if (!response.ok) {\n throw new Error(`HTTP error! Status: ${response.status}`);\n }\n const data = await response.json();\n return data.entities;\n } catch (error) {\n console.error(`Failed to fetch albums for event ${eventId}:`, error);\n return [];\n }\n};\n\nexport const fetchAlbumPhotos = async (albumId: number, page: number) => {\n try {\n const response = await fetch(\n `/api/v1/photo-manager/contents?t=Album&id=${albumId}&page=${page}`\n );\n if (!response.ok) {\n throw new Error(`HTTP error! Status: ${response.status}`);\n }\n const data = await response.json();\n return data;\n } catch (error) {\n console.error(`Failed to fetch photos for album ${albumId}:`, error);\n return [];\n }\n};\n\nexport const fetchEventsByName = async (name: string) => {\n try {\n const response = await fetch(`/api/v1/photo-manager/search?q=${name}`);\n if (!response.ok) {\n throw new Error(`HTTP error! Status: ${response.status}`);\n }\n const data = await response.json();\n return data;\n } catch (error) {\n console.error(`Failed to fetch events with the name ${name}:`, error);\n return [];\n }\n};\n\nexport const handleCreateAlbum = async (\n albumName: string,\n groupPhotos: boolean,\n selectedEvent: EventType,\n groupPhotosEnabled: boolean,\n onCreateAlbumSuccess: (newAlbum: Album) => void\n) => {\n try {\n const response = await ajax.post(\n `/api/v1/albums?event_id=${selectedEvent.id}&name=${albumName}${\n groupPhotosEnabled ? `&group_photos=${groupPhotos}` : \"\"\n }`\n );\n\n if (!response.ok) {\n throw new Error(\"Failed to create album\");\n }\n\n const newAlbum = response.body.album;\n onCreateAlbumSuccess(newAlbum);\n } catch (error) {\n console.error(\"Error creating album:\", error);\n // @ts-ignore\n toastr.error(\"Unable to create album. Please try again\", null, 1000);\n }\n};\n\nexport const submitAlbumName = (\n e: any,\n albumId: number,\n albumName: string,\n hasInvalidatedValues: Function,\n setAlbumNameDrafts: Function,\n setAlbumsInEditMode: Function,\n onEditSuccess: (albums: Album[] | Album) => void,\n albumsData: Album[]\n) => {\n e.stopPropagation();\n if (hasInvalidatedValues(albumId, true)) {\n return;\n }\n\n fetch(`/api/v1/album/${albumId}/`, {\n method: \"PATCH\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ name: albumName })\n })\n .then(response => {\n if (!response.ok) {\n const errorMsg =\n response.status === 404\n ? \"Album not found.\"\n : \"Failed to update album name.\";\n console.error(errorMsg);\n throw new Error(errorMsg);\n }\n return response.json();\n })\n\n .then(updatedAlbum => {\n setAlbumNameDrafts((prev: any) => {\n const updatedNames = { ...prev };\n delete updatedNames[albumId];\n return updatedNames;\n });\n\n setAlbumsInEditMode((prev: any[]) =>\n prev.filter((id: number) => id !== albumId)\n );\n\n if (albumsData.length > 0) {\n const updatedAlbums = albumsData.map(album =>\n album.id === albumId\n ? { ...album, name: updatedAlbum.album.name }\n : album\n );\n onEditSuccess(updatedAlbums);\n } else {\n onEditSuccess(updatedAlbum.album);\n }\n })\n .catch(error => {\n console.error(\"Error while updating album name:\", error);\n });\n};\n\nexport const handleDelete = async (\n setLoading: Function,\n albumId: number,\n onDeleteSuccess: Function,\n onClose: Function\n) => {\n setLoading(true);\n try {\n const response = await ajax.delete(`/api/v1/albums/${albumId}`);\n if (!response.ok) {\n throw new Error(\"Failed to delete album\");\n }\n onDeleteSuccess();\n onClose();\n } catch (error) {\n console.error(\"Error deleting album:\", error);\n // @ts-ignore\n toastr.error(\"Unable to delete album. Please try again\", null, 1000);\n } finally {\n setLoading(false);\n }\n};\n\nexport const deletePhotos = async (\n selectedMediaId: Array,\n selectedEventId: number,\n onDeletePhotoSuccess: Function,\n selectedAlbumId: number\n) => {\n try {\n await $.ajax({\n url: `/api/v1/photos/delete`,\n type: \"DELETE\",\n data: {\n photo_ids: Array.from(selectedMediaId),\n event_id: selectedEventId\n }\n });\n\n // @ts-ignore\n toastr.success(\"Successfully deleted\");\n onDeletePhotoSuccess();\n\n // Refresh the photos after deletion\n } catch (err) {\n // @ts-ignore\n toastr.error(\"Failed to delete\");\n console.error(err);\n }\n};\n\nexport const handleSave = (\n photoId: number,\n userId: number,\n onSuccess: Function\n) => {\n ajax\n .post(addParamToURL(`/api/v1/photos/${photoId}/save`, \"user_id\", userId))\n .then(res => {\n onSuccess(true);\n //@ts-ignore\n toastr.success(\"Photo saved\", null, { timeOut: 1000 });\n });\n\n return true;\n};\n\nexport const handleUnsave = (\n photoId: number,\n userId: number,\n onSuccess: Function\n) => {\n ajax\n .delete(\n addParamToURL(`/api/v1/photos/${photoId}/unsave`, \"user_id\", userId)\n )\n .then(res => {\n onSuccess(false);\n //@ts-ignore\n toastr.success(\"Photo unsaved\", null, { timeOut: 1000 });\n\n return true;\n });\n};\n\nexport const hidePhotos = async (\n selectedMediaId: any,\n hideOrUnhideText: string,\n selectedEventId: number,\n clearSelection: Function,\n fetchAlbumPhotosFunction: Function,\n selectedAlbum: any,\n photoCurrentPage: number\n) => {\n try {\n await $.ajax({\n url: `/api/v1/photos/${hideOrUnhideText}`,\n type: \"POST\",\n data: {\n photo_ids: Array.from(selectedMediaId),\n event_id: selectedEventId\n }\n });\n\n // @ts-ignore\n toastr.success(\"Successfully updated\");\n clearSelection();\n // Refresh the photos to get updated hidden status\n if (selectedAlbum) {\n fetchAlbumPhotosFunction(selectedAlbum, photoCurrentPage);\n } else {\n }\n } catch (err) {\n // @ts-ignore\n toastr.error(\"Failed to update\");\n console.error(err);\n }\n};\n\nexport const hidePhoto = async (\n selectedMediaId: any,\n hideOrUnhideText: string,\n selectedEventId: number,\n onSuccess: Function,\n selectedAlbum: any,\n fetchAlbumPhotosFunction: Function,\n photoCurrentPage: number\n) => {\n try {\n await $.ajax({\n url: `/api/v1/photos/${hideOrUnhideText}`,\n type: \"POST\",\n data: {\n photo_ids: [selectedMediaId],\n event_id: selectedEventId\n }\n });\n\n // @ts-ignore\n toastr.success(\"Successfully updated\");\n // Refresh the photos to get updated hidden status\n onSuccess(hideOrUnhideText === \"hide\" ? true : false);\n if (selectedAlbum) {\n fetchAlbumPhotosFunction(selectedAlbum, photoCurrentPage);\n }\n } catch (err) {\n // @ts-ignore\n toastr.error(\"Failed to update\");\n console.error(err);\n }\n};\n\nexport const handleDownload = async (\n selectedMediaId: Set,\n selectedEventId: number\n) => {\n if (selectedMediaId.size === 0) return;\n\n const photoIds = Array.from(selectedMediaId);\n const params = new URLSearchParams();\n params.append(\"t\", \"Gallery\");\n params.append(\"id\", selectedEventId.toString());\n photoIds.forEach(id => params.append(\"photo_ids[]\", id.toString()));\n const url = `/api/v1/photo-manager/download?${params.toString()}`;\n\n try {\n const response = await fetch(url);\n if (!response.ok) throw new Error(\"Failed to fetch download URL\");\n\n const data = await response.json();\n if (data.download_url) {\n window.location.href = data.download_url; // Trigger ZIP download\n }\n } catch (error) {\n console.error(\"Download failed:\", error);\n // @ts-ignore\n toastr.error(\"Failed to download photos. Please try again\", null, 1000);\n }\n};\n\nexport const fetchEventData = async (\n eventId: number,\n setSelectedEvent: (event: any) => void,\n setLoadingEvent: (loading: boolean) => void\n) => {\n try {\n setLoadingEvent(true);\n const response = await fetch(\n `/api/v1/photo-manager/details/?t=Gallery&id=${eventId}`\n );\n\n if (!response.ok) throw new Error(\"Failed to fetch event data\");\n\n const data = await response.json();\n setSelectedEvent(data.entities);\n } catch (error) {\n console.error(\"Error fetching event details:\", error);\n } finally {\n setLoadingEvent(false);\n }\n};\n\nexport const fetchAlbumData = async (\n albumId: number,\n setSelectedAlbum: (album: any) => void,\n setLoadingAlbum: (loading: boolean) => void\n) => {\n try {\n setLoadingAlbum(true);\n const response = await fetch(\n `/api/v1/photo-manager/details/?t=Album&id=${albumId}`\n );\n\n if (!response.ok) throw new Error(\"Failed to fetch album data\");\n\n const data = await response.json();\n setSelectedAlbum(data.entities);\n } catch (error) {\n console.error(\"Error fetching album details:\", error);\n } finally {\n setLoadingAlbum(false);\n }\n};\n","import React, { useState, useEffect, useCallback } from \"react\";\nimport { debounce } from \"lodash\";\nimport { fetchEventsByName } from \"../PhotoManager/API/api\";\n\nconst EventSearchBar = ({\n placeholder,\n isMobile = false\n}: {\n placeholder: string;\n isMobile: boolean;\n}) => {\n const [query, setQuery] = useState(\"\");\n const [searchResults, setSearchResults] = useState([]);\n const [isLoading, setIsLoading] = useState(false);\n const [noResults, setNoResults] = useState(false);\n\n useEffect(() => {\n $(\"#close-search-only-nav\").on(\"click\", function () {\n $(\"#mobile-nav-with-only-search\").hide().removeClass(\"only-search-show\");;\n $(\"#mobile-nav-with-icons\").show();\n });\n\n // Cleanup the event listener when the component unmounts\n return () => {\n $(\"#close-search-only-nav\").off(\"click\");\n };\n }, []);\n\n const fetchDebouncedResults = useCallback(\n debounce(async searchTerm => {\n if (!searchTerm.trim()) {\n setSearchResults([]);\n setNoResults(false);\n setIsLoading(false);\n return;\n }\n setIsLoading(true);\n const events = await fetchEventsByName(searchTerm);\n setSearchResults(events.entities);\n setNoResults(events.entities.length === 0);\n setIsLoading(false);\n }, 700),\n []\n );\n useEffect(() => {\n fetchDebouncedResults(query);\n }, [query, fetchDebouncedResults]);\n\n return (\n
\n 0 || noResults\n ? isMobile\n ? \"search-border-bottom\"\n : \"search-border-full\"\n : null\n }`}\n >\n {isMobile ? (\n
\n setQuery(e.target.value)}\n id=\"event-search-mobile\"\n />\n
\n \n
\n {isLoading ? (\n
\n \n
\n ) : null}\n
\n ) : (\n <>\n setQuery(e.target.value)}\n />\n {isLoading ? (\n
\n \n
\n ) : null}\n \n )}\n {noResults && !isLoading && (\n
    \n

    No search results found

    \n
\n )}\n\n {searchResults.length > 0 ? (\n \n ) : null}\n
\n \n );\n};\n\nexport default EventSearchBar;\n","import ReactOnRails from \"react-on-rails\";\nimport EventSearchBar from \"../bundles/EventSearchBar\";\n\nReactOnRails.register({\n EventSearchBar\n});\n","const getCookie = (name: string) => {\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2)\n // @ts-ignore\n return parts.pop().split(\";\").shift();\n else return null;\n};\n\nconst setCookie = (name: string, value: string) => {\n deleteCookie(name);\n const date = new Date();\n date.setHours(date.getHours() + 1);\n document.cookie = `${name}=${value}; expires=${date}; path=/;`;\n};\n\nconst deleteCookie = (name: string) => {\n const date = new Date();\n date.setHours(date.getHours() - 1);\n document.cookie = `${name}=; expires=${date}; path=/;`;\n};\n\nconst getParameterByName = (paramName: string) => {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get(paramName);\n};\nconst removeParam = (key: any, sourceURL: any) => {\n let rtn = sourceURL.split(\"?\")[0];\n let param;\n let paramsArr = [];\n const queryString =\n sourceURL.indexOf(\"?\") !== -1 ? sourceURL.split(\"?\")[1] : \"\";\n if (queryString !== \"\") {\n paramsArr = queryString.split(\"&\");\n for (let i = paramsArr.length - 1; i >= 0; i -= 1) {\n param = paramsArr[i].split(\"=\")[0];\n if (param === key) {\n paramsArr.splice(i, 1);\n }\n }\n rtn = rtn + \"?\" + paramsArr.join(\"&\");\n }\n window.history.pushState(\"\", \"\", rtn);\n};\n\nconst addParam = (key: string, value: any) => {\n const queryParams = new URLSearchParams(window.location.search).toString();\n window.history.pushState(\n {},\n \"\",\n queryParams === \"\" ? `?${key}=${value}` : `?${queryParams}&${key}=${value}`\n );\n};\n\nconst addParamToURL = (url: string, key: string, value: any) => {\n url += (url.split(\"?\")[1] ? \"&\" : \"?\") + `${key}=${value}`;\n return url;\n};\n\nconst withCartIdParam = (\n url: string,\n cartId: number | null,\n isEmbed: boolean = false\n) => {\n let newURL = url;\n if (cartId) newURL = addParamToURL(newURL, \"cart_id\", cartId);\n if (isEmbed) newURL = addParamToURL(newURL, \"embed\", isEmbed);\n\n // @ts-ignore\n if (window.rudderanalytics && window.rudderanalytics.getAnonymousId)\n newURL = addParamToURL(\n newURL,\n \"telemetry_anonymous_id\",\n // @ts-ignore\n window.rudderanalytics.getAnonymousId()\n );\n\n return newURL;\n};\n\nconst isSafari =\n navigator.vendor &&\n navigator.vendor.indexOf(\"Apple\") > -1 &&\n navigator.userAgent &&\n navigator.userAgent.indexOf(\"CriOS\") == -1 &&\n navigator.userAgent.indexOf(\"FxiOS\") == -1;\n\nexport {\n getCookie,\n setCookie,\n getParameterByName,\n removeParam,\n addParam,\n deleteCookie,\n addParamToURL,\n withCartIdParam,\n isSafari\n};\n"],"names":[],"sourceRoot":""}