{"version":3,"file":"static/chunks/2552-6bee70d402dcbb18.js","mappings":"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","sources":["webpack://_N_E/./components/Attraction/ReviewMoreOptionDropdown.tsx","webpack://_N_E/./components/Attraction/ReviewFilters.tsx","webpack://_N_E/./components/Attraction/DeleteReviewModal.tsx","webpack://_N_E/./components/Attraction/Reviews.tsx","webpack://_N_E/./shared-components/NotificationModal/NotificationModal.tsx","webpack://_N_E/./shared-components/Pagination/Pagination.tsx","webpack://_N_E/./shared-components/testimonials/detailedReviewModal.tsx","webpack://_N_E/"],"sourcesContent":["import Image from 'next/image';\nimport React from 'react';\n\ninterface IProps {\n onEditClick: () => void;\n onDeleteClick: () => void;\n}\n\nexport const ReviewMoreOptionDropdown = ({\n onEditClick,\n onDeleteClick\n}: IProps) => {\n const reviewMenuItems = [\n {\n label: 'Edit',\n iconUrl: '/edit-icon.svg',\n onClickHandler: onEditClick\n },\n {\n label: 'Delete',\n iconUrl: '/delete-icon.svg',\n onClickHandler: onDeleteClick\n }\n ];\n return (\n \n \n \n );\n};\n","interface Iprops {\n handleSearchChange: (event: any) => void;\n handleRatingChange: (event: any) => void;\n searchQuery: string;\n selectedRating: string;\n}\nconst ReviewFilters = ({\n handleSearchChange,\n handleRatingChange,\n selectedRating,\n searchQuery\n}: Iprops) => {\n const starRatings = ['all-stars', 5, 4, 3, 2, 1];\n return (\n
\n
\n
\n \n \n \n
\n \n
\n\n
\n
\n \n {starRatings.map(rating => (\n \n ))}\n \n
\n
\n
\n );\n};\n\nexport default ReviewFilters;\n","import Image from 'next/image';\nimport React, { useEffect, useRef } from 'react';\n\ninterface DeleteReviewModalProps {\n setIsDeleteReview: React.Dispatch>;\n deleteReviewHandler: () => Promise;\n}\n\nconst DeleteReviewModal: React.FC = ({\n setIsDeleteReview,\n deleteReviewHandler\n}) => {\n const modalContainerRef = useRef(null);\n\n const handleCloseModal = (e: any) => {\n if (\n modalContainerRef.current &&\n !modalContainerRef.current.contains(e.target)\n ) {\n setIsDeleteReview(false);\n }\n };\n\n useEffect(() => {\n document.addEventListener('mousedown', handleCloseModal);\n return () => {\n document.removeEventListener('mousedown', handleCloseModal);\n };\n }, []);\n\n const errorIconLink = `https://res.cloudinary.com/see-sight-tours/image/upload/v1717656412/icons-website/vr6e6udopq1aeynbwudk.svg`;\n\n const handleDelete = () => {\n deleteReviewHandler();\n setIsDeleteReview(false);\n };\n\n return (\n <>\n
\n \n
\n
\n \n
\n

\n Are you sure you want to delete this review?\n

\n
\n \n Yes\n \n setIsDeleteReview(false)}\n >\n No\n \n
\n
\n
\n
\n
\n \n \n );\n};\n\nexport default DeleteReviewModal;\n","import Image from 'next/image';\nimport React, { useCallback, useRef, useState, useEffect } from 'react';\nimport { ReviewMoreOptionDropdown } from './ReviewMoreOptionDropdown';\nimport { Rating } from 'react-simple-star-rating';\nimport getTimeAgo from '../../utils/getDateTime';\nimport DetailedReviewModal from '../../shared-components/testimonials/detailedReviewModal';\nimport ReviewFilters from './ReviewFilters';\nimport { LoadingSpinner } from '../../shared-components/LoadingSpinner/LoadingSpinner';\nimport Pagination from '../../shared-components/Pagination/Pagination';\nimport DeleteReviewModal from './DeleteReviewModal';\nimport AddReviewModal from './AddReviewModal';\nimport { useAuthContext } from '../../utils/context/authContext';\nimport HighlightedText from '../../shared-components/highlightedText';\nimport scrollToElement from '../../utils/scrollIntoView';\nimport { Review } from '../../pages/[slug]/[slug2]';\nimport NotificationModal, {\n EModalType\n} from '../../shared-components/NotificationModal/NotificationModal';\nimport { useRouter } from 'next/router';\nimport { getCurrentToken } from '../../utils/getCurrentToken';\nimport axios from 'axios';\nimport { toast } from 'react-toastify';\nimport client from '../../apollo-client';\nimport { BOOKING_DATA } from '../../api/fetch_user_details';\n\ninterface ReviewsSectionProps {\n rating: number;\n totalCount: number;\n reviews: Review[];\n setReviews: React.Dispatch>;\n id: number | string;\n currentPage: number;\n positiveReview?: Review | undefined;\n secondMostPositiveReview?: Review | undefined;\n setCurrentPage: React.Dispatch>;\n setSelectedRating: React.Dispatch>;\n selectedRating: string;\n reviewsCount: number;\n totalReviewsCount?: number;\n fetchReviews: () => Promise;\n}\ninterface ReviewCardProps {\n review: Review;\n index: string;\n dropdownRefs: React.MutableRefObject>;\n openDropdownIndex: string | null;\n toggleDropdown: (index: string) => void;\n handleEditReview: (review: Review) => void;\n handleDeleteReview: (review: Review) => void;\n handleSeeMoreClick: (review: Review) => void;\n isValidImageUrl: (url: string) => boolean;\n user: any;\n modifyReview?: boolean;\n}\n\nconst ReviewCard: React.FC = ({\n review,\n index,\n dropdownRefs,\n openDropdownIndex,\n toggleDropdown,\n handleEditReview,\n handleDeleteReview,\n handleSeeMoreClick,\n isValidImageUrl,\n modifyReview,\n user\n}) => (\n
\n
\n {isValidImageUrl(review.image) ? (\n \n ) : (\n \n )}\n
\n
\n \n {review.name}\n \n {!modifyReview && review.userId === user?.uid && (\n dropdownRefs.current.set(index, el)}\n >\n {\n event.stopPropagation();\n toggleDropdown(index);\n }}\n />\n {openDropdownIndex === index && (\n {\n toggleDropdown(index);\n handleEditReview(review);\n }}\n onDeleteClick={() => {\n toggleDropdown(index);\n handleDeleteReview(review);\n }}\n />\n )}\n
\n )}\n
\n\n \n {' '}\n {review.time && getTimeAgo(review.time)}\n \n
\n
\n \n {review?.review?.length > 300 ? (\n <>\n {review.review.slice(0, 300)}\n ....\n handleSeeMoreClick(review)}\n >\n see more\n \n \n ) : (\n review.review\n )}\n \n \n);\n\nconst ReviewsSection: React.FC = ({\n rating,\n totalCount,\n reviews,\n setReviews,\n id,\n positiveReview,\n secondMostPositiveReview,\n currentPage,\n setCurrentPage,\n setSelectedRating,\n selectedRating,\n totalReviewsCount,\n reviewsCount,\n fetchReviews\n}) => {\n const [showErrorModal, setShowErrorModal] = useState(false);\n const { user }: any = useAuthContext();\n const [isReviewModalOpen, setIsReviewModalOpen] = useState(false);\n const dropdownRefs = useRef>(new Map());\n const [openDropdownIndex, setOpenDropdownIndex] = useState(\n null\n );\n const [isDeleteReview, setIsDeleteReview] = useState(false);\n const router = useRouter();\n const toggleModal = useCallback(() => {\n setShowErrorModal(!showErrorModal);\n }, [showErrorModal]);\n\n const [selectedReviewData, setSelectedReviewData] = useState(\n null\n );\n const [selectedReview, setSelectedReview] = useState();\n const [showModal, setShowModal] = useState(false);\n const [isEditReview, setIsEditReview] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const handleSearchChange = (event: any) => {\n setSearchQuery(event.target.value);\n };\n const handleSeeMoreClick = (review: Review) => {\n setSelectedReview(review);\n setShowModal(true);\n };\n const checkBookingValidity = async (bookingId: string) => {\n try {\n const response = await client.query({\n query: BOOKING_DATA,\n variables: { bookingId }\n });\n\n const booking = response.data?.boatnew_booking?.[0];\n return !!booking?.customer?.email && !!booking?.product?.id;\n } catch {\n return false; // Silent failure - UI handles messaging\n }\n };\n const openModalHandler = async () => {\n const urlParams = new URLSearchParams(window.location.search);\n const bookingId = urlParams.get('id');\n\n if (bookingId) {\n const isValidBooking = await checkBookingValidity(bookingId);\n if (isValidBooking) {\n setIsReviewModalOpen(true);\n return;\n }\n }\n\n if (!user) {\n setShowErrorModal(true);\n return;\n }\n\n if (!user.emailVerified) {\n localStorage.setItem('referringPage', window.location.href);\n setShowErrorModal(true);\n return;\n }\n setIsReviewModalOpen(true);\n };\n\n const toggleDropdown = (index: string) => {\n setOpenDropdownIndex(prevIndex => (prevIndex === index ? null : index));\n };\n // Function to validate image URLs\n const isValidImageUrl = (url: string) => {\n if (!url) return false;\n if (typeof url !== 'string') return false;\n\n // Check if the URL is a Firebase Storage URL or Google Photos URL\n const firebaseUrlPattern =\n /^https:\\/\\/firebasestorage\\.googleapis\\.com\\/v0\\/b\\//;\n const googlePhotoUrlPattern = /^https:\\/\\/lh3\\.googleusercontent\\.com\\//;\n\n return firebaseUrlPattern.test(url) || googlePhotoUrlPattern.test(url);\n };\n\n const deleteReviewHandler = async () => {\n try {\n const token = await getCurrentToken(user);\n const headers = {\n Authorization: token,\n 'Content-Type': 'application/json'\n };\n let url;\n if (router.route === '/tours/[slug]') {\n url = `${process.env.NEXT_PUBLIC_FIREBASE_WEBSITE_CONNECTION}/product-review/${id}`;\n } else {\n url = `${process.env.NEXT_PUBLIC_FIREBASE_CONNECTION}/attraction-review/${id}`;\n }\n await axios.delete(url, { headers });\n const updatedReviews = reviews.filter(\n review => review.reviewId !== selectedReviewData?.reviewId\n );\n setReviews(updatedReviews);\n fetchReviews();\n toast.success('Review deleted successfully!');\n setSelectedReviewData(null);\n } catch (error) {\n toast.error('Failed to delete review. Please try again.');\n }\n };\n const handleEditReview = (reviewData: Review) => {\n setSelectedReviewData(reviewData);\n setIsReviewModalOpen(true);\n setIsEditReview(true);\n };\n const handleDeleteReview = (review: Review) => {\n setSelectedReviewData(review);\n setIsDeleteReview(true);\n };\n const filteredReviews = reviews?.filter((review: any) => {\n const matchesSearch =\n review?.review?.toLowerCase().includes(searchQuery.toLowerCase()) ||\n searchQuery.trim() === '';\n return matchesSearch;\n });\n const [loader, setLoader] = React.useState(false);\n\n const handleRatingChange = (event: any) => {\n const newSelectedRating = event.target.value;\n setSelectedRating(newSelectedRating);\n setSearchQuery('');\n setCurrentPage(1);\n };\n\n useEffect(() => {\n setCurrentPage(1);\n setSelectedRating('');\n }, [id]);\n\n const itemsPerPage = 5;\n const handlePageChange = (page: number) => {\n setCurrentPage(page);\n scrollToElement('reviews');\n };\n const totalPages = (reviews && Math.ceil(reviewsCount / itemsPerPage)) || 0;\n // Determine which reviews to display for positive and critical\n const mostHelpfulPositiveReview = positiveReview\n ? [positiveReview]\n : reviews\n ?.filter(review => Number(review.rating) === 5)\n .sort(\n (a: any, b: any) =>\n new Date(b.time).getTime() - new Date(a.time).getTime()\n )\n .slice(0, 1);\n const SecondMostPositiveReview = secondMostPositiveReview\n ? [secondMostPositiveReview]\n : reviews\n ?.filter(review => Number(review.rating) === 5)\n .sort((a: any, b: any) => {\n const ratingComparison = Number(a.rating) - Number(b.rating);\n if (ratingComparison === 0) {\n return +new Date(b.time) - +new Date(a.time);\n }\n return ratingComparison;\n })\n .slice(1, 2)[0] || null;\n const isDataNull =\n (mostHelpfulPositiveReview === null ||\n mostHelpfulPositiveReview.length === 0 ||\n mostHelpfulPositiveReview === undefined) &&\n (secondMostPositiveReview === null ||\n secondMostPositiveReview === undefined ||\n (Array.isArray(secondMostPositiveReview) &&\n secondMostPositiveReview.length === 0));\n\n return (\n
\n {/* Header Section */}\n
\n
\n
\n \n Reviews\n \n {rating > 0 && (\n \n
\n {[...Array(5)].map((_, index) => (\n \n ))}\n
\n {rating.toFixed(1)}{' '}\n ({totalCount})\n
\n )}\n
\n {\n event.stopPropagation();\n openModalHandler();\n }}\n className=\"flex items-center justify-center rounded-full border-gray-200 bg-primary w-8 h-8 text-white\"\n >\n \n \n \n \n
\n
\n {totalReviewsCount !== undefined && totalReviewsCount > 0 && (\n <>\n
\n

\n Most Helpful Positive Reviews\n

\n
\n {isDataNull && (\n
\n No Positive reviews found.\n
\n )}\n
\n
\n \n
\n {mostHelpfulPositiveReview.length > 0 &&\n mostHelpfulPositiveReview.map((review, index) => (\n \n ))}\n
\n
\n
\n
\n
\n
\n {Array.isArray(SecondMostPositiveReview) &&\n SecondMostPositiveReview.length > 0 &&\n SecondMostPositiveReview.map((review, index) => (\n \n ))}\n
\n
\n
\n
\n \n )}\n\n {showModal && selectedReview && (\n \n )}\n {showErrorModal && (\n router.push('/signin')}\n />\n )}\n
\n
\n {totalReviewsCount !== undefined && totalReviewsCount > 0 && (\n \n )}\n {loader ? (\n
\n \n
\n ) : (\n
\n {filteredReviews && filteredReviews.length > 0 ? (\n filteredReviews.map((review, index) => (\n \n ))\n ) : (\n
\n No Reviews found\n
\n )}\n
\n )}\n
\n
\n\n {totalPages > 1 && (\n \n )}\n\n {isDeleteReview && (\n \n )}\n\n {isReviewModalOpen && (\n setIsReviewModalOpen(false)}\n setIsModalOpen={setIsReviewModalOpen}\n id={id}\n fetchReviews={fetchReviews}\n reviews={reviews}\n setReviews={setReviews}\n selectedReviewData={selectedReviewData}\n isEditReview={isEditReview}\n setIsEditReview={setIsEditReview}\n setSelectedReviewData={setSelectedReviewData}\n />\n )}\n \n );\n};\n\nexport default ReviewsSection;\n","import Image from 'next/image';\nimport React, { useEffect, useRef } from 'react';\n\nexport enum EModalType {\n SUCCESS = 'success',\n ERROR = 'error'\n}\n\ninterface IProps {\n toggleModal: () => void;\n modalType: EModalType;\n buttonText: string;\n message: string;\n buttonHandler: () => void;\n modalIconLink?: string;\n}\n\nconst NotificationModal = ({\n toggleModal,\n modalType,\n buttonText,\n message,\n buttonHandler,\n modalIconLink\n}: IProps) => {\n /* It handles outside clicks to close the modal. */\n const modalContainerRef = useRef(null);\n\n useEffect(() => {\n const handleOutsideClick = (event: MouseEvent) => {\n if (\n modalContainerRef.current &&\n !modalContainerRef.current.contains(event.target as Node)\n ) {\n toggleModal();\n }\n };\n\n document.addEventListener('click', handleOutsideClick);\n\n return () => {\n document.removeEventListener('click', handleOutsideClick);\n };\n }, [toggleModal]);\n\n const successIconLink = `https://res.cloudinary.com/see-sight-tours/image/upload/v1707985604/icons-website/q5eiydpc2kpn3ozfrbdj.png`;\n\n const errorIconLink = `https://res.cloudinary.com/see-sight-tours/image/upload/v1707985604/icons-website/d88qspxhyovl6lc5xkts.png`;\n\n {\n /* Modal Wrapper z-index should be 1150 or in between 1100 and 1200 */\n }\n\n return (\n <>\n
\n \n
\n
\n \n
\n

\n {modalType == EModalType.SUCCESS ? 'Success!' : 'Error :('}\n

\n

{message}

\n \n {buttonText}\n \n
\n
\n
\n
\n \n \n );\n};\n\nexport default NotificationModal;\n","import React from 'react';\nimport Image from 'next/image';\n\ninterface PaginationProps {\n totalPages: number;\n currentPage: number;\n handlePageChange: (page: number) => void;\n}\n\nconst Pagination = ({\n totalPages,\n currentPage,\n handlePageChange\n}: PaginationProps) => {\n const renderPageNumbers = () => {\n const pageNumbers: (number | string)[] = [];\n\n // Always show the first page\n pageNumbers.push(1);\n\n // If total pages are 5 or less, show all page numbers\n if (totalPages <= 5) {\n for (let i = 2; i < totalPages; i++) {\n pageNumbers.push(i);\n }\n } else {\n // Show pages near the start (when currentPage <= 3)\n if (currentPage <= 3) {\n for (let i = 2; i <= 3; i++) {\n pageNumbers.push(i);\n }\n pageNumbers.push('...');\n }\n // Show middle pages like 1 ... 3 4 ... totalPages\n else if (currentPage > 3 && currentPage < totalPages - 2) {\n pageNumbers.push('...');\n pageNumbers.push(currentPage - 1);\n pageNumbers.push(currentPage);\n pageNumbers.push('...');\n }\n // Show pages near the end (when currentPage >= totalPages - 2)\n else {\n pageNumbers.push('...');\n for (let i = totalPages - 2; i < totalPages; i++) {\n pageNumbers.push(i);\n }\n }\n }\n\n // Always show the last page\n pageNumbers.push(totalPages);\n\n return pageNumbers.map((pageNumber, index) => (\n \n handlePageChange(\n typeof pageNumber === 'number' ? pageNumber : currentPage\n )\n }\n >\n {pageNumber}\n \n ));\n };\n\n return (\n
\n handlePageChange(currentPage - 1)}\n disabled={currentPage === 1}\n >\n \n \n
\n {renderPageNumbers()}\n
\n handlePageChange(currentPage + 1)}\n disabled={currentPage === totalPages}\n >\n \n \n
\n );\n};\n\nexport default Pagination;\n","import React, { useRef, useEffect } from 'react';\nimport Image from 'next/image';\nimport { sourceIcon } from '../../utils/sourceIcon';\nimport { Rating } from 'react-simple-star-rating';\nimport getTimeAgo from '../../utils/getDateTime';\nimport { useAuthContext } from '../../utils/context/authContext';\n\ninterface IProps {\n data: any;\n setShowModal: (show: boolean) => void;\n productName?: string;\n randomName?: string;\n}\n\nconst DetailedReviewModal = ({\n data,\n setShowModal,\n productName,\n randomName\n}: IProps) => {\n const modalRef: any = useRef(null);\n const { user }: any = useAuthContext();\n\n const handleCloseModal = (e: any) => {\n if (modalRef.current && !modalRef.current.contains(e.target)) {\n setShowModal(false);\n }\n };\n\n useEffect(() => {\n document.addEventListener('mousedown', handleCloseModal);\n return () => {\n document.removeEventListener('mousedown', handleCloseModal);\n };\n }, []);\n\n function sliceTextToLimitChars(text: string) {\n const maxLength = 900;\n\n if (text.length <= maxLength) {\n return text;\n }\n\n const slicedText = text.slice(0, maxLength);\n const lastDotIndex = slicedText.lastIndexOf('.');\n\n if (lastDotIndex !== -1) {\n return text.slice(0, lastDotIndex + 1);\n }\n\n return slicedText;\n }\n\n const formatDate = (dateString: string) => {\n const date = new Date(dateString);\n return date.toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n });\n };\n\n return (\n
\n
\n
\n
\n
\n \n
\n {(data.author || data.author_name || data.name) && (\n

\n {data.author || data.author_name || data.name}{' '}\n

\n )}\n {(data.traveller || randomName) && (\n

\n {data.traveller === null ? randomName : data.traveller}\n

\n )}\n \n
\n
\n
setShowModal(false)}>\n \n \n \n \n
\n
\n
\n
\n {productName !== undefined && (\n

\n {productName?.length > 40\n ? `${productName?.slice(0, 40)}...`\n : productName}\n

\n )}\n \n {data?.title?.length > 50\n ? `${data.title.slice(0, 50)}...`\n : data.title}\n

