INSERT INTO `cp_filejs` (`id`,`app`,`path`,`modul`,`file_name`,`content`) VALUES ('309','2','u6/driver','discover','js/discoverpage.js---','import app from \\\\\\\\\\\\\\\"./app.js\\\\\\\\\\\\\\\";\r\nimport store from \\\\\\\\\\\\\\\"./store.js\\\\\\\\\\\\\\\";\r\nvar $ = Dom7;\r\n\r\nvar trendingEventsStore = store.getters.getTrendingEvents;\r\nvar trendingVenuesStore = store.getters.getTrendingVenues;\r\nvar eventCategories = store.getters.getEventCategories;\r\nvar filteredEventsStore = store.getters.getFilteredEvents;\r\nvar filteredVenuesStore = store.getters.getFilteredVenues;\r\nvar trendingUsersStore = store.getters.getTrendingUsers;\r\n\r\nvar isFetchingPosts = false\r\nvar currentEventsPage = 1\r\nvar currentVenuesPage = 1\r\nvar currentUsersPage = 1\r\nvar refreshed = false\r\n\r\nvar totalEventPages = 1\r\nvar totalVenuesPages = 1\r\nvar totalUsersPages = 1\r\n\r\nvar autocomplete;\r\nvar filters = {};\r\n\r\n//AUTOCOMPLETE FUNCTIONS\r\nfunction initAutocomplete() {\r\n autocomplete = new google.maps.places.Autocomplete(\r\n document.getElementById(\\\\\\\\\\\\\\\"autocomplete\\\\\\\\\\\\\\\"), {\r\n types: [\\\\\\\\\\\\\\\"establishment\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"geocode\\\\\\\\\\\\\\\"],\r\n componentRestrictions: {\r\n country: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'GB\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n }\r\n }\r\n );\r\n autocomplete.setFields([\\\\\\\\\\\\\\\"geometry\\\\\\\\\\\\\\\", \\\\\\\\\\\\\\\"address_component\\\\\\\\\\\\\\\"]);\r\n autocomplete.addListener(\\\\\\\\\\\\\\\"place_changed\\\\\\\\\\\\\\\", fillInAddress);\r\n}\r\n\r\nfunction fillInAddress() {\r\n const place = autocomplete.getPlace();\r\n\r\n console.log(place);\r\n\r\n document.getElementById(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'lat\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').value = place.geometry.location.lat();\r\n document.getElementById(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'lng\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').value = place.geometry.location.lng();\r\n}\r\n\r\nfunction populateEventCard(data = [], isSwiper = true) {\r\n const swiperContainer = document.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#trending-events\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n if (isSwiper) swiperContainer.innerHTML = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\';\r\n\r\n const eventsTabContainer = document.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#filtered-events-tab\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n\r\n if (refreshed) {\r\n eventsTabContainer.innerHTML = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\';\r\n }\r\n\r\n data.forEach(event => {\r\n const startDate = new Date(event.start_date);\r\n const endDate = new Date(event.end_date);\r\n // const startDate = new Date(event.dates[0].start_date);\r\n // const endDate = new Date(event.dates[0].end_date);\r\n\r\n let endDateString = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\';\r\n\r\n if (startDate.getDate() !== endDate.getDate()) {\r\n endDateString = `\r\n
\r\n
${endDate.toLocaleString(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'default\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', { month: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'short\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' })}
\r\n
${endDate.getDate()}
\r\n
\r\n `\r\n }\r\n\r\n const card = `\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
${startDate.toLocaleString(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'default\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', { month: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'short\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' })}
\r\n
${startDate.getDate()}
\r\n
\r\n ${endDateString}\r\n
\r\n
\r\n
\r\n
${event.title}
\r\n
Starts ${startDate.toLocaleString(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'default\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', { weekday: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'short\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' })}, ${startDate.getDate()} ${startDate.toLocaleString(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'default\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', { month: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'short\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' })} ${startDate.getFullYear()}
\r\n
\r\n ${event.location}\r\n
\r\n
\r\n
\r\n \r\n `;\r\n\r\n if (isSwiper) {\r\n const swiperSlide = document.createElement(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'swiper-slide\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n swiperSlide.innerHTML = card;\r\n swiperContainer.appendChild(swiperSlide);\r\n }\r\n\r\n eventsTabContainer.innerHTML += card;\r\n });\r\n}\r\n\r\nfunction populateVenueCard(data = [], isSwiper = true) {\r\n const swiperContainer = document.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#trending-venues\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n\r\n if (isSwiper) swiperContainer.innerHTML = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\';\r\n\r\n const eventsTabContainer = document.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#filtered-venues-tab\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n\r\n data.forEach(event => {\r\n const swiperSlide = document.createElement(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'swiper-slide\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n\r\n const card = `\r\n
\r\n \r\n
\r\n
\r\n
${event.title}
\r\n
\r\n ${event.venue_location}\r\n
\r\n
\r\n Apprx. ${event.distance} miles away\r\n
\r\n
\r\n
\r\n \r\n `;\r\n\r\n if (isSwiper) {\r\n swiperSlide.innerHTML = card;\r\n swiperContainer.appendChild(swiperSlide);\r\n }\r\n\r\n eventsTabContainer.innerHTML += card;\r\n });\r\n\r\n\r\n}\r\n\r\nfunction populateUsersCard(data = []) {\r\n const tabContainer = document.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#users-vehicles-tab\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n\r\n data.forEach(user => {\r\n let linkTo = user.type === \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'user\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ? `/profile-view/${user.id}` : `/profile-garage-vehicle-view/${user.id}`;\r\n let title;\r\n\r\n if (user.type === \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'user\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\') {\r\n title = user.name;\r\n }\r\n\r\n if (user.type === \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'vehicle\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\') {\r\n const userName = user.owner.username;\r\n const vehicleName = user.title;\r\n\r\n title = `${vehicleName}
Owner ${userName}`;\r\n }\r\n\r\n\r\n const card = `\r\n
\r\n \r\n \r\n \r\n \r\n \r\n `;\r\n tabContainer.innerHTML += card;\r\n });\r\n}\r\n\r\nfunction addCategoryOptions(categories) {\r\n const categoryFilters = document.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#category-filters ul\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n\r\n categories.forEach(category => {\r\n const listItem = document.createElement(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'li\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n\r\n listItem.innerHTML = `\r\n
\r\n `;\r\n\r\n categoryFilters.appendChild(listItem);\r\n });\r\n}\r\n\r\n// Event listener for the submit button\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'click\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.apply-filters\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', function (e) {\r\n const dateFilters = document.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#date-filters ul\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n const locationFilters = document.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#location-filters ul\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n const categoryFilters = document.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#category-filters ul\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n\r\n e.preventDefault(); // Prevent form submission if you\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'re handling it via JavaScript\r\n const selectedCats = [...categoryFilters.querySelectorAll(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[type=\\\\\\\\\\\\\\\"checkbox\\\\\\\\\\\\\\\"]:checked\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')].map(cb => cb.value);\r\n const selectedLocation = [...locationFilters.querySelectorAll(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[type=\\\\\\\\\\\\\\\"radio\\\\\\\\\\\\\\\"]:checked\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')].map(cb => cb.value);\r\n const dateFilter = [...dateFilters.querySelectorAll(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[type=\\\\\\\\\\\\\\\"checkbox\\\\\\\\\\\\\\\"]:checked\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')].map(cb => cb.value);\r\n\r\n filters = {\r\n \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'event_location\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\': selectedLocation,\r\n // \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'custom_location\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\': location,\r\n \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'event_date\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\': dateFilter,\r\n // \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'event_start\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\': customDateRange?.start,\r\n // \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'event_end\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\': customDateRange?.end,\r\n \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'event_category\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\': !selectedCats?.includes(0) ? selectedCats : undefined,\r\n };\r\n\r\n // get active tab\r\n const activeTab = document.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.tabbar-nav .tab-link-active\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').getAttribute(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'data-id\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n\r\n if (activeTab === \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'events\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\') {\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'filterEvents\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', {\r\n page: 1,\r\n filters\r\n })\r\n\r\n currentEventsPage = 1\r\n isFetchingPosts = false\r\n\r\n const eventsTabContainer = document.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#filtered-events-tab\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n eventsTabContainer.innerHTML = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\';\r\n }\r\n\r\n if (activeTab === \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'venues\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\') {\r\n store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'filterVenues\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', {\r\n page: 1,\r\n filters\r\n })\r\n\r\n currentVenuesPage = 1\r\n isFetchingPosts = false\r\n\r\n const venuesTabContainer = document.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#filtered-venues-tab\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n venuesTabContainer.innerHTML = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\';\r\n }\r\n\r\n // close popup\r\n app.popup.close()\r\n});\r\n\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'change\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#category-filters ul\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', function (e) {\r\n const categoryFilters = document.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#category-filters ul\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n var allCheckbox = categoryFilters.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[name=\\\\\\\\\\\\\\\"all\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n\r\n const targetCheckbox = e.target;\r\n\r\n if (targetCheckbox.name !== \\\\\\\\\\\\\\\"all\\\\\\\\\\\\\\\") {\r\n // If any other checkbox is selected, uncheck \\\\\\\\\\\\\\\"All\\\\\\\\\\\\\\\"\r\n if (targetCheckbox.checked) {\r\n allCheckbox.checked = false;\r\n } else {\r\n // If all other checkboxes are unchecked, check \\\\\\\\\\\\\\\"All\\\\\\\\\\\\\\\"\r\n const allUnchecked = [...categoryFilters.querySelectorAll(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[type=\\\\\\\\\\\\\\\"checkbox\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')]\r\n .filter(cb => cb.name !== \\\\\\\\\\\\\\\"all\\\\\\\\\\\\\\\")\r\n .every(cb => !cb.checked);\r\n\r\n if (allUnchecked) {\r\n allCheckbox.checked = true;\r\n }\r\n }\r\n } else {\r\n // If \\\\\\\\\\\\\\\"All\\\\\\\\\\\\\\\" is selected, uncheck all other checkboxes\r\n if (targetCheckbox.checked) {\r\n [...categoryFilters.querySelectorAll(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[type=\\\\\\\\\\\\\\\"checkbox\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')]\r\n .filter(cb => cb.name !== \\\\\\\\\\\\\\\"all\\\\\\\\\\\\\\\")\r\n .forEach(cb => cb.checked = false);\r\n }\r\n }\r\n});\r\n\r\neventCategories.onUpdated((data) => {\r\n addCategoryOptions(data);\r\n})\r\n\r\ntrendingVenuesStore.onUpdated((data) => {\r\n totalVenuesPages = data.total_pages\r\n\r\n populateVenueCard(data.data);\r\n});\r\n\r\ntrendingEventsStore.onUpdated((data) => {\r\n totalEventPages = data.total_pages\r\n\r\n populateEventCard(data.data);\r\n});\r\n\r\ntrendingUsersStore.onUpdated((data) => {\r\n const tabContainer = document.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#users-vehicles-tab\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n if (!data || data.data.length === 0) {\r\n tabContainer.innerHTML = `\r\n
\r\n
No trending users found for you
\r\n \r\n `;\r\n return\r\n }\r\n\r\n totalUsersPages = data.total_pages\r\n\r\n if ((totalUsersPages == data.page) || (totalUsersPages == 0) || (data.new_data.length < 10)) {\r\n $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.infinite-scroll-preloader.users-tab\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').hide()\r\n } else {\r\n $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.infinite-scroll-preloader.users-tab\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').show()\r\n }\r\n\r\n populateUsersCard(data.new_data);\r\n});\r\n\r\n// Filtered views\r\nfilteredEventsStore.onUpdated((data) => {\r\n const eventsTabContainer = document.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#filtered-events-tab\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n if (!data || data.data.length === 0) {\r\n eventsTabContainer.innerHTML = `\r\n
\r\n
No events found
\r\n \r\n `;\r\n return\r\n }\r\n\r\n totalEventPages = data.total_pages\r\n\r\n if ((totalEventPages == data.page) || (totalEventPages == 0) || (data.new_data.length < 10)) {\r\n $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.infinite-scroll-preloader.events-tab\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').hide()\r\n } else {\r\n $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.infinite-scroll-preloader.events-tab\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').show()\r\n }\r\n\r\n populateEventCard(data.new_data, false);\r\n});\r\n\r\nfilteredVenuesStore.onUpdated((data) => {\r\n const tabContainer = document.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#filtered-venues-tab\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n\r\n if (!data || data.data.length === 0) {\r\n tabContainer.innerHTML = `\r\n
\r\n
No venues found
\r\n \r\n `;\r\n\r\n totalVenuesPages = 0\r\n return\r\n }\r\n\r\n if ((totalVenuesPages == data.page) || (totalVenuesPages == 0) || (data.new_data.length == 0)) {\r\n $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.infinite-scroll-preloader.venues-tab\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').hide()\r\n totalVenuesPages = 0\r\n } else {\r\n $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.infinite-scroll-preloader.venues-tab\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').show()\r\n totalVenuesPages = data.total_pages\r\n populateVenueCard(data.new_data, false);\r\n }\r\n});\r\n\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'page:init\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.page[data-name=\\\\\\\\\\\\\\\"discover\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', function (e) {\r\n //Date Filters\r\n app.calendar.create({\r\n inputEl: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#date-from\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n openIn: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'customModal\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n header: true,\r\n footer: true,\r\n });\r\n\r\n app.calendar.create({\r\n inputEl: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#date-to\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n openIn: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'customModal\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n header: true,\r\n footer: true,\r\n });\r\n\r\n //Filter Date Popup\r\n app.popup.create({\r\n el: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.filter-bydate-popup\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n swipeToClose: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'to-bottom\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n });\r\n\r\n //Filter Category Popup\r\n app.popup.create({\r\n el: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.filter-bycategory-popup\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n swipeToClose: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'to-bottom\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n });\r\n\r\n //Filter Location Popup\r\n app.popup.create({\r\n el: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.filter-bylocation-popup\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n swipeToClose: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'to-bottom\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n });\r\n\r\n //SEARCH BAR\r\n $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.discover-search\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'mousedown\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', function (event) {\r\n event.preventDefault();\r\n app.views.discover.router.navigate(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'/search/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n });\r\n\r\n const dateFilters = document.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#date-filters ul\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n const locationFilters = document.querySelector(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#location-filters ul\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n\r\n // Event listener for checkbox selection\r\n dateFilters.addEventListener(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'change\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', function (e) {\r\n const targetCheckbox = e.target;\r\n\r\n // Uncheck all checkboxes except the one that was clicked\r\n if (targetCheckbox.type === \\\\\\\\\\\\\\\"checkbox\\\\\\\\\\\\\\\") {\r\n [...dateFilters.querySelectorAll(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[type=\\\\\\\\\\\\\\\"checkbox\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')].forEach(checkbox => {\r\n if (checkbox !== targetCheckbox) {\r\n checkbox.checked = false;\r\n }\r\n });\r\n }\r\n });\r\n\r\n locationFilters.addEventListener(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'change\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', function (e) {\r\n const targetCheckbox = e.target;\r\n\r\n // Uncheck all checkboxes except the one that was clicked\r\n if (targetCheckbox.type === \\\\\\\\\\\\\\\"checkbox\\\\\\\\\\\\\\\") {\r\n [...locationFilters.querySelectorAll(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'input[type=\\\\\\\\\\\\\\\"checkbox\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')].forEach(checkbox => {\r\n if (checkbox !== targetCheckbox) {\r\n checkbox.checked = false;\r\n }\r\n });\r\n }\r\n });\r\n\r\n initAutocomplete();\r\n});\r\n\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'infinite\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.discover-page.infinite-scroll-content\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', async function (e) {\r\n if (isFetchingPosts) return\r\n\r\n // get active tab\r\n const activeTabId = $(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.tabbar-nav .tab-link-active\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').attr(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'data-id\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n\r\n if (!activeTabId) return\r\n\r\n isFetchingPosts = true\r\n\r\n if (activeTabId == \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'events\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\') {\r\n currentEventsPage++\r\n\r\n if (currentEventsPage <= totalEventPages) {\r\n await store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'filterEvents\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', {\r\n page: currentEventsPage,\r\n filters\r\n })\r\n isFetchingPosts = false\r\n }\r\n } else if (activeTabId == \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'venues\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\') {\r\n currentVenuesPage++\r\n\r\n if (currentVenuesPage <= totalVenuesPages) {\r\n await store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'filterVenues\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', {\r\n page: currentVenuesPage,\r\n filters\r\n })\r\n isFetchingPosts = false\r\n }\r\n } else {\r\n isFetchingPosts = false\r\n }\r\n})\r\n\r\n// $(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'page:beforein\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.page[data-name=\\\\\\\\\\\\\\\"discover\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', function (e) {\r\n// const eventCats = eventCategories.value\r\n// const trendingEvents = trendingEventsStore.value\r\n// const trendingVenues = trendingVenuesStore.value\r\n// const trendingUsers = trendingUsersStore.value\r\n\r\n// if (!eventCats || eventCats.length === 0) {\r\n// store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'fetchEventCategories\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n// } else {\r\n// addCategoryOptions(eventCats);\r\n// }\r\n\r\n// if (!trendingEvents || trendingEvents.length === 0) {\r\n// store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'fetchTrendingEvents\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n// } else {\r\n// totalEventPages = trendingEvents.total_pages\r\n// populateEventCard(trendingEvents.data);\r\n// }\r\n\r\n// if (!trendingVenues || trendingVenues.length === 0) {\r\n// store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'fetchTrendingVenues\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n// } else {\r\n// totalVenuesPages = trendingVenues.total_pages\r\n// populateVenueCard(trendingVenues.data);\r\n// }\r\n\r\n// if (!trendingUsers || trendingUsers.length === 0) {\r\n// store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'fetchTrendingUsers\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n// } else {\r\n// totalUsersPages = trendingUsers.total_pages\r\n// populateUsersCard(trendingUsers.data);\r\n// }\r\n// });\r\n\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'page:init\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.page[data-name=\\\\\\\\\\\\\\\"discover-view-event\\\\\\\\\\\\\\\"]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', function (e) {\r\n // Init slider\r\n new Swiper(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.swiper-container\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', {\r\n pagination: {\r\n el: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.swiper-pagination\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n clickable: true,\r\n },\r\n })\r\n\r\n app.popup.create({\r\n el: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.share-listing-popup\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\',\r\n swipeToClose: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'to-bottom\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\r\n });\r\n});\r\n\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'ptr:refresh\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.discover-page.ptr-content\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', async function (e) {\r\n refreshed = true\r\n currentEventsPage = 1\r\n currentVenuesPage = 1\r\n\r\n try {\r\n await store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'getTrendingEvents\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n await store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'getTrendingVenues\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n await store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'filterTrendingUsers\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n await store.dispatch(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'fetchEventCategories\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n refreshed = false\r\n app.ptr.get(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'.discover-page.ptr-content\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\').done()\r\n})\r\n\r\n$(document).on(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'click\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'#featured-event-link\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\', function (e) {\r\n e.preventDefault();\r\n window.open(e.target.href, \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'_blank\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\');\r\n});');