{"version":3,"file":"index-672ca7f2.js","sources":["../src/assets/activity_top_bg.png","../src/pages/activities/ticket/TicketPage.jsx","../src/components/activity/Activities.jsx","../src/components/activity/ActivitiesFilter.jsx","../src/pages/activities/ticket/SearchPage.jsx","../src/assets/activity_top_bg_2.png","../src/pages/activities/demo/DemoPage.jsx","../src/hooks/activity/useActivity.js","../src/hooks/activity/useActivityEffectPricing.js","../src/pages/activities/ActivityDetailsPage.jsx","../src/pages/activities/TransfersPage.jsx","../src/pages/activities/index.jsx"],"sourcesContent":["export default \"__VITE_ASSET__fcaf0770__\"","import React from 'react';\nimport * as config from '@config';\nimport styles from '@styles/TicketPage.module.css';\nimport SelectorsForm from '@components/SelectorsForm';\nimport { Link, useNavigate, useSearchParams } from 'react-router-dom';\nimport { ActivityHotTagOptions, SelectorParser, Selector } from '@utils/constants';\nimport TopHeaderBg from '@assets/activity_top_bg.png';\n\nfunction TicketPage() {\n const navigate = useNavigate();\n const [searchParams, setSearchParams] = useSearchParams();\n\n const handleSearch = () => {\n const params = new URLSearchParams(searchParams);\n navigate(`search?${params.toString()}`);\n };\n\n return (\n
\n
\n \n
\n
个性化的体验,有目的地旅行
\n
\n
\n
\n
\n \n
\n\n
热门城市
\n
\n {[\n { selector: Selector.Sydney },\n { selector: Selector.Melbourne },\n { selector: Selector.Brisbane },\n { selector: Selector.GoldCoast },\n { selector: Selector.Perth },\n { selector: Selector.Cairns },\n { selector: Selector.Adelaide },\n { selector: Selector.Canberra },\n ].map((item, index) => {\n return (\n
\n \n
\n \n
{SelectorParser(item.selector)}
\n
\n );\n })}\n
\n \n \n );\n}\n\nexport default TicketPage;\n","import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styles from '@styles/SearchLayout.module.css';\nimport { DestinationName } from '@utils/constants';\nimport ActivitiesGrid from './ActivitiesGrid';\nimport { useSearchParams } from 'react-router-dom';\nimport { Result } from 'antd';\n\nfunction Activities({ activities = [], filterElement, priceSorting = true, loaded = true }) {\n const [searchParams, setSearchParams] = useSearchParams();\n const [title, setTitle] = useState('');\n const selectRef = useRef();\n\n useEffect(() => {\n const params = new URLSearchParams(searchParams);\n const selector = params.get('selector') || '';\n const sort = params.get('sort') || '';\n setTitle(DestinationName(selector));\n if (!!selectRef.current) {\n selectRef.current.value = sort;\n }\n }, [searchParams]);\n\n const handleOnChangeFilter = (e) => {\n const name = e.target.getAttribute('name');\n let value = e.target.getAttribute('value');\n // workaround select tag\n if (!!value == false) {\n value = e.target.value;\n }\n // console.log({ [name]: value });\n const params = new URLSearchParams(searchParams);\n switch (name) {\n case 'sort':\n if (value) {\n params.set('sort', value);\n } else {\n params.delete('sort');\n }\n setSearchParams(params, { replace: true });\n default:\n break;\n }\n };\n\n const Content = () => {\n if (loaded) {\n if (activities?.length > 0) {\n return (\n
\n \n
\n );\n } else {\n return 未找到活动体验,请尝试其他搜索条件

} />;\n }\n } else {\n return
Loading...
;\n }\n };\n\n return (\n
\n {priceSorting && (\n
\n
{title}
\n
\n \n
\n
\n )}\n
\n {!!filterElement &&
{filterElement}
}\n
\n \n
\n
\n
\n );\n}\n\nActivities.propTypes = {\n activities: PropTypes.array.isRequired,\n filterElement: PropTypes.element,\n priceSorting: PropTypes.bool,\n loaded: PropTypes.bool,\n};\n\nexport default Activities;\n","import React, { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport styles from '@styles/FilterLayout.module.css';\nimport { useSearchParams } from 'react-router-dom';\nimport { Selector } from '@utils/constants';\nimport { SelectorParser, ActivityDuration, ActivityDurationParse } from '../../utils/constants';\n\nexport const K_Kinds = 'kinds';\nexport const K_Durations = 'durations';\nexport const K_Recommendations = 'recommendations';\n\nexport const FilterConstants = {\n Duration: {\n ...ActivityDuration,\n },\n Family: 'family',\n Kind: {\n Ticket: 'ticket', //门票\n Team: Selector.Team,\n Car: Selector.Cars,\n Package: Selector.Package,\n // Transfers: Selector.Transfers,\n Others: Selector.OtherExperience, //其他体验\n },\n};\n\n//`replace`: replace link stack\nfunction ActivitiesFilter({ replace = true, sticky = true }) {\n const [kinds, setKinds] = useState([]);\n const [recommendations, setRecommendations] = useState([]);\n const [durations, setDurations] = useState([]);\n const [searchParams, setSearchParams] = useSearchParams();\n\n useEffect(() => {\n const params = new URLSearchParams(searchParams);\n const kinds = params.getAll(K_Kinds) || [];\n const durations = params.getAll(K_Durations) || [];\n const recommendations = params.getAll(K_Recommendations) || [];\n setKinds(kinds);\n setDurations(durations);\n setRecommendations(recommendations);\n }, [searchParams]);\n\n const handleOnChangeFilter = (e, k) => {\n if (!k) {\n console.error('Empty key');\n return;\n }\n const name = e.target.getAttribute('name');\n let value = e.target.getAttribute('value');\n // workaround select tag\n if (!!value == false) {\n value = e.target.value;\n }\n // console.log({ [name]: value });\n const params = new URLSearchParams(searchParams);\n const filters = params.getAll(k) || [];\n if (filters.includes(value)) {\n params.delete(k);\n } else {\n params.set(k, value);\n }\n setSearchParams(params, { replace: replace });\n };\n\n return (\n
\n
\n
分类
\n
\n
\n handleOnChangeFilter(e, K_Kinds)}\n checked={kinds.includes(FilterConstants.Kind.Ticket)}\n />\n \n
\n
\n
\n
\n handleOnChangeFilter(e, K_Kinds)}\n checked={kinds.includes(FilterConstants.Kind.Team)}\n />\n \n
\n
\n\n
\n
\n handleOnChangeFilter(e, K_Kinds)}\n checked={kinds.includes(FilterConstants.Kind.Package)}\n />\n \n
\n
\n {/*
\n
\n handleOnChangeFilter(e, K_Kinds)}\n checked={kinds.includes(FilterConstants.Kind.Transfers)}\n />\n \n
\n
*/}\n
\n
\n handleOnChangeFilter(e, K_Kinds)}\n checked={kinds.includes(FilterConstants.Kind.Others)}\n />\n \n
\n
\n
\n
\n
推荐
\n
\n
\n handleOnChangeFilter(e, K_Recommendations)}\n checked={recommendations.includes(FilterConstants.Family)}\n />\n \n
\n
\n
\n
\n
活动时长
\n
\n
\n handleOnChangeFilter(e, K_Durations)}\n checked={durations.includes(FilterConstants.Duration.LessOneHour.toString())}\n />\n \n
\n
\n
\n
\n handleOnChangeFilter(e, K_Durations)}\n checked={durations.includes(FilterConstants.Duration.OneToFourHour.toString())}\n />\n \n
\n
\n
\n
\n handleOnChangeFilter(e, K_Durations)}\n checked={durations.includes(FilterConstants.Duration.FourToOneDay.toString())}\n />\n \n
\n
\n
\n
\n handleOnChangeFilter(e, K_Durations)}\n checked={durations.includes(FilterConstants.Duration.MoreThanOneDay.toString())}\n />\n \n
\n
\n
\n
\n );\n}\n\nActivitiesFilter.propTypes = {\n replace: PropTypes.bool,\n sticky: PropTypes.bool,\n};\n\nexport default ActivitiesFilter;\n","import React, { useState, useEffect, useLayoutEffect } from 'react';\nimport styles from '@styles/SearchPage.module.css';\nimport SelectorsForm from '@components/SelectorsForm';\nimport { Loader } from 'semantic-ui-react';\nimport { useLocation, useSearchParams } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport { Selector } from '@utils/constants';\nimport Activities from '@components/activity/Activities';\nimport ActivitiesFilter, { K_Kinds, K_Durations, K_Recommendations } from '@components/activity/ActivitiesFilter';\nimport BackBar from '@components/BackBar';\nimport { createSelector } from '@reduxjs/toolkit';\nimport { RestoreScrollPosition, StoreScrollPosition } from '@utils/scrollPosition';\n\nexport function SearchPage() {\n const location = useLocation();\n const [data, setData] = useState([]);\n const [loaded, setLoaded] = useState(false);\n // Redux Memoized Selectors\n const selectorData = (state) => state.activities.data;\n const filterHiden = createSelector(selectorData, (items) => items?.filter((item) => item.hidden == false));\n const activities = useSelector((state) => {\n return filterHiden(state);\n });\n const fetching = useSelector((state) => state.activities.fetching);\n const [searchParams, setSearchParams] = useSearchParams();\n\n useLayoutEffect(() => {\n return () => {\n StoreScrollPosition(location.pathname + location.search);\n };\n }, []);\n\n useEffect(() => {\n RestoreScrollPosition(location.pathname + location.search);\n }, [data]);\n\n useEffect(() => {\n filterActivities();\n }, [searchParams, fetching]);\n\n const filterActivities = () => {\n setLoaded(false);\n const params = new URLSearchParams(searchParams);\n let selector = params.get('selector') ?? '';\n let text = params.get('text') ?? '';\n if (selector == 'all') {\n selector = '';\n }\n const sort = params.get('sort');\n let newData = [...activities];\n // city\n if (selector) {\n newData = newData.filter((item) => {\n if (item.selectors?.includes(selector)) {\n return true;\n }\n });\n // Selector sorting\n newData?.sort((a, b) => {\n const sortA = a.selectorItems.find((item) => item.name == selector).sort;\n const sortB = b.selectorItems.find((item) => item.name == selector).sort;\n return sortA - sortB;\n });\n }\n // filter out transfers\n newData = newData.filter((item) => {\n if (!item.selectors?.includes(Selector.Transfers)) {\n return true;\n }\n });\n\n // filter kinds\n let kinds = params.getAll(K_Kinds) ?? [];\n if (kinds.length != 0) {\n if (kinds.length == 1 && kinds[0] == 'ticket') {\n newData = newData.filter((item) => {\n if (\n !item.selectors?.includes(Selector.Cars) &&\n !item.selectors?.includes(Selector.Cruises) &&\n !item.selectors?.includes(Selector.Team) &&\n !item.selectors?.includes(Selector.Package) &&\n !item.selectors?.includes(Selector.OtherExperience)\n ) {\n return true;\n }\n });\n } else {\n newData = newData.filter((item) => {\n for (let filter of kinds) {\n if (item.selectors?.includes(filter)) {\n return true;\n }\n }\n });\n }\n }\n // filter recommendations\n let recommendations = params.getAll(K_Recommendations) ?? [];\n if (recommendations.length != 0) {\n if (recommendations.includes('family')) {\n newData = newData.filter((item) => {\n if (!!item?.pricing?.hasFamilyPlan) {\n return true;\n }\n });\n }\n }\n // filter duration\n let durations = params.getAll(K_Durations) ?? [];\n if (durations.length != 0) {\n newData = newData.filter((item) => {\n if (durations.includes(item?.duration?.toString())) {\n return true;\n }\n });\n }\n\n if (text) {\n newData = newData.filter((item) => {\n if (\n item.name?.toLowerCase().includes(text.toLowerCase()) ||\n item.nameEN?.toLowerCase().includes(text.toLowerCase())\n ) {\n return true;\n }\n });\n }\n if (sort) {\n const calculatePrice = (pricing) => {\n if (pricing.bundlePriced) {\n return pricing.bundlePrice;\n }\n return pricing.adultPrice;\n };\n switch (sort) {\n case 'price-asc':\n newData?.sort((a, b) => {\n return calculatePrice(a.pricing) - calculatePrice(b.pricing);\n });\n break;\n case 'price-desc':\n newData?.sort((a, b) => {\n return calculatePrice(b.pricing) - calculatePrice(a.pricing);\n });\n break;\n default:\n break;\n }\n }\n setData(newData);\n setLoaded(true);\n };\n\n return (\n
\n \n
\n \n
\n
\n \n } />\n
\n
\n );\n}\n","export default \"__VITE_ASSET__0ef53d2f__\"","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useEffect } from 'react';\nimport { useSearchParams } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport { createSelector } from '@reduxjs/toolkit';\nimport { useState } from 'react';\nimport Activities from '@components/activity/Activities';\nimport styles from '@styles/DemoPage.module.css';\nimport TopHeaderBg from '@assets/activity_top_bg_2.png';\n\nfunction DemoPage({ title, fixedSelector }) {\n const [data, setData] = useState([]);\n const [loaded, setLoaded] = useState(false);\n // Redux Memoized Selectors\n const selectorData = (state) => state.activities.data;\n const filterHiden = createSelector(selectorData, (items) => items?.filter((item) => item.hidden == false));\n const activities = useSelector((state) => {\n return filterHiden(state);\n });\n const fetching = useSelector((state) => state.activities.fetching);\n const [searchParams, setSearchParams] = useSearchParams();\n\n useEffect(() => {\n filterActivities();\n }, [fetching, fixedSelector]);\n\n const filterActivities = () => {\n setLoaded(false);\n const params = new URLSearchParams(searchParams);\n const sort = params.get('sort');\n let newData = [...activities];\n // Fixed selector\n newData = activities.filter((item) => {\n if (item.selectors?.includes(fixedSelector)) {\n return true;\n }\n });\n // Selector sorting\n newData?.sort((a, b) => {\n const sortA = a.selectorItems.find((item) => item.name == fixedSelector).sort;\n const sortB = b.selectorItems.find((item) => item.name == fixedSelector).sort;\n return sortA - sortB;\n });\n\n if (sort) {\n const calculatePrice = (pricing) => {\n if (pricing.bundlePriced) {\n return pricing.bundlePrice;\n }\n return pricing.adultPrice;\n };\n switch (sort) {\n case 'price-asc':\n newData?.sort((a, b) => {\n return calculatePrice(a.pricing) - calculatePrice(b.pricing);\n });\n break;\n case 'price-desc':\n newData?.sort((a, b) => {\n return calculatePrice(b.pricing) - calculatePrice(a.pricing);\n });\n break;\n default:\n break;\n }\n }\n setData(newData);\n setLoaded(true);\n };\n\n return (\n
\n
\n \n
\n
{title}
\n
\n
\n
\n {}} priceSorting={false} />\n
\n
\n );\n}\n\nDemoPage.propTypes = {\n title: PropTypes.string,\n fixedSelector: PropTypes.string.isRequired,\n};\n\nexport default DemoPage;\n","import { useState, useRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { GetToken } from '@utils/storage';\nimport * as config from '@config';\n\nfunction useActivity() {\n const [data, setData] = useState(false);\n const [fetching, setFetching] = useState(false);\n const abortControllerRef = useRef(null);\n\n const fetchActivity = useCallback(async (id) => {\n abortControllerRef.current = new AbortController();\n setFetching(true);\n try {\n const response = await fetch(`${config.apiURL}/activity/${id}`, {\n method: 'GET',\n headers: { Authorization: `Bearer ${GetToken()}` },\n signal: abortControllerRef.current.signal,\n });\n if (!response.ok) {\n const data = await response.json();\n throw new Error(data.error || 'An error occurred while fetch an activity');\n }\n const data = await response.json();\n // console.log('Activity fetched:', data);\n setData(data);\n return data;\n } catch (error) {\n if (error.name === 'AbortError') {\n console.log('Request was aborted');\n throw new Error('Request was aborted');\n } else {\n console.error('Error fetching an activity:', error);\n }\n throw error;\n } finally {\n setFetching(false);\n }\n }, []);\n\n const abort = useCallback(() => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n }, []);\n\n return { fetching, data, fetchActivity, abort };\n}\n\nuseActivity.propTypes = {};\n\nexport default useActivity;\n","import { useState, useCallback, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { GetToken } from '@utils/storage';\nimport * as config from '@config';\n\nfunction useActivityEffectPricing() {\n const [fetching, setFetching] = useState(false);\n const [data, setData] = useState({});\n\n const abortControllerRef = useRef(null);\n\n const fetchEffectPricing = useCallback(async ({ activityID = '', segmentID = '', variantID = '' }) => {\n abortControllerRef.current = new AbortController();\n setFetching(true);\n const req = {\n activityID: activityID,\n segmentID: segmentID,\n variantID: variantID,\n };\n try {\n const response = await fetch(`${config.apiURL}/activity/effect-pricing`, {\n method: 'POST',\n body: JSON.stringify(req),\n headers: { Authorization: `Bearer ${GetToken()}` },\n signal: abortControllerRef.current.signal,\n });\n if (!response.ok) {\n const data = await response.json();\n throw new Error(data.error || 'An error occurred while fetch an effective pricing');\n }\n const data = await response.json();\n // console.log('Effective pricing fetched:', data);\n setData(data);\n return data;\n } catch (error) {\n if (error.name === 'AbortError') {\n console.log('Request was aborted');\n throw new Error('Request was aborted');\n } else {\n console.error('Error fetching an effective pricing:', error);\n }\n throw error;\n } finally {\n setFetching(false);\n }\n }, []);\n\n const abort = useCallback(() => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n }, []);\n\n return { fetching, data, fetchEffectPricing, abort };\n}\n\nuseActivityEffectPricing.propTypes = {};\n\nexport default useActivityEffectPricing;\n","import React, { useState, useEffect } from 'react';\nimport {\n Typography,\n Tabs,\n Descriptions,\n List,\n Tag,\n Card,\n Row,\n Col,\n Select,\n Spin,\n Alert,\n Grid,\n Image,\n Button,\n App,\n Space,\n} from 'antd';\nimport { ActivityInfoRole, ActivityInfoRoleParse, ActivityDurationParse } from '@utils/constants';\nimport styles from '@styles/ActivityDetailsPage.module.css';\nimport useActivity from '../../hooks/activity/useActivity';\nimport { useParams } from 'react-router';\nimport BackBar from '@components/BackBar';\nimport * as config from '@config';\nimport { useCart } from '../../contexts/CartContext';\nimport useActivityEffectPricing from '../../hooks/activity/useActivityEffectPricing';\nimport { Precentage } from '../../utils/utils';\nimport useLoginUser from '../../hooks/useLoginUser';\nimport { FaCheck, FaXmark } from 'react-icons/fa6';\nimport { OpenURLFile } from '../../utils/utils';\nimport { TeamOutlined, FileOutlined } from '@ant-design/icons';\n\nconst { Title, Paragraph } = Typography;\nconst { useBreakpoint } = Grid;\n\nconst ActivityDetailsPage = () => {\n const { id } = useParams();\n const { addToCart } = useCart();\n const {\n data: { activity, commission },\n fetching: loading,\n fetchActivity,\n } = useActivity();\n const {\n fetching,\n data: { effectPricing = {} },\n fetchEffectPricing,\n } = useActivityEffectPricing();\n\n const { userInfo } = useLoginUser();\n const { message } = App.useApp();\n\n const [selectedVariant, setSelectedVariant] = useState(null);\n const [selectedSegment, setSelectedSegment] = useState(null);\n const [error, setError] = useState(null);\n const screens = useBreakpoint();\n\n useEffect(() => {\n fetchActivity(id).catch((error) => {\n setError('Some data is missing. Please try again later.');\n console.error('Error fetching activity:', error);\n });\n }, [id]);\n\n useEffect(() => {\n window.scrollTo(0, 0);\n fetchEffectPricing({\n activityID: id,\n segmentID: selectedSegment?.id,\n variantID: selectedVariant?.id,\n })\n .then((data) => {\n if (Object.keys(effectPricing).length !== 0) {\n message?.success('价格已更新');\n }\n })\n .catch((error) => {\n message?.error('价格更新失败');\n console.error('Error fetching effective pricing:', error);\n });\n }, [selectedVariant, selectedSegment, id]);\n\n if (loading) {\n return ;\n }\n\n if (error) {\n return ;\n }\n\n if (!activity) {\n return ;\n }\n\n const { name, nameEN, tourCode, content, information, duration, variants, segmentOptions: segments } = activity;\n\n // console.log('Activity:', activity);\n\n const handleVariantChange = (variantId, opt) => {\n const variant = variants.find((v) => v.id === opt.id);\n setSelectedVariant(variant || null);\n };\n\n const handleSegmentChange = (segmentId, opt) => {\n const segment = segments.find((v) => v.id === opt.id);\n setSelectedSegment(segment || null);\n };\n\n const handleAddToCart = () => {\n const req = {\n activityID: id,\n variantID: selectedVariant?.id || '',\n segmentID: selectedSegment?.id || '',\n };\n addToCart(req)\n .then((data) => {\n const { reply } = data;\n if (reply) {\n message?.success(reply);\n } else {\n message?.success('Added to cart');\n }\n })\n .catch((error) => {\n console.error('Erro to cart:', error);\n });\n };\n\n // const renderCommission = () => {\n // return (\n // <>\n // 佣金:\n // {!!commission.ratio\n // ? `${Precentage(commission.ratio)}%`\n // : `${Precentage(userInfo?.agency?.defaultCommission)}%`}\n // {!!commission.constant && `+A$${commission.constant}`}\n // \n // );\n // };\n\n const renderPricing = () => {\n if (activity.demo) {\n return null;\n }\n let variantOptions = [];\n if (variants) {\n variantOptions = variants.map((variant) => ({\n ...variant,\n key: variant.id,\n value: variant.id,\n label: variant.nameZH,\n labelEN: variant.nameEN,\n }));\n }\n let segmentOptions = [];\n if (segments) {\n segmentOptions = segments.map((segment) => ({\n key: segment.id,\n value: segment.id,\n label: segment.value,\n }));\n }\n\n return (\n \n {variantOptions.length > 0 && (\n {\n return (\n
\n {option.data.nameZH}\n {option.data.description}\n
\n );\n }}\n />\n )}\n {segmentOptions.length > 0 && (\n \n )}\n \n {effectPricing.bundlePriced && (\n \n ${effectPricing.bundlePrice}\n \n )}\n {!effectPricing.bundlePriced && (\n <>\n \n ${effectPricing.adultPrice}\n \n \n ${effectPricing.childPrice}\n \n \n )}\n {effectPricing.hasFamilyPlan && (\n \n 家庭套票 ({effectPricing.familyAdultNum} 成人 +{' '}\n {effectPricing.familyChildNum} 儿童)\n \n }\n >\n ${effectPricing.familyPrice}\n \n )}\n \n \n
\n );\n };\n\n const renderInformation = () => {\n if (!information || information.length === 0) {\n if (activity.demo) {\n return null;\n }\n }\n const renderInfoList = (role) => {\n let bulletNode = ;\n switch (role) {\n case ActivityInfoRole.Include:\n bulletNode = ;\n break;\n case ActivityInfoRole.Exclude:\n bulletNode = ;\n break;\n case ActivityInfoRole.Note:\n break;\n case ActivityInfoRole.ChangePolicy:\n break;\n }\n return (\n item.role === role)}\n renderItem={(item) => (\n \n {bulletNode} {item.content}\n \n )}\n locale={{ emptyText: '没有可用信息' }}\n />\n );\n };\n\n const tabItems = Object.values(ActivityInfoRole).map((role) => ({\n key: String(role),\n label: ActivityInfoRoleParse(role),\n children: renderInfoList(role),\n }));\n\n return (\n \n \n \n );\n };\n\n const renderDuration = () => {\n if (!duration) {\n return null;\n }\n return (\n \n \n {ActivityDurationParse(duration) || 'N/A'}\n \n \n );\n };\n\n const renderPhotoGrid = () => {\n if (!activity.photos || activity.photos.length === 0) {\n console.log('No photos');\n\n return null;\n }\n\n return (\n \n \n {activity.photos.map((photo, index) => (\n \n
\n \n
\n \n ))}\n
\n
\n );\n };\n\n return (\n
\n \n {name || 'Untitled Activity'}\n \n {nameEN} {tourCode && `- Tour Code: ${tourCode}`}\n \n\n
\n
\n {renderInformation()}\n {content && (\n \n
\n \n )}\n
\n {activity?.brochures?.map((item, index) => {\n return (\n \n \n OpenURLFile(item.filename)} title={item.filename}>\n {item.filename}\n \n \n );\n })}\n
\n
\n
\n {renderPricing()}\n {renderDuration()}\n
{renderPhotoGrid()}
\n
\n
\n
\n );\n};\n\nexport default ActivityDetailsPage;\n","import React, { useState, useEffect, useLayoutEffect } from 'react';\nimport styles from '@styles/TransfersPage.module.css';\nimport TopHeaderBg from '@assets/activity_top_bg_2.png';\nimport { useSelector } from 'react-redux';\nimport { createSelector } from '@reduxjs/toolkit';\nimport { useLocation } from 'react-router-dom';\nimport { RestoreScrollPosition, StoreScrollPosition } from '@utils/scrollPosition';\nimport { Selector, SelectorParser } from '../../utils/constants';\nimport { useSearchParams } from 'react-router-dom';\nimport Activities from '@components/activity/Activities';\nimport { Checkbox } from 'antd';\n\nconst cities = [\n Selector.Sydney,\n Selector.Melbourne,\n Selector.Brisbane,\n Selector.GoldCoast,\n Selector.Cairns,\n Selector.Adelaide,\n Selector.Perth,\n Selector.Tasmania,\n Selector.HamiltonIsland,\n Selector.Uluru,\n Selector.Darwin,\n Selector.Auckland,\n Selector.NewZealand,\n Selector.OtherCity,\n];\n\nfunction TransfersPage() {\n const location = useLocation();\n const [data, setData] = useState([]);\n const [loaded, setLoaded] = useState(false);\n const selectorData = (state) => state.activities.data;\n const filterHiden = createSelector(selectorData, (items) => items?.filter((item) => item.hidden == false));\n const activities = useSelector((state) => {\n return filterHiden(state);\n });\n const fetching = useSelector((state) => state.activities.fetching);\n const [searchParams, setSearchParams] = useSearchParams();\n const params = new URLSearchParams(searchParams);\n let initCity = params.get('city') ?? '';\n const [citySelector, setCitySelector] = useState(initCity);\n\n useEffect(() => {\n filterTransfers();\n }, [searchParams, fetching]);\n\n useLayoutEffect(() => {\n return () => {\n StoreScrollPosition(location.pathname + location.search);\n };\n }, []);\n\n useEffect(() => {\n RestoreScrollPosition(location.pathname + location.search);\n }, [data]);\n\n const filterTransfers = () => {\n setLoaded(false);\n const params = new URLSearchParams(searchParams);\n const sort = params.get('sort');\n let newData = [...activities];\n // city\n if (citySelector) {\n console.log('citySelector', citySelector);\n newData = newData.filter((item) => {\n if (item.selectors?.includes(citySelector)) {\n return true;\n }\n });\n // Selector sorting\n newData?.sort((a, b) => {\n const sortA = a.selectorItems.find((item) => item.name == citySelector).sort;\n const sortB = b.selectorItems.find((item) => item.name == citySelector).sort;\n return sortA - sortB;\n });\n }\n\n // filter kind\n const fixedSelector = Selector.Transfers;\n newData = newData.filter((item) => {\n if (item.selectors?.includes(fixedSelector)) {\n return true;\n }\n });\n // Selector sorting\n newData?.sort((a, b) => {\n const sortA = a.selectorItems.find((item) => item.name == fixedSelector).sort;\n const sortB = b.selectorItems.find((item) => item.name == fixedSelector).sort;\n return sortA - sortB;\n });\n\n if (sort) {\n const calculatePrice = (pricing) => {\n if (pricing.bundlePriced) {\n return pricing.bundlePrice;\n }\n return pricing.adultPrice;\n };\n switch (sort) {\n case 'price-asc':\n newData?.sort((a, b) => {\n return calculatePrice(a.pricing) - calculatePrice(b.pricing);\n });\n break;\n case 'price-desc':\n newData?.sort((a, b) => {\n return calculatePrice(b.pricing) - calculatePrice(a.pricing);\n });\n break;\n default:\n break;\n }\n }\n setData(newData);\n setLoaded(true);\n };\n\n const handleCityChecked = (value) => {\n setCitySelector((prev) => {\n return prev == value ? null : value;\n });\n const params = new URLSearchParams(searchParams);\n params.set('city', value);\n setSearchParams(params);\n };\n\n const Filter = () => {\n return (\n
\n {[...cities].map((item, index) => {\n return (\n
\n handleCityChecked(item)}>\n {SelectorParser(item)}\n \n
\n );\n })}\n
\n );\n };\n\n return (\n
\n
\n \n
\n
\n 机场接送 节省 50% 车费 \n
\n
\n
\n
\n
{citySelector ? SelectorParser(citySelector) : '全部'}
\n } priceSorting={false} />\n
\n
\n );\n}\n\nexport default TransfersPage;\n","import React, { useEffect } from 'react';\nimport { Route, Routes } from 'react-router';\nimport TicketPage from './ticket/TicketPage';\nimport { SearchPage as TicketSearchPage } from './ticket/SearchPage';\nimport { Selector } from '@utils/constants';\nimport DemoPage from './demo/DemoPage';\nimport { useSelector } from 'react-redux';\nimport { Dimmer, Loader } from 'semantic-ui-react';\nimport ActivityDetailsPage from './ActivityDetailsPage';\nimport TransfersPage from './TransfersPage';\n\nfunction Index() {\n const fetching = useSelector((state) => state.activities.fetching);\n return (\n <>\n \n \n } />\n } />\n \n }\n />\n \n \n }\n />\n \n }\n />\n \n }\n />\n \n }\n />\n } />\n\n } />\n \n \n \n \n \n );\n}\n\nexport default Index;\n"],"names":["TopHeaderBg$1","TicketPage","navigate","useNavigate","searchParams","setSearchParams","useSearchParams","handleSearch","params","jsxs","styles","jsx","TopHeaderBg","SelectorsForm","ActivityHotTagOptions","Selector","item","index","Link","config.baseURL","SelectorParser","Activities","activities","filterElement","priceSorting","loaded","title","setTitle","useState","selectRef","useRef","useEffect","selector","sort","DestinationName","handleOnChangeFilter","e","name","value","Content","ActivitiesGrid","Result","PropTypes","K_Kinds","K_Durations","K_Recommendations","FilterConstants","ActivityDuration","ActivitiesFilter","replace","sticky","kinds","setKinds","recommendations","setRecommendations","durations","setDurations","k","ActivityDurationParse","SearchPage","location","useLocation","data","setData","setLoaded","filterHiden","createSelector","state","items","useSelector","fetching","useLayoutEffect","StoreScrollPosition","RestoreScrollPosition","filterActivities","text","newData","_a","a","b","sortA","sortB","_b","_c","_d","_e","filter","calculatePrice","pricing","BackBar","Loader","DemoPage","fixedSelector","useActivity","setFetching","abortControllerRef","fetchActivity","useCallback","id","response","config.apiURL","GetToken","error","abort","useActivityEffectPricing","fetchEffectPricing","activityID","segmentID","variantID","req","Title","Paragraph","Typography","useBreakpoint","Grid","ActivityDetailsPage","useParams","addToCart","useCart","activity","commission","loading","effectPricing","useLoginUser","message","App","selectedVariant","setSelectedVariant","selectedSegment","setSelectedSegment","setError","screens","Spin","Alert","nameEN","tourCode","content","information","duration","variants","segments","handleVariantChange","variantId","opt","variant","v","handleSegmentChange","segmentId","segment","handleAddToCart","reply","renderPricing","variantOptions","segmentOptions","Card","Select","option","Descriptions","Fragment","TeamOutlined","Button","renderInformation","renderInfoList","role","bulletNode","ActivityInfoRole","FaCheck","FaXmark","List","tabItems","ActivityInfoRoleParse","Tabs","renderDuration","renderPhotoGrid","Row","photo","Col","Image","Space","FileOutlined","OpenURLFile","cities","TransfersPage","initCity","citySelector","setCitySelector","filterTransfers","handleCityChecked","prev","Filter","Checkbox","Index","Routes","Route","TicketSearchPage","Dimmer"],"mappings":"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"}