\n

\n {sliceTextToLimitChars(\n data?.review ? data?.review : data?.text\n )}\n

\n
\n
\n {formatDate(data?.time || data?.created_at || data?.published_at)}\n
\n
\n
\n
\n
\n );\n};\n\nexport default DetailedReviewModal;\n"],"names":["ReviewMoreOptionDropdown","onEditClick","onDeleteClick","param","reviewMenuItems","label","iconUrl","onClickHandler","jsx_runtime","jsx","div","className","ul","map","menuItem","index","jsxs","Fragment","li","onClick","Image","src","alt","width","height","concat","p","length","Attraction_ReviewFilters","handleSearchChange","handleRatingChange","selectedRating","searchQuery","svg","xmlns","viewBox","fill","path","d","stroke","stroke-width","stroke-linecap","stroke-linejoin","input","type","placeholder","value","onChange","id","select","required","starRatings","rating","option","Number","Attraction_DeleteReviewModal","setIsDeleteReview","deleteReviewHandler","modalContainerRef","useRef","handleCloseModal","current","contains","e","target","useEffect","document","addEventListener","removeEventListener","ref","style","background","button","ReviewCard","review","dropdownRefs","openDropdownIndex","toggleDropdown","handleEditReview","handleDeleteReview","handleSeeMoreClick","isValidImageUrl","modifyReview","user","image","photoURL","span","name","userId","uid","el","set","event","stopPropagation","Rating","initialValue","disableFillHover","allowFraction","fillColor","emptyColor","readonly","SVGstyle","display","size","time","getTimeAgo","slice","Reviews","totalCount","reviews","setReviews","positiveReview","secondMostPositiveReview","currentPage","setCurrentPage","setSelectedRating","totalReviewsCount","reviewsCount","fetchReviews","showErrorModal","setShowErrorModal","useState","useAuthContext","isReviewModalOpen","setIsReviewModalOpen","Map","setOpenDropdownIndex","isDeleteReview","router","useRouter","toggleModal","useCallback","selectedReviewData","setSelectedReviewData","selectedReview","setSelectedReview","showModal","setShowModal","isEditReview","setIsEditReview","setSearchQuery","checkBookingValidity","bookingId","response","booking","client","query","BOOKING_DATA","variables","data","boatnew_booking","customer","email","product","openModalHandler","urlParams","URLSearchParams","window","location","search","get","isValidBooking","emailVerified","localStorage","setItem","href","prevIndex","url","firebaseUrlPattern","test","googlePhotoUrlPattern","token","getCurrentToken","route","process","axios","delete","headers","Authorization","updatedReviews","filter","reviewId","toast","success","error","reviewData","filteredReviews","matchesSearch","toLowerCase","includes","trim","loader","setLoader","React","totalPages","Math","ceil","mostHelpfulPositiveReview","sort","a","b","Date","getTime","SecondMostPositiveReview","ratingComparison","isDataNull","undefined","Array","isArray","h2","_","toFixed","DetailedReviewModal","NotificationModal","modalType","EModalType","ERROR","message","buttonText","buttonHandler","push","ReviewFilters","newSelectedRating","LoadingSpinner","toString","Pagination","handlePageChange","page","scrollToElement","DeleteReviewModal","AddReviewModal","onClose","setIsModalOpen","SUCCESS","__webpack_exports__","Z","modalIconLink","handleOutsideClick","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","errorIconLink","disabled","renderPageNumbers","pageNumbers","i","pageNumber","productName","randomName","modalRef","author_image","profile_photo_url","author","author_name","traveller","rect","x","y","rx","title","sliceTextToLimitChars","text","slicedText","lastDotIndex","lastIndexOf","formatDate","date","dateString","toLocaleDateString","year","month","day","created_at","published_at"],"sourceRoot":""}