@abcagency/hc-ui-components 1.9.21 → 1.9.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/HireControlMap.js +4 -1
- package/dist/components/HireControlMap.js.map +1 -1
- package/dist/components/containers/accordions/map-accordion-item-container.js +15 -3
- package/dist/components/containers/accordions/map-accordion-item-container.js.map +1 -1
- package/dist/components/containers/filter/filter-container.js +0 -8
- package/dist/components/containers/filter/filter-container.js.map +1 -1
- package/dist/components/modules/accordions/filters.js +1 -1
- package/dist/components/modules/accordions/filters.js.map +1 -1
- package/dist/components/modules/filter/index.js.map +1 -1
- package/dist/components/modules/list/field-mapper-mobile.js +62 -53
- package/dist/components/modules/list/field-mapper-mobile.js.map +1 -1
- package/dist/components/modules/list/list-item/list-item.js +9 -20
- package/dist/components/modules/list/list-item/list-item.js.map +1 -1
- package/dist/contexts/mapListContext.js +2 -2
- package/dist/contexts/mapListContext.js.map +1 -1
- package/dist/styles/index.css +1 -1
- package/dist/types/components/containers/accordions/map-accordion-item-container.d.ts +2 -1
- package/dist/types/contexts/mapListContext.d.ts +134 -0
- package/package.json +1 -1
- package/src/components/HireControlMap.js +4 -2
- package/src/components/containers/accordions/map-accordion-item-container.js +13 -2
- package/src/components/containers/filter/filter-container.js +0 -9
- package/src/components/modules/accordions/filters.js +1 -1
- package/src/components/modules/filter/index.js +2 -2
- package/src/components/modules/list/field-mapper-mobile.jsx +66 -70
- package/src/components/modules/list/list-item/list-item.jsx +4 -18
- package/src/contexts/mapListContext.tsx +5 -2
- package/src/index.js +1 -0
- package/src/styles/bundle.css +3 -1
- package/src/styles/index.css +9 -0
- package/dist/types/services/configService.d.ts +0 -6
- package/dist/types/services/listingAggregatorService.d.ts +0 -9
- package/dist/types/services/listingEntityService.d.ts +0 -5
- package/dist/types/services/listingService.d.ts +0 -9
- package/dist/types/services/recruiterService.d.ts +0 -6
|
@@ -92,6 +92,8 @@ var HireControlMap = function HireControlMap(_ref2) {
|
|
|
92
92
|
hideFilters = _ref2$hideFilters === void 0 ? false : _ref2$hideFilters,
|
|
93
93
|
_ref2$noEntities = _ref2.noEntities,
|
|
94
94
|
noEntities = _ref2$noEntities === void 0 ? false : _ref2$noEntities,
|
|
95
|
+
_ref2$mobileDetailsCa = _ref2.mobileDetailsCallback,
|
|
96
|
+
mobileDetailsCallback = _ref2$mobileDetailsCa === void 0 ? null : _ref2$mobileDetailsCa,
|
|
95
97
|
_ref2$trackEvent = _ref2.trackEvent,
|
|
96
98
|
trackEvent = _ref2$trackEvent === void 0 ? function (eventType, eventObj) {
|
|
97
99
|
console.log(eventType);
|
|
@@ -242,7 +244,8 @@ var HireControlMap = function HireControlMap(_ref2) {
|
|
|
242
244
|
hideMap: hideMap,
|
|
243
245
|
hideFilters: hideFilters,
|
|
244
246
|
noEntities: noEntities,
|
|
245
|
-
filterConfig: filterConfig
|
|
247
|
+
filterConfig: filterConfig,
|
|
248
|
+
mobileDetailsCallback: mobileDetailsCallback
|
|
246
249
|
};
|
|
247
250
|
|
|
248
251
|
// Calculate effective showMap value
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HireControlMap.js","sources":["../../src/components/HireControlMap.js"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { useLoadScript } from '@react-google-maps/api';\n\nimport Grid from '~/components/modules/grid';\nimport Filter from '~/components/containers/filter/filter-container';\nimport MapList from '~/components/containers/maps/map-list-container';\n\n// Context imports\nimport { MapProvider } from '~/contexts/mapContext';\nimport { PlacesProvider } from '~/contexts/placesContext';\nimport { MapListProvider } from '~/contexts/mapListContext';\nimport { TrackEventProvider } from '~/contexts/trackEventContext';\nimport { ThemeProvider } from '~/contexts/themeContext';\n\nimport { initializeAlgoliaSearch } from '~/util/algoliaSearchUtil';\n\n// Libraries for Google Maps\nconst LIBRARIES = ['places'];\n\n// Since all data is now passed in statically, no need to fetch config\n\n// Component to handle all context providers\nconst ContextProviders = ({ children, siteConfig, trackEvent, googleMapsApiKey, ...mapListProps }) => { return(\n\t<TrackEventProvider trackEvent={trackEvent}>\n\t\t<ThemeProvider\n\t\t\tuiText={siteConfig.colors.uiText}\n\t\t\tuiAccent={siteConfig.colors.uiAccent}\n\t\t\tprimary={siteConfig.colors.primary}\n\t\t\tprimaryDark={siteConfig.colors.primaryDark}\n\t\t\tsecondary={siteConfig.colors.secondary}\n\t\t\tsecondaryDark={siteConfig.colors.secondaryDark}\n\t\t>\n\t\t\t<MapListProvider siteConfig={siteConfig} googleMapsApiKey={googleMapsApiKey} {...mapListProps}>\n\t\t\t\t<MapProvider resetFilters={mapListProps.resetFilters} defaultZoomOverride={mapListProps.defaultZoomOverride} localStorageKey={mapListProps.localStorageKey}>\n\t\t\t\t\t<PlacesProvider\n\t\t\t\t\t\tplaceMappings={siteConfig.pointsOfInterestConfig.placeMappings ?? {}}\n\t\t\t\t\t\tadditionalMapMarkers={mapListProps.additionalMapMarkers}\n\t\t\t\t\t\tgoogleMapsApiKey={googleMapsApiKey}\n\t\t\t\t\t\tshowAtZoomLevel={siteConfig.pointsOfInterestConfig.showAtZoomLevel ?? 12}\n\t\t\t\t\t\tmarkerColors={{\n\t\t\t\t\t\t\tfillColor: siteConfig.colors.primary,\n\t\t\t\t\t\t\tstrokeColor: siteConfig.colors.primaryDark,\n\t\t\t\t\t\t\tselectedFillColor: siteConfig.colors.secondary,\n\t\t\t\t\t\t\tselectedStrokeColor: siteConfig.colors.secondaryDark,\n\t\t\t\t\t\t\tplaceMarkers: {\n\t\t\t\t\t\t\t\tcolors: siteConfig.pointsOfInterestConfig.placeMarkerColors,\n\t\t\t\t\t\t\t\tsize: siteConfig.pointsOfInterestConfig.placeMarkerSize\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</PlacesProvider>\n\t\t\t\t</MapProvider>\n\t\t\t</MapListProvider>\n\t\t</ThemeProvider>\n\t</TrackEventProvider>\n);};\n\n// Main component\n//\nexport const HireControlMap = ({\n\tclientToken,\n\tgoogleMapsApiKey, // Required: Google Maps API key from Next.js\n\tcontainerStyle = { height: '100vh' },\n\tnavigateToDetails = null,\n\tnavigateToEasyApply = null,\n\thandleUrlUpdate = null,\n\tLink = null,\n\tlinkFormat = '/jobs/[slug]',\n\teasyApplyUrl = null,\n\teasyApplyText = 'Easy Apply',\n\tisIframe = false,\n\thideMap = false, // Override to hide map even if siteConfig.showMap is true\n\thideFilters = false, // Hide the entire filter section\n\tnoEntities = false, // Skip entity fetching and hide entity-related filters\n\ttrackEvent = (eventType, eventObj) => {\n\t\tconsole.log(eventType);\n\t\tconsole.log(eventObj);\n\t},\n\t//providing listings entities and a getListingEntities function should negate the need for map code to fetch data\n\tlistings = [],\n\tentities = [],\n\tgetListingEntitiesCallback = null,\n\tdefaultFilters = null,\n\thiddenFilters = null,\n\tsetFiltersUrl = null,\n\tExpandListComponent = null,\n\tadditionalMapMarkers = [],\n\tdefaultZoomOverride = null,\n\t//Default site configuration file passed here stops need to fetch from api\n\tsiteConfiguration = null,\n\tlocalStorageKey = 'defaultKey.',\n\t// Algolia search configuration (optional)\n\talgoliaAppId = null,\n\talgoliaApiKey = null,\n\talgoliaIndexName = null,\n\t/**\n\t * Filter configuration (optional)\n\t * @param {boolean} hideZeroResults - Hide filter options with 0 results (default: false)\n\t * @param {boolean} dynamicCounts - Update counts based on active filters.\n\t * If false, shows initial/total counts (default: true)\n\t * @param {boolean} showFavorites - Show favorites special feature filter (default: true)\n\t * @param {boolean} collapsedByDefault - Start with all filter sections collapsed (default: false)\n\t * @param {boolean} sortAlphabetically - Sort filter options alphabetically instead of by count (default: false)\n\t * @param {object} classNames - Custom Tailwind classes to apply to filter components\n\t * @param {string} classNames.filterContainer - Classes for the main filter container wrapper\n\t * @param {string} classNames.filterContent - Classes for the scrollable filter content area\n\t * @param {string} classNames.filterAccordion - Classes for each filter accordion section\n\t * @param {string} classNames.filterAccordionHeader - Classes for accordion header/trigger\n\t * @param {string} classNames.filterAccordionContent - Classes for accordion content area\n\t * @param {string} classNames.filterItem - Classes for individual filter items (checkboxes/options)\n\t * @param {string} classNames.filterItemLabel - Classes for filter item labels\n\t * @param {string} classNames.filterItemCheckbox - Classes for filter item checkboxes\n\t * @param {string} classNames.filterItemCount - Classes for filter item count badges\n\t * @param {string} classNames.searchInput - Classes for search input field\n\t * @param {string} classNames.resetButton - Classes for reset all button\n\t * @param {string} classNames.showJobsButton - Classes for show jobs button\n\t * @param {string} classNames.filterFooter - Classes for the footer containing buttons\n\t */\n\tfilterConfig = {\n\t\thideZeroResults: false, // Hide filter options with 0 results\n\t\tdynamicCounts: true, // Update counts based on other active filters (false = show initial counts only)\n\t\tshowFavorites: true, // Show favorites filter\n\t\tcollapsedByDefault: false, // Start with all filter sections collapsed\n\t\tsortAlphabetically: false, // Sort filter options alphabetically instead of by count\n\t\tclassNames: {\n\t\t\tfilterContainer: '', // Main filter container wrapper\n\t\t\tfilterContent: '', // Scrollable content area\n\t\t\tfilterAccordion: '', // Filter accordion section\n\t\t\tfilterAccordionHeader: '', // Accordion header/trigger\n\t\t\tfilterAccordionContent: '', // Accordion content body\n\t\t\tfilterItem: '', // Individual filter items\n\t\t\tfilterItemLabel: '', // Filter item labels\n\t\t\tfilterItemCheckbox: '', // Filter item checkboxes\n\t\t\tfilterItemCount: '', // Filter item count badges\n\t\t\tsearchInput: '', // Search input field\n\t\t\tresetButton: '', // Reset all button\n\t\t\tshowJobsButton: '', // Show jobs button\n\t\t\tfilterFooter: '' // Footer with buttons\n\t\t}\n\t}\n}) => {\n\t// Initialize Algolia when credentials are provided (client-side only)\n\tconst [algoliaInitialized, setAlgoliaInitialized] = useState(false);\n\t\n\tuseEffect(() => {\n\t\tif (algoliaAppId && algoliaApiKey && algoliaIndexName && typeof window !== 'undefined') {\n\t\t\tinitializeAlgoliaSearch(algoliaAppId, algoliaApiKey, algoliaIndexName).then(initialized => {\n\t\t\t\tsetAlgoliaInitialized(initialized);\n\t\t\t\tif (initialized) {\n\t\t\t\t\tconsole.log('Algolia search initialized successfully');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, [algoliaAppId, algoliaApiKey, algoliaIndexName]);\n\n\t// Load Google Maps (non-blocking - map component will handle this)\n\tconst { isLoaded: isMapsLoaded, loadError } = useLoadScript({\n\t\tgoogleMapsApiKey: googleMapsApiKey,\n\t\tversion: 'quarterly',\n\t\tlibraries: LIBRARIES\n\t});\n\n\t// Only show errors for critical failures\n\tif (!googleMapsApiKey) {\n\t\tconsole.error('Google Maps API key is required');\n\t\treturn <div className=\"hc-p-4\">Google Maps API key is required</div>;\n\t}\n\n\tif (loadError) {\n\t\tconsole.error('Google Maps failed to load:', loadError);\n\t\treturn <div className=\"hc-p-4\">Error loading Google Maps</div>;\n\t}\n\n\t// Don't block rendering - let filters and list show immediately\n\t// Map container will handle its own loading state\n\n\t// siteConfiguration is now required - all data passed in statically\n\tif (!siteConfiguration) {\n\t\tconsole.error('Site configuration is required');\n\t\treturn <div className=\"hc-p-4\">Site configuration is required</div>;\n\t}\n\n\t// Prepare props for MapListProvider\n\tconst mapListProps = {\n\t\tresetFilters: false,\n\t\tnavigateToDetails,\n\t\tnavigateToEasyApply,\n\t\tLink,\n\t\tlinkFormat,\n\t\teasyApplyUrl,\n\t\teasyApplyText,\n\t\tlistings,\n\t\tentities,\n\t\tsiteConfig: siteConfiguration,\n\t\tgetListingEntitiesCallback,\n\t\tsetFiltersUrl,\n\t\thiddenFilters,\n\t\thandleUrlUpdate,\n\t\tdefaultFilters,\n\t\tdefaultZoomOverride, // will usually fit bounds\n\t\tcontainerStyle,\n\t\tExpandListComponent: ExpandListComponent ?? null,\n\t\tadditionalMapMarkers,\n\t\tisIframe,\n\t\tlocalStorageKey,\n\t\thideMap,\n\t\thideFilters,\n\t\tnoEntities,\n\t\tfilterConfig\n\t};\n\n\t// Calculate effective showMap value\n\tconst effectiveShowMap = hideMap ? false : siteConfiguration.showMap;\n\n\t// Prepare marker configuration\n\tconst markerConfigs = {\n\t\tfillColor: siteConfiguration.colors.primary,\n\t\tstrokeColor: siteConfiguration.colors.primaryDark,\n\t\tselectedFillColor: siteConfiguration.colors.secondary,\n\t\tselectedStrokeColor: siteConfiguration.colors.secondaryDark,\n\t\tplaceMarkers: {\n\t\t\tcolors: siteConfiguration.pointsOfInterestConfig.placeMarkerColors,\n\t\t\tsize: siteConfiguration.pointsOfInterestConfig.placeMarkerSize\n\t\t}\n\t};\n\n\t// Render immediately - individual components handle their own loading\n\t// Only Google Maps components will wait for isMapsLoaded\n\treturn (\n\t\t<ContextProviders\n\t\t\tsiteConfig={siteConfiguration}\n\t\t\ttrackEvent={trackEvent}\n\t\t\tgoogleMapsApiKey={googleMapsApiKey || process.env.GOOGLE_MAPS_API_KEY}\n\t\t\t{...mapListProps}\n\t\t>\n\t\t\t<Grid\n\t\t\t\tas='section'\n\t\t\t\tid='job-search-interface'\n\t\t\t\tcolumns={hideFilters ? 'hc-grid-cols-1' : 'md:hc-grid-cols-[1fr_2.5fr] lg:hc-grid-cols-[1fr_3.5fr]'}\n\t\t\t\tgap='hc-gap-0'\n\t\t\t\tautoRows={false}\n\t\t\t\tclassName={'hc-bundle hc-items-stretch hc-divide-x hc-divide-uiAccent/20'}\n\t\t\t>\n\t\t\t\t{!hideFilters && (\n\t\t\t\t\t<Grid.Item className='hc-bg-gray-100'>\n\t\t\t\t\t\t<Filter isDesktop={true} showMap={effectiveShowMap} className='hc-hidden md:hc-block' />\n\t\t\t\t\t</Grid.Item>\n\t\t\t\t)}\n\t\t\t\t<MapList\n\t\t\t\t\tcontainerStyle={containerStyle}\n\t\t\t\t\tmapPosition={siteConfiguration.mapPosition}\n\t\t\t\t\tshowMap={effectiveShowMap}\n\t\t\t\t\tfieldsShown={siteConfiguration.fieldsShown}\n\t\t\t\t\tspecialFeatures={siteConfiguration.specialFeatures}\n\t\t\t\t\tfieldNames={siteConfiguration.fieldNames}\n\t\t\t\t\tplaceMappings={siteConfiguration.pointsOfInterestConfig.placeMappings ?? {}}\n\t\t\t\t\tmarkerConfigs={markerConfigs}\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t</ContextProviders>\n\t);\n};\n\nexport default HireControlMap;\n"],"names":["LIBRARIES","ContextProviders","_ref","_siteConfig$pointsOfI","_siteConfig$pointsOfI2","children","siteConfig","trackEvent","googleMapsApiKey","mapListProps","_objectWithoutProperties","_excluded","React","createElement","TrackEventProvider","ThemeProvider","uiText","colors","uiAccent","primary","primaryDark","secondary","secondaryDark","MapListProvider","_extends","MapProvider","resetFilters","defaultZoomOverride","localStorageKey","PlacesProvider","placeMappings","pointsOfInterestConfig","additionalMapMarkers","showAtZoomLevel","markerColors","fillColor","strokeColor","selectedFillColor","selectedStrokeColor","placeMarkers","placeMarkerColors","size","placeMarkerSize","HireControlMap","_ref2","_siteConfiguration$po","clientToken","_ref2$containerStyle","containerStyle","height","_ref2$navigateToDetai","navigateToDetails","_ref2$navigateToEasyA","navigateToEasyApply","_ref2$handleUrlUpdate","handleUrlUpdate","_ref2$Link","Link","_ref2$linkFormat","linkFormat","_ref2$easyApplyUrl","easyApplyUrl","_ref2$easyApplyText","easyApplyText","_ref2$isIframe","isIframe","_ref2$hideMap","hideMap","_ref2$hideFilters","hideFilters","_ref2$noEntities","noEntities","_ref2$trackEvent","eventType","eventObj","console","log","_ref2$listings","listings","_ref2$entities","entities","_ref2$getListingEntit","getListingEntitiesCallback","_ref2$defaultFilters","defaultFilters","_ref2$hiddenFilters","hiddenFilters","_ref2$setFiltersUrl","setFiltersUrl","_ref2$ExpandListCompo","ExpandListComponent","_ref2$additionalMapMa","_ref2$defaultZoomOver","_ref2$siteConfigurati","siteConfiguration","_ref2$localStorageKey","_ref2$algoliaAppId","algoliaAppId","_ref2$algoliaApiKey","algoliaApiKey","_ref2$algoliaIndexNam","algoliaIndexName","_ref2$filterConfig","filterConfig","hideZeroResults","dynamicCounts","showFavorites","collapsedByDefault","sortAlphabetically","classNames","filterContainer","filterContent","filterAccordion","filterAccordionHeader","filterAccordionContent","filterItem","filterItemLabel","filterItemCheckbox","filterItemCount","searchInput","resetButton","showJobsButton","filterFooter","_useState","useState","_useState2","_slicedToArray","algoliaInitialized","setAlgoliaInitialized","useEffect","window","initializeAlgoliaSearch","then","initialized","_useLoadScript","useLoadScript","version","libraries","isLoaded","loadError","error","className","effectiveShowMap","showMap","markerConfigs","process","env","GOOGLE_MAPS_API_KEY","Grid","as","id","columns","gap","autoRows","Item","Filter","isDesktop","MapList","mapPosition","fieldsShown","specialFeatures","fieldNames"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HireControlMap.js","sources":["../../src/components/HireControlMap.js"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { useLoadScript } from '@react-google-maps/api';\n\nimport Grid from '~/components/modules/grid';\nimport Filter from '~/components/containers/filter/filter-container';\nimport MapList from '~/components/containers/maps/map-list-container';\n\n// Context imports\nimport { MapProvider } from '~/contexts/mapContext';\nimport { PlacesProvider } from '~/contexts/placesContext';\nimport { MapListProvider } from '~/contexts/mapListContext';\nimport { TrackEventProvider } from '~/contexts/trackEventContext';\nimport { ThemeProvider } from '~/contexts/themeContext';\n\nimport { initializeAlgoliaSearch } from '~/util/algoliaSearchUtil';\n\n// Libraries for Google Maps\nconst LIBRARIES = ['places'];\n\n// Since all data is now passed in statically, no need to fetch config\n\n// Component to handle all context providers\nconst ContextProviders = ({ children, siteConfig, trackEvent, googleMapsApiKey, ...mapListProps }) => { return(\n\t<TrackEventProvider trackEvent={trackEvent}>\n\t\t<ThemeProvider\n\t\t\tuiText={siteConfig.colors.uiText}\n\t\t\tuiAccent={siteConfig.colors.uiAccent}\n\t\t\tprimary={siteConfig.colors.primary}\n\t\t\tprimaryDark={siteConfig.colors.primaryDark}\n\t\t\tsecondary={siteConfig.colors.secondary}\n\t\t\tsecondaryDark={siteConfig.colors.secondaryDark}\n\t\t>\n\t\t\t<MapListProvider siteConfig={siteConfig} googleMapsApiKey={googleMapsApiKey} {...mapListProps}>\n\t\t\t\t<MapProvider resetFilters={mapListProps.resetFilters} defaultZoomOverride={mapListProps.defaultZoomOverride} localStorageKey={mapListProps.localStorageKey}>\n\t\t\t\t\t<PlacesProvider\n\t\t\t\t\t\tplaceMappings={siteConfig.pointsOfInterestConfig.placeMappings ?? {}}\n\t\t\t\t\t\tadditionalMapMarkers={mapListProps.additionalMapMarkers}\n\t\t\t\t\t\tgoogleMapsApiKey={googleMapsApiKey}\n\t\t\t\t\t\tshowAtZoomLevel={siteConfig.pointsOfInterestConfig.showAtZoomLevel ?? 12}\n\t\t\t\t\t\tmarkerColors={{\n\t\t\t\t\t\t\tfillColor: siteConfig.colors.primary,\n\t\t\t\t\t\t\tstrokeColor: siteConfig.colors.primaryDark,\n\t\t\t\t\t\t\tselectedFillColor: siteConfig.colors.secondary,\n\t\t\t\t\t\t\tselectedStrokeColor: siteConfig.colors.secondaryDark,\n\t\t\t\t\t\t\tplaceMarkers: {\n\t\t\t\t\t\t\t\tcolors: siteConfig.pointsOfInterestConfig.placeMarkerColors,\n\t\t\t\t\t\t\t\tsize: siteConfig.pointsOfInterestConfig.placeMarkerSize\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</PlacesProvider>\n\t\t\t\t</MapProvider>\n\t\t\t</MapListProvider>\n\t\t</ThemeProvider>\n\t</TrackEventProvider>\n);};\n\n// Main component\n//\nexport const HireControlMap = ({\n\tclientToken,\n\tgoogleMapsApiKey, // Required: Google Maps API key from Next.js\n\tcontainerStyle = { height: '100vh' },\n\tnavigateToDetails = null,\n\tnavigateToEasyApply = null,\n\thandleUrlUpdate = null,\n\tLink = null,\n\tlinkFormat = '/jobs/[slug]',\n\teasyApplyUrl = null,\n\teasyApplyText = 'Easy Apply',\n\tisIframe = false,\n\thideMap = false, // Override to hide map even if siteConfig.showMap is true\n\thideFilters = false, // Hide the entire filter section\n\tnoEntities = false, // Skip entity fetching and hide entity-related filters\n\tmobileDetailsCallback = null, // Optional callback for mobile job listing clicks - called instead of expanding accordion\n\ttrackEvent = (eventType, eventObj) => {\n\t\tconsole.log(eventType);\n\t\tconsole.log(eventObj);\n\t},\n\t//providing listings entities and a getListingEntities function should negate the need for map code to fetch data\n\tlistings = [],\n\tentities = [],\n\tgetListingEntitiesCallback = null,\n\tdefaultFilters = null,\n\thiddenFilters = null,\n\tsetFiltersUrl = null,\n\tExpandListComponent = null,\n\tadditionalMapMarkers = [],\n\tdefaultZoomOverride = null,\n\t//Default site configuration file passed here stops need to fetch from api\n\tsiteConfiguration = null,\n\tlocalStorageKey = 'defaultKey.',\n\t// Algolia search configuration (optional)\n\talgoliaAppId = null,\n\talgoliaApiKey = null,\n\talgoliaIndexName = null,\n\t/**\n\t * Filter configuration (optional)\n\t * @param {boolean} hideZeroResults - Hide filter options with 0 results (default: false)\n\t * @param {boolean} dynamicCounts - Update counts based on active filters.\n\t * If false, shows initial/total counts (default: true)\n\t * @param {boolean} showFavorites - Show favorites special feature filter (default: true)\n\t * @param {boolean} collapsedByDefault - Start with all filter sections collapsed (default: false)\n\t * @param {boolean} sortAlphabetically - Sort filter options alphabetically instead of by count (default: false)\n\t * @param {object} classNames - Custom Tailwind classes to apply to filter components\n\t * @param {string} classNames.filterContainer - Classes for the main filter container wrapper\n\t * @param {string} classNames.filterContent - Classes for the scrollable filter content area\n\t * @param {string} classNames.filterAccordion - Classes for each filter accordion section\n\t * @param {string} classNames.filterAccordionHeader - Classes for accordion header/trigger\n\t * @param {string} classNames.filterAccordionContent - Classes for accordion content area\n\t * @param {string} classNames.filterItem - Classes for individual filter items (checkboxes/options)\n\t * @param {string} classNames.filterItemLabel - Classes for filter item labels\n\t * @param {string} classNames.filterItemCheckbox - Classes for filter item checkboxes\n\t * @param {string} classNames.filterItemCount - Classes for filter item count badges\n\t * @param {string} classNames.searchInput - Classes for search input field\n\t * @param {string} classNames.resetButton - Classes for reset all button\n\t * @param {string} classNames.showJobsButton - Classes for show jobs button\n\t * @param {string} classNames.filterFooter - Classes for the footer containing buttons\n\t */\n\tfilterConfig = {\n\t\thideZeroResults: false, // Hide filter options with 0 results\n\t\tdynamicCounts: true, // Update counts based on other active filters (false = show initial counts only)\n\t\tshowFavorites: true, // Show favorites filter\n\t\tcollapsedByDefault: false, // Start with all filter sections collapsed\n\t\tsortAlphabetically: false, // Sort filter options alphabetically instead of by count\n\t\tclassNames: {\n\t\t\tfilterContainer: '', // Main filter container wrapper\n\t\t\tfilterContent: '', // Scrollable content area\n\t\t\tfilterAccordion: '', // Filter accordion section\n\t\t\tfilterAccordionHeader: '', // Accordion header/trigger\n\t\t\tfilterAccordionContent: '', // Accordion content body\n\t\t\tfilterItem: '', // Individual filter items\n\t\t\tfilterItemLabel: '', // Filter item labels\n\t\t\tfilterItemCheckbox: '', // Filter item checkboxes\n\t\t\tfilterItemCount: '', // Filter item count badges\n\t\t\tsearchInput: '', // Search input field\n\t\t\tresetButton: '', // Reset all button\n\t\t\tshowJobsButton: '', // Show jobs button\n\t\t\tfilterFooter: '' // Footer with buttons\n\t\t}\n\t}\n}) => {\n\t// Initialize Algolia when credentials are provided (client-side only)\n\tconst [algoliaInitialized, setAlgoliaInitialized] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (algoliaAppId && algoliaApiKey && algoliaIndexName && typeof window !== 'undefined') {\n\t\t\tinitializeAlgoliaSearch(algoliaAppId, algoliaApiKey, algoliaIndexName).then(initialized => {\n\t\t\t\tsetAlgoliaInitialized(initialized);\n\t\t\t\tif (initialized) {\n\t\t\t\t\tconsole.log('Algolia search initialized successfully');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, [algoliaAppId, algoliaApiKey, algoliaIndexName]);\n\n\t// Load Google Maps (non-blocking - map component will handle this)\n\tconst { isLoaded: isMapsLoaded, loadError } = useLoadScript({\n\t\tgoogleMapsApiKey: googleMapsApiKey,\n\t\tversion: 'quarterly',\n\t\tlibraries: LIBRARIES\n\t});\n\n\t// Only show errors for critical failures\n\tif (!googleMapsApiKey) {\n\t\tconsole.error('Google Maps API key is required');\n\t\treturn <div className=\"hc-p-4\">Google Maps API key is required</div>;\n\t}\n\n\tif (loadError) {\n\t\tconsole.error('Google Maps failed to load:', loadError);\n\t\treturn <div className=\"hc-p-4\">Error loading Google Maps</div>;\n\t}\n\n\t// Don't block rendering - let filters and list show immediately\n\t// Map container will handle its own loading state\n\n\t// siteConfiguration is now required - all data passed in statically\n\tif (!siteConfiguration) {\n\t\tconsole.error('Site configuration is required');\n\t\treturn <div className=\"hc-p-4\">Site configuration is required</div>;\n\t}\n\n\t// Prepare props for MapListProvider\n\tconst mapListProps = {\n\t\tresetFilters: false,\n\t\tnavigateToDetails,\n\t\tnavigateToEasyApply,\n\t\tLink,\n\t\tlinkFormat,\n\t\teasyApplyUrl,\n\t\teasyApplyText,\n\t\tlistings,\n\t\tentities,\n\t\tsiteConfig: siteConfiguration,\n\t\tgetListingEntitiesCallback,\n\t\tsetFiltersUrl,\n\t\thiddenFilters,\n\t\thandleUrlUpdate,\n\t\tdefaultFilters,\n\t\tdefaultZoomOverride, // will usually fit bounds\n\t\tcontainerStyle,\n\t\tExpandListComponent: ExpandListComponent ?? null,\n\t\tadditionalMapMarkers,\n\t\tisIframe,\n\t\tlocalStorageKey,\n\t\thideMap,\n\t\thideFilters,\n\t\tnoEntities,\n\t\tfilterConfig,\n\t\tmobileDetailsCallback\n\t};\n\n\t// Calculate effective showMap value\n\tconst effectiveShowMap = hideMap ? false : siteConfiguration.showMap;\n\n\t// Prepare marker configuration\n\tconst markerConfigs = {\n\t\tfillColor: siteConfiguration.colors.primary,\n\t\tstrokeColor: siteConfiguration.colors.primaryDark,\n\t\tselectedFillColor: siteConfiguration.colors.secondary,\n\t\tselectedStrokeColor: siteConfiguration.colors.secondaryDark,\n\t\tplaceMarkers: {\n\t\t\tcolors: siteConfiguration.pointsOfInterestConfig.placeMarkerColors,\n\t\t\tsize: siteConfiguration.pointsOfInterestConfig.placeMarkerSize\n\t\t}\n\t};\n\n\t// Render immediately - individual components handle their own loading\n\t// Only Google Maps components will wait for isMapsLoaded\n\treturn (\n\t\t<ContextProviders\n\t\t\tsiteConfig={siteConfiguration}\n\t\t\ttrackEvent={trackEvent}\n\t\t\tgoogleMapsApiKey={googleMapsApiKey || process.env.GOOGLE_MAPS_API_KEY}\n\t\t\t{...mapListProps}\n\t\t>\n\t\t\t<Grid\n\t\t\t\tas='section'\n\t\t\t\tid='job-search-interface'\n\t\t\t\tcolumns={hideFilters ? 'hc-grid-cols-1' : 'md:hc-grid-cols-[1fr_2.5fr] lg:hc-grid-cols-[1fr_3.5fr]'}\n\t\t\t\tgap='hc-gap-0'\n\t\t\t\tautoRows={false}\n\t\t\t\tclassName={'hc-bundle hc-items-stretch hc-divide-x hc-divide-uiAccent/20'}\n\t\t\t>\n\t\t\t\t{!hideFilters && (\n\t\t\t\t\t<Grid.Item className='hc-bg-gray-100'>\n\t\t\t\t\t\t<Filter isDesktop={true} showMap={effectiveShowMap} className='hc-hidden md:hc-block' />\n\t\t\t\t\t</Grid.Item>\n\t\t\t\t)}\n\t\t\t\t<MapList\n\t\t\t\t\tcontainerStyle={containerStyle}\n\t\t\t\t\tmapPosition={siteConfiguration.mapPosition}\n\t\t\t\t\tshowMap={effectiveShowMap}\n\t\t\t\t\tfieldsShown={siteConfiguration.fieldsShown}\n\t\t\t\t\tspecialFeatures={siteConfiguration.specialFeatures}\n\t\t\t\t\tfieldNames={siteConfiguration.fieldNames}\n\t\t\t\t\tplaceMappings={siteConfiguration.pointsOfInterestConfig.placeMappings ?? {}}\n\t\t\t\t\tmarkerConfigs={markerConfigs}\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t</ContextProviders>\n\t);\n};\n\nexport default HireControlMap;\n"],"names":["LIBRARIES","ContextProviders","_ref","_siteConfig$pointsOfI","_siteConfig$pointsOfI2","children","siteConfig","trackEvent","googleMapsApiKey","mapListProps","_objectWithoutProperties","_excluded","React","createElement","TrackEventProvider","ThemeProvider","uiText","colors","uiAccent","primary","primaryDark","secondary","secondaryDark","MapListProvider","_extends","MapProvider","resetFilters","defaultZoomOverride","localStorageKey","PlacesProvider","placeMappings","pointsOfInterestConfig","additionalMapMarkers","showAtZoomLevel","markerColors","fillColor","strokeColor","selectedFillColor","selectedStrokeColor","placeMarkers","placeMarkerColors","size","placeMarkerSize","HireControlMap","_ref2","_siteConfiguration$po","clientToken","_ref2$containerStyle","containerStyle","height","_ref2$navigateToDetai","navigateToDetails","_ref2$navigateToEasyA","navigateToEasyApply","_ref2$handleUrlUpdate","handleUrlUpdate","_ref2$Link","Link","_ref2$linkFormat","linkFormat","_ref2$easyApplyUrl","easyApplyUrl","_ref2$easyApplyText","easyApplyText","_ref2$isIframe","isIframe","_ref2$hideMap","hideMap","_ref2$hideFilters","hideFilters","_ref2$noEntities","noEntities","_ref2$mobileDetailsCa","mobileDetailsCallback","_ref2$trackEvent","eventType","eventObj","console","log","_ref2$listings","listings","_ref2$entities","entities","_ref2$getListingEntit","getListingEntitiesCallback","_ref2$defaultFilters","defaultFilters","_ref2$hiddenFilters","hiddenFilters","_ref2$setFiltersUrl","setFiltersUrl","_ref2$ExpandListCompo","ExpandListComponent","_ref2$additionalMapMa","_ref2$defaultZoomOver","_ref2$siteConfigurati","siteConfiguration","_ref2$localStorageKey","_ref2$algoliaAppId","algoliaAppId","_ref2$algoliaApiKey","algoliaApiKey","_ref2$algoliaIndexNam","algoliaIndexName","_ref2$filterConfig","filterConfig","hideZeroResults","dynamicCounts","showFavorites","collapsedByDefault","sortAlphabetically","classNames","filterContainer","filterContent","filterAccordion","filterAccordionHeader","filterAccordionContent","filterItem","filterItemLabel","filterItemCheckbox","filterItemCount","searchInput","resetButton","showJobsButton","filterFooter","_useState","useState","_useState2","_slicedToArray","algoliaInitialized","setAlgoliaInitialized","useEffect","window","initializeAlgoliaSearch","then","initialized","_useLoadScript","useLoadScript","version","libraries","isLoaded","loadError","error","className","effectiveShowMap","showMap","markerConfigs","process","env","GOOGLE_MAPS_API_KEY","Grid","as","id","columns","gap","autoRows","Item","Filter","isDesktop","MapList","mapPosition","fieldsShown","specialFeatures","fieldNames"],"mappings":"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"}
|
|
@@ -14,11 +14,13 @@ var MapAccordionItemContainer = function MapAccordionItemContainer(_ref) {
|
|
|
14
14
|
fieldsShown = _ref.fieldsShown,
|
|
15
15
|
itemExpandedContent = _ref.itemExpandedContent,
|
|
16
16
|
specialFeatures = _ref.specialFeatures,
|
|
17
|
-
isActive = _ref.isActive
|
|
17
|
+
isActive = _ref.isActive,
|
|
18
|
+
index = _ref.index;
|
|
18
19
|
var _useMapList = useMapList(),
|
|
19
20
|
mapItems = _useMapList.mapItems,
|
|
20
21
|
recruiters = _useMapList.recruiters,
|
|
21
|
-
siteConfig = _useMapList.siteConfig
|
|
22
|
+
siteConfig = _useMapList.siteConfig,
|
|
23
|
+
mobileDetailsCallback = _useMapList.mobileDetailsCallback;
|
|
22
24
|
var _useMap = useMap(),
|
|
23
25
|
selectItem = _useMap.selectItem;
|
|
24
26
|
var _useTrackEvent = useTrackEvent(),
|
|
@@ -57,6 +59,15 @@ var MapAccordionItemContainer = function MapAccordionItemContainer(_ref) {
|
|
|
57
59
|
jobCategory: item.fields.category,
|
|
58
60
|
entityDisplayName: item === null || item === void 0 || (_item$mapDetails = item.mapDetails) === null || _item$mapDetails === void 0 ? void 0 : _item$mapDetails.entityDisplayName
|
|
59
61
|
});
|
|
62
|
+
|
|
63
|
+
// Check if mobile and mobileDetailsCallback is provided
|
|
64
|
+
if (mobileDetailsCallback) {
|
|
65
|
+
var isMobile = typeof window !== 'undefined' && window.innerWidth < 768;
|
|
66
|
+
if (isMobile) {
|
|
67
|
+
mobileDetailsCallback(item);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
60
71
|
setSelectedItemAndZoomMap(item, isActive);
|
|
61
72
|
};
|
|
62
73
|
return /*#__PURE__*/React.createElement(MapAccordionItem, {
|
|
@@ -73,7 +84,8 @@ var MapAccordionItemContainer = function MapAccordionItemContainer(_ref) {
|
|
|
73
84
|
isActive: isActive,
|
|
74
85
|
onClick: function onClick() {
|
|
75
86
|
return handleItemClick(item);
|
|
76
|
-
}
|
|
87
|
+
},
|
|
88
|
+
index: index
|
|
77
89
|
}));
|
|
78
90
|
};
|
|
79
91
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-accordion-item-container.js","sources":["../../../../src/components/containers/accordions/map-accordion-item-container.js"],"sourcesContent":["import React from 'react';\nimport { useMap } from '~/contexts/mapContext';\nimport { useMapList } from '~/contexts/mapListContext';\nimport { useTrackEvent } from '~/contexts/trackEventContext';\nimport { setStorageObject } from '~/util/localStorageUtil';\nimport MapAccordionItem from '~/components/modules/accordions/MapAccordionItem';\nimport ListItemContainer from '~/components/containers/list/list-item/list-item-container';\n\nconst MapAccordionItemContainer = ({\n\tshowMap,\n\titem,\n\titemRefs,\n\tfieldsShown,\n\titemExpandedContent,\n\tspecialFeatures,\n\tisActive\n}) => {\n\tconst { mapItems, recruiters, siteConfig } = useMapList();\n\tconst { selectItem } = useMap();\n\tconst { trackEvent, eventTypes } = useTrackEvent();\n\tconst jobPinZoomLevel = siteConfig?.jobPinZoomLevel ?? 12;\n\n\tconst setSelectedItemAndZoomMap = (item, isActive) => {\n\t\tif (isActive) {\n\t\t\tif (typeof window !== 'undefined') {\n\t\t\t\tlocalStorage.removeItem(\"selectedListItem\");\n\t\t\t}\n\t\t\tselectItem(null, null, 9, { lat: 39.8283, lng: -98.5795 });\n\t\t} else {\n\t\t\tsetStorageObject(\"selectedListItem\", item);\n\t\t\tconsole.log('mapItems here', mapItems);\n\t\t\t//edited here for new structure of entity key\n\t\t\tconsole.log('the item in questions is',item);\n\t\t\tconst location = mapItems.find(x => x.entityKey?.toLowerCase() === item.fields.entityKey?.toLowerCase()) || null;\n\t\t\tconsole.log('location is', location);\n\t\t\tselectItem(item, location, jobPinZoomLevel, {\n\t\t\t\tlat: location?.latitude,\n\t\t\t\tlng: location?.longitude\n\t\t\t});\n\t\t}\n\t};\n\n\tconst handleItemClick = item => {\n\t\ttrackEvent(eventTypes.JOB_LISTING_SELECTED, {\n\t\t\tjobTitle: item.fields.title,\n\t\t\tjobCategory: item.fields.category,\n\t\t\tentityDisplayName: item?.mapDetails?.entityDisplayName\n\t\t});\n\n\t\tsetSelectedItemAndZoomMap(item, isActive);\n\t};\n\n\treturn (\n\t\t<MapAccordionItem\n\t\t\titem={item}\n\t\t\titemRefs={itemRefs}\n\t\t\titemExpandedContent={itemExpandedContent}\n\t\t\tisActive={isActive}\n\t\t\trecruiter={recruiters[item.recruiterId]}\n\t\t>\n\t\t\t<ListItemContainer\n\t\t\t\tshowMap={showMap}\n\t\t\t\titem={item}\n\t\t\t\tfieldsShown={fieldsShown}\n\t\t\t\tspecialFeatures={specialFeatures}\n\t\t\t\tisActive={isActive}\n\t\t\t\tonClick={() => handleItemClick(item)}\n\t\t\t/>\n\t\t</MapAccordionItem>\n\t);\n};\n\nexport default MapAccordionItemContainer;\n"],"names":["MapAccordionItemContainer","_ref","_siteConfig$jobPinZoo","showMap","item","itemRefs","fieldsShown","itemExpandedContent","specialFeatures","isActive","_useMapList","useMapList","mapItems","recruiters","siteConfig","_useMap","useMap","selectItem","_useTrackEvent","useTrackEvent","trackEvent","eventTypes","jobPinZoomLevel","setSelectedItemAndZoomMap","window","localStorage","removeItem","lat","lng","setStorageObject","console","log","location","find","x","_x$entityKey","_item$fields$entityKe","entityKey","toLowerCase","fields","latitude","longitude","handleItemClick","_item$mapDetails","JOB_LISTING_SELECTED","jobTitle","title","jobCategory","category","entityDisplayName","mapDetails","React","createElement","MapAccordionItem","recruiter","recruiterId","ListItemContainer","onClick"],"mappings":";;;;;;;;AAQA,IAAMA,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAAC,IAAA,
|
|
1
|
+
{"version":3,"file":"map-accordion-item-container.js","sources":["../../../../src/components/containers/accordions/map-accordion-item-container.js"],"sourcesContent":["import React from 'react';\nimport { useMap } from '~/contexts/mapContext';\nimport { useMapList } from '~/contexts/mapListContext';\nimport { useTrackEvent } from '~/contexts/trackEventContext';\nimport { setStorageObject } from '~/util/localStorageUtil';\nimport MapAccordionItem from '~/components/modules/accordions/MapAccordionItem';\nimport ListItemContainer from '~/components/containers/list/list-item/list-item-container';\n\nconst MapAccordionItemContainer = ({\n\tshowMap,\n\titem,\n\titemRefs,\n\tfieldsShown,\n\titemExpandedContent,\n\tspecialFeatures,\n\tisActive,\n\tindex\n}) => {\n\tconst { mapItems, recruiters, siteConfig, mobileDetailsCallback } = useMapList();\n\tconst { selectItem } = useMap();\n\tconst { trackEvent, eventTypes } = useTrackEvent();\n\tconst jobPinZoomLevel = siteConfig?.jobPinZoomLevel ?? 12;\n\n\tconst setSelectedItemAndZoomMap = (item, isActive) => {\n\t\tif (isActive) {\n\t\t\tif (typeof window !== 'undefined') {\n\t\t\t\tlocalStorage.removeItem(\"selectedListItem\");\n\t\t\t}\n\t\t\tselectItem(null, null, 9, { lat: 39.8283, lng: -98.5795 });\n\t\t} else {\n\t\t\tsetStorageObject(\"selectedListItem\", item);\n\t\t\tconsole.log('mapItems here', mapItems);\n\t\t\t//edited here for new structure of entity key\n\t\t\tconsole.log('the item in questions is',item);\n\t\t\tconst location = mapItems.find(x => x.entityKey?.toLowerCase() === item.fields.entityKey?.toLowerCase()) || null;\n\t\t\tconsole.log('location is', location);\n\t\t\tselectItem(item, location, jobPinZoomLevel, {\n\t\t\t\tlat: location?.latitude,\n\t\t\t\tlng: location?.longitude\n\t\t\t});\n\t\t}\n\t};\n\n\tconst handleItemClick = item => {\n\t\ttrackEvent(eventTypes.JOB_LISTING_SELECTED, {\n\t\t\tjobTitle: item.fields.title,\n\t\t\tjobCategory: item.fields.category,\n\t\t\tentityDisplayName: item?.mapDetails?.entityDisplayName\n\t\t});\n\n\t\t// Check if mobile and mobileDetailsCallback is provided\n\t\tif (mobileDetailsCallback) {\n\t\t\tconst isMobile = typeof window !== 'undefined' && window.innerWidth < 768;\n\t\t\tif (isMobile) {\n\t\t\t\tmobileDetailsCallback(item);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tsetSelectedItemAndZoomMap(item, isActive);\n\t};\n\n\treturn (\n\t\t<MapAccordionItem\n\t\t\titem={item}\n\t\t\titemRefs={itemRefs}\n\t\t\titemExpandedContent={itemExpandedContent}\n\t\t\tisActive={isActive}\n\t\t\trecruiter={recruiters[item.recruiterId]}\n\t\t>\n\t\t\t<ListItemContainer\n\t\t\t\tshowMap={showMap}\n\t\t\t\titem={item}\n\t\t\t\tfieldsShown={fieldsShown}\n\t\t\t\tspecialFeatures={specialFeatures}\n\t\t\t\tisActive={isActive}\n\t\t\t\tonClick={() => handleItemClick(item)}\n\t\t\t\tindex={index}\n\t\t\t/>\n\t\t</MapAccordionItem>\n\t);\n};\n\nexport default MapAccordionItemContainer;\n"],"names":["MapAccordionItemContainer","_ref","_siteConfig$jobPinZoo","showMap","item","itemRefs","fieldsShown","itemExpandedContent","specialFeatures","isActive","index","_useMapList","useMapList","mapItems","recruiters","siteConfig","mobileDetailsCallback","_useMap","useMap","selectItem","_useTrackEvent","useTrackEvent","trackEvent","eventTypes","jobPinZoomLevel","setSelectedItemAndZoomMap","window","localStorage","removeItem","lat","lng","setStorageObject","console","log","location","find","x","_x$entityKey","_item$fields$entityKe","entityKey","toLowerCase","fields","latitude","longitude","handleItemClick","_item$mapDetails","JOB_LISTING_SELECTED","jobTitle","title","jobCategory","category","entityDisplayName","mapDetails","isMobile","innerWidth","React","createElement","MapAccordionItem","recruiter","recruiterId","ListItemContainer","onClick"],"mappings":"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"}
|
|
@@ -49,19 +49,11 @@ var FilterContainer = function FilterContainer(_ref) {
|
|
|
49
49
|
};
|
|
50
50
|
return /*#__PURE__*/React.createElement(Filter, {
|
|
51
51
|
className: className,
|
|
52
|
-
showMap: showMap,
|
|
53
52
|
isDesktop: isDesktop,
|
|
54
53
|
hasActiveFilters: hasActiveFilters,
|
|
55
|
-
setHasActiveFilters: setHasActiveFilters,
|
|
56
|
-
defaultValue: defaultValue,
|
|
57
|
-
setDefaultValue: _setDefaultValue,
|
|
58
|
-
setSelectedListItem: setSelectedListItem,
|
|
59
|
-
setLocation: setLocation,
|
|
60
54
|
filteredListings: filteredListings,
|
|
61
55
|
selectedFilters: selectedFilters,
|
|
62
|
-
setSelectedFilters: setSelectedFilters,
|
|
63
56
|
setMobileTab: setMobileTab,
|
|
64
|
-
siteConfig: siteConfig,
|
|
65
57
|
style: containerStyle
|
|
66
58
|
}, /*#__PURE__*/React.createElement(AccordionFiltersContainer, {
|
|
67
59
|
setHasActiveFilters: setHasActiveFilters,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-container.js","sources":["../../../../src/components/containers/filter/filter-container.js"],"sourcesContent":["import React, { useState } from 'react';\nimport { useMap } from '~/contexts/mapContext';\nimport { useMapList } from '~/contexts/mapListContext';\nimport { useTrackEvent } from '~/contexts/trackEventContext';\nimport Filter from '~/components/modules/filter/index';\nimport FilterSearch from '~/components/containers/filter/search-container';\nimport FiltersAccordion from '~/components/containers/accordions/filter-container';\nimport FilterLocations from '~/components/containers/filter/location-container';\n\nconst FilterContainer = ({\n\tclassName,\n\tshowMap,\n\tisDesktop = false\n}) => {\n\tconst { trackEvent, eventTypes } = useTrackEvent();\n\tconst [hasActiveFilters, setHasActiveFilters] = useState(false);\n\n\tconst { setSelectedListItem, setLocation, filterReset } = useMap();\n\tconst {\n\t\tfilteredListings,\n\t\tselectedFilters,\n\t\tsetSelectedFilters,\n\t\tsetMobileTab,\n\t\thandleSettingFavorites,\n\t\tsetQuery,\n\t\tsiteConfig,\n\t\tcontainerStyle,\n\t\tnoEntities\n\t} = useMapList();\n\tconst [defaultValue, setDefaultValue] = useState(siteConfig?.defaultFilterOpen ? siteConfig?.defaultFilterOpen : null);\n\tconst handleReset = () => {\n\t\ttrackEvent(eventTypes.FILTERS_RESET, { filtersRemoved: selectedFilters });\n\t\tfilterReset();\n\t\tsetSelectedFilters({});\n\t\tsetQuery(null);\n\t\thandleSettingFavorites(null);\n\t};\n\n\treturn (\n\t\t<Filter\n\t\t\tclassName={className}\n\t\t\
|
|
1
|
+
{"version":3,"file":"filter-container.js","sources":["../../../../src/components/containers/filter/filter-container.js"],"sourcesContent":["import React, { useState } from 'react';\nimport { useMap } from '~/contexts/mapContext';\nimport { useMapList } from '~/contexts/mapListContext';\nimport { useTrackEvent } from '~/contexts/trackEventContext';\nimport Filter from '~/components/modules/filter/index';\nimport FilterSearch from '~/components/containers/filter/search-container';\nimport FiltersAccordion from '~/components/containers/accordions/filter-container';\nimport FilterLocations from '~/components/containers/filter/location-container';\n\nconst FilterContainer = ({\n\tclassName,\n\tshowMap,\n\tisDesktop = false\n}) => {\n\tconst { trackEvent, eventTypes } = useTrackEvent();\n\tconst [hasActiveFilters, setHasActiveFilters] = useState(false);\n\n\tconst { setSelectedListItem, setLocation, filterReset } = useMap();\n\tconst {\n\t\tfilteredListings,\n\t\tselectedFilters,\n\t\tsetSelectedFilters,\n\t\tsetMobileTab,\n\t\thandleSettingFavorites,\n\t\tsetQuery,\n\t\tsiteConfig,\n\t\tcontainerStyle,\n\t\tnoEntities\n\t} = useMapList();\n\tconst [defaultValue, setDefaultValue] = useState(siteConfig?.defaultFilterOpen ? siteConfig?.defaultFilterOpen : null);\n\tconst handleReset = () => {\n\t\ttrackEvent(eventTypes.FILTERS_RESET, { filtersRemoved: selectedFilters });\n\t\tfilterReset();\n\t\tsetSelectedFilters({});\n\t\tsetQuery(null);\n\t\thandleSettingFavorites(null);\n\t};\n\n\treturn (\n\t\t<Filter\n\t\t\tclassName={className}\n\t\t\tisDesktop={isDesktop}\n\t\t\thasActiveFilters={hasActiveFilters}\n\t\t\tfilteredListings={filteredListings}\n\t\t\tselectedFilters={selectedFilters}\n\t\t\tsetMobileTab={setMobileTab}\n\t\t\tstyle={containerStyle}\n\t\t>\n\t\t\t<FiltersAccordion\n\t\t\t\tsetHasActiveFilters={setHasActiveFilters}\n\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\tsetDefaultValue={value => { setDefaultValue(value === defaultValue ? \"\" : value); }}\n\t\t\t\tsetLocation={setLocation}\n\t\t\t\tsetSelectedListItem={setSelectedListItem}\n\t\t\t\tSubcategoryRequireCategory={siteConfig.subcategoryRequireCategory}\n\t\t\t\thandleReset={handleReset}\n\t\t\t/>\n\t\t\t<FilterSearch />\n\t\t\t{siteConfig.hideLocations !== true && !noEntities &&\n\t\t\t<FilterLocations\n\t\t\t\tsetHasActiveFilters={setHasActiveFilters}\n\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\tshowMap={showMap}\n\t\t\t\tsetDefaultValue={value => { setDefaultValue(value === defaultValue ? \"\" : value); }}\n\t\t\t\tsetLocation={setLocation}\n\t\t\t\tsetSelectedListItem={setSelectedListItem}\n\t\t\t/>\n\t\t\t}\n\t\t</Filter>\n\t);\n};\n\nexport default FilterContainer;\n"],"names":["FilterContainer","_ref","className","showMap","_ref$isDesktop","isDesktop","_useTrackEvent","useTrackEvent","trackEvent","eventTypes","_useState","useState","_useState2","_slicedToArray","hasActiveFilters","setHasActiveFilters","_useMap","useMap","setSelectedListItem","setLocation","filterReset","_useMapList","useMapList","filteredListings","selectedFilters","setSelectedFilters","setMobileTab","handleSettingFavorites","setQuery","siteConfig","containerStyle","noEntities","_useState3","defaultFilterOpen","_useState4","defaultValue","setDefaultValue","handleReset","FILTERS_RESET","filtersRemoved","React","createElement","Filter","style","FiltersAccordion","value","SubcategoryRequireCategory","subcategoryRequireCategory","FilterSearch","hideLocations","FilterLocations"],"mappings":"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"}
|
|
@@ -23,7 +23,7 @@ var AccordionFilters = function AccordionFilters(_ref) {
|
|
|
23
23
|
variant: "outline",
|
|
24
24
|
size: "none",
|
|
25
25
|
onClick: handleReset,
|
|
26
|
-
className: "hc-ml-auto hc-text-xs hc-px-
|
|
26
|
+
className: "hc-ml-auto hc-text-xs hc-px-2 hc-py-0.5"
|
|
27
27
|
}, "Reset"))), /*#__PURE__*/React.createElement(Accordion, {
|
|
28
28
|
defaultValue: defaultValue,
|
|
29
29
|
className: "hc-space-y-4"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.js","sources":["../../../../src/components/modules/accordions/filters.js"],"sourcesContent":["import React from 'react';\nimport Accordion from '~/components/modules/accordions/default';\nimport FilterCard from '~/components/modules/cards/filter';\nimport Loading from '~/util/loading';\nimport Button from '~/components/modules/buttons/default';\n\nconst AccordionFilters = ({\n\tclassName,\n\tdefaultValue,\n\tchildren,\n\tfilterOptions,\n\thandleReset\n}) => {\n\treturn (\n\t\t<FilterCard className={className ?? \"\"}>\n\t\t\t<FilterCard.Title icon=\"fa-solid:sliders-h\">\n\t\t\t\t<div className=\"hc-flex hc-items-center hc-justify-between hc-w-full\">\n\t\t\t\t\t<span>\n\t\t\t\t\t\tFilter <span className=\"md:hc-hidden lg:hc-inline\">your search</span>\n\t\t\t\t\t</span>\n\t\t\t\t\t{handleReset && (\n\t\t\t\t\t\t<Button.Btn\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\t\tsize=\"none\"\n\t\t\t\t\t\t\tonClick={handleReset}\n\t\t\t\t\t\t\tclassName=\"hc-ml-auto hc-text-xs hc-px-
|
|
1
|
+
{"version":3,"file":"filters.js","sources":["../../../../src/components/modules/accordions/filters.js"],"sourcesContent":["import React from 'react';\nimport Accordion from '~/components/modules/accordions/default';\nimport FilterCard from '~/components/modules/cards/filter';\nimport Loading from '~/util/loading';\nimport Button from '~/components/modules/buttons/default';\n\nconst AccordionFilters = ({\n\tclassName,\n\tdefaultValue,\n\tchildren,\n\tfilterOptions,\n\thandleReset\n}) => {\n\treturn (\n\t\t<FilterCard className={className ?? \"\"}>\n\t\t\t<FilterCard.Title icon=\"fa-solid:sliders-h\">\n\t\t\t\t<div className=\"hc-flex hc-items-center hc-justify-between hc-w-full\">\n\t\t\t\t\t<span>\n\t\t\t\t\t\tFilter <span className=\"md:hc-hidden lg:hc-inline\">your search</span>\n\t\t\t\t\t</span>\n\t\t\t\t\t{handleReset && (\n\t\t\t\t\t\t<Button.Btn\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\t\tsize=\"none\"\n\t\t\t\t\t\t\tonClick={handleReset}\n\t\t\t\t\t\t\tclassName=\"hc-ml-auto hc-text-xs hc-px-2 hc-py-0.5\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tReset\n\t\t\t\t\t\t</Button.Btn>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</FilterCard.Title>\n\n\t\t\t<Accordion defaultValue={defaultValue} className=\"hc-space-y-4\" >\n\t\t\t\t{!filterOptions?.filters && (\n\t\t\t\t\t<Accordion.Item>\n\t\t\t\t\t\t<Loading />\n\t\t\t\t\t</Accordion.Item>\n\t\t\t\t)}\n\t\t\t\t{filterOptions?.filters && children}\n\t\t\t</Accordion>\n\t\t</FilterCard>\n\t);\n};\n\nexport default AccordionFilters;\n"],"names":["AccordionFilters","_ref","className","defaultValue","children","filterOptions","handleReset","React","createElement","FilterCard","Title","icon","Button","Btn","type","variant","size","onClick","Accordion","filters","Item","Loading"],"mappings":";;;;;;AAMA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EAMhB;AAAA,EAAA,IALLC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,YAAY,GAAAF,IAAA,CAAZE,YAAY;IACZC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACRC,aAAa,GAAAJ,IAAA,CAAbI,aAAa;IACbC,WAAW,GAAAL,IAAA,CAAXK,WAAW,CAAA;AAEX,EAAA,oBACCC,KAAA,CAAAC,aAAA,CAACC,UAAU,EAAA;AAACP,IAAAA,SAAS,EAAEA,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,KAAA,CAAA,GAATA,SAAS,GAAI,EAAA;AAAG,GAAA,eACtCK,KAAA,CAAAC,aAAA,CAACC,UAAU,CAACC,KAAK,EAAA;AAACC,IAAAA,IAAI,EAAC,oBAAA;GACtBJ,eAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKN,IAAAA,SAAS,EAAC,sDAAA;GACdK,eAAAA,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA,IAAA,EAAM,SACE,eAAAD,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMN,IAAAA,SAAS,EAAC,2BAAA;AAA2B,GAAA,EAAC,aAAiB,CAC/D,CAAC,EACNI,WAAW,iBACXC,KAAA,CAAAC,aAAA,CAACI,MAAM,CAACC,GAAG,EAAA;AACVC,IAAAA,IAAI,EAAC,QAAQ;AACbC,IAAAA,OAAO,EAAC,SAAS;AACjBC,IAAAA,IAAI,EAAC,MAAM;AACXC,IAAAA,OAAO,EAAEX,WAAY;AACrBJ,IAAAA,SAAS,EAAC,yCAAA;GACV,EAAA,OAEW,CAET,CACY,CAAC,eAEnBK,KAAA,CAAAC,aAAA,CAACU,SAAS,EAAA;AAACf,IAAAA,YAAY,EAAEA,YAAa;AAACD,IAAAA,SAAS,EAAC,cAAA;AAAc,GAAA,EAC7D,EAACG,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAA,KAAA,CAAA,IAAbA,aAAa,CAAEc,OAAO,CACvBZ,iBAAAA,KAAA,CAAAC,aAAA,CAACU,SAAS,CAACE,IAAI,EACdb,IAAAA,eAAAA,KAAA,CAAAC,aAAA,CAACa,OAAO,EAAA,IAAE,CACK,CAChB,EACA,CAAAhB,aAAa,KAAbA,IAAAA,IAAAA,aAAa,uBAAbA,aAAa,CAAEc,OAAO,KAAIf,QACjB,CACA,CAAC,CAAA;AAEf;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/modules/filter/index.js"],"sourcesContent":["\"use client\";\nimport Button from \"~/components/modules/buttons/default\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { twMerge } from '~/util/twMerge';\nimport { useMapList } from \"~/contexts/mapListContext\";\n\nconst Filter = ({\n\tclassName,\n\thasActiveFilters,\n\tfilteredListings,\n\tselectedFilters,\n\tsetMobileTab,\n\tisDesktop = false,\n\tstyle,\n\tchildren\n}) => {\n\tconst { filterConfig } = useMapList();\n\tconst contentRef = useRef(null);\n\tconst containerRef = useRef(null);\n\tconst [hasOverflow, setHasOverflow] = useState(false);\n\tconst [showFixedFooter, setShowFixedFooter] = useState(false);\n\tconst [hasMounted, setHasMounted] = useState(false);\n\tconst transitionTimeoutRef = useRef(null);\n\n\t// Set mounted state to avoid hydration mismatch\n\tuseEffect(() => {\n\t\tsetHasMounted(true);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (typeof window === 'undefined' || !hasMounted) return;\n\t\t\n\t\tconst checkOverflow = () => {\n\t\t\tif (contentRef.current) {\n\t\t\t\t// Add a small tolerance (5px) to avoid false positives from rounding/padding\n\t\t\t\tconst hasScroll = contentRef.current.scrollHeight > contentRef.current.clientHeight + 5;\n\n\t\t\t\tif (hasScroll !== hasOverflow) {\n\t\t\t\t\tsetHasOverflow(hasScroll);\n\n\t\t\t\t\t// Clear any pending transitions\n\t\t\t\t\tif (transitionTimeoutRef.current) {\n\t\t\t\t\t\tclearTimeout(transitionTimeoutRef.current);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Add a delay when transitioning to fixed footer to smooth the transition\n\t\t\t\t\tif (hasScroll) {\n\t\t\t\t\t\ttransitionTimeoutRef.current = setTimeout(() => setShowFixedFooter(true), 200);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Delay hiding fixed footer to allow animation to complete and prevent flashing\n\t\t\t\t\t\ttransitionTimeoutRef.current = setTimeout(() => setShowFixedFooter(false), 200);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// Delay initial check to ensure layout is complete\n\t\tsetTimeout(checkOverflow, 100);\n\n\t\t// Check on resize\n\t\twindow.addEventListener('resize', checkOverflow);\n\n\t\t// Use ResizeObserver to detect container size changes\n\t\tconst resizeObserver = new ResizeObserver(() => {\n\t\t\tsetTimeout(checkOverflow, 50);\n\t\t});\n\t\tif (containerRef.current) {\n\t\t\tresizeObserver.observe(containerRef.current);\n\t\t}\n\t\tif (contentRef.current) {\n\t\t\tresizeObserver.observe(contentRef.current);\n\t\t}\n\n\t\t// Use MutationObserver to detect content changes\n\t\tconst mutationObserver = new MutationObserver(() => {\n\t\t\tsetTimeout(checkOverflow, 50);\n\t\t});\n\t\tif (contentRef.current) {\n\t\t\tmutationObserver.observe(contentRef.current, { childList: true, subtree: true, attributes: true });\n\t\t}\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('resize', checkOverflow);\n\t\t\tresizeObserver.disconnect();\n\t\t\tmutationObserver.disconnect();\n\t\t\t// Clear timeout on unmount\n\t\t\tif (transitionTimeoutRef.current) {\n\t\t\t\tclearTimeout(transitionTimeoutRef.current);\n\t\t\t}\n\t\t};\n\t}, [children, hasOverflow, hasMounted]);\n\n\t// Reusable button component\n\tconst MobileButtons = () => (\n\t\t<>\n\t\t\t{selectedFilters && Object.keys(selectedFilters).length > 0 && (\n\t\t\t\t<Button.Btn\n\t\t\t\t\tonClick={() => setMobileTab(\"listTab\")}\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t`${hasActiveFilters ? \"hc-opacity-0 hc-pointer-events-none\" : \"hc-opacity-100\"}`,\n\t\t\t\t\t\tfilterConfig?.classNames?.showJobsButton\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<Button.Body>\n\t\t\t\t\t\t<Button.Icon icon=\"fluent:search-12-filled\" size=\"hc-size-3.5\" />\n\t\t\t\t\t\tShow {filteredListings.length} Jobs\n\t\t\t\t\t</Button.Body>\n\t\t\t\t</Button.Btn>\n\t\t\t)}\n\t\t</>\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={containerRef}\n\t\t\tstyle={isDesktop ? style : undefined}\n\t\t\tclassName={twMerge(\n\t\t\t\t`/* Mobile layout */\n\t\t\t\thc-relative hc-w-full hc-h-full hc-flex hc-flex-col\n\n\t\t\t\t/* Desktop layout */\n\t\t\t\tmd:hc-relative md:hc-flex md:hc-flex-col md:hc-max-h-[100%]\n\n\t\t\t\t${className ?? \"\"}`,\n\t\t\t\tfilterConfig?.classNames?.filterContainer\n\t\t\t)}\n\t\t>\n\t\t\t{/* Content area with scroll */}\n\t\t\t<div\n\t\t\t\tref={contentRef}\n\t\t\t\tclassName={twMerge(\n\t\t\t\t\t`hc-w-full hc-flex-grow hc-max-h-full hc-overflow-auto ${hasOverflow ? 'hc-pb-16' : ''} md:hc-overflow-y-auto ${hasOverflow ? 'md:hc-pb-16' : 'md:hc-pb-0'}`,\n\t\t\t\t\tfilterConfig?.classNames?.filterContent\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<div className=\"hc-px-4 md:hc-pt-4 hc-space-y-4\">\n\t\t\t\t\t{children}\n\n\t\t\t\t\t{/* Inline buttons when no overflow - mobile only */}\n\t\t\t\t\t{!hasOverflow && !showFixedFooter && (\n\t\t\t\t\t\t<div className={twMerge(\n\t\t\t\t\t\t\t\"hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-border-t hc-border-gray-200 hc-animate-in hc-fade-in hc-duration-300 md:hc-hidden\",\n\t\t\t\t\t\t\tfilterConfig?.classNames?.filterFooter\n\t\t\t\t\t\t)}>\n\t\t\t\t\t\t\t<MobileButtons />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* Mobile Footer - fixed at bottom (only when overflow) */}\n\t\t\t{showFixedFooter && (\n\t\t\t\t<div className=\"hc-w-full hc-absolute hc-bottom-0 hc-left-0 hc-right-0 hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-px-4 hc-bg-gray-100 hc-border-t hc-border-gray-200 hc-z-50 md:hc-hidden hc-animate-in hc-fade-in hc-slide-in-from-bottom-2 hc-duration-200\">\n\t\t\t\t\t<MobileButtons />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default Filter;"],"names":["Filter","_ref","_filterConfig$classNa2","_filterConfig$classNa3","_filterConfig$classNa4","className","hasActiveFilters","filteredListings","selectedFilters","setMobileTab","_ref$isDesktop","isDesktop","style","children","_useMapList","useMapList","filterConfig","contentRef","useRef","containerRef","_useState","useState","_useState2","_slicedToArray","hasOverflow","setHasOverflow","_useState3","_useState4","showFixedFooter","setShowFixedFooter","_useState5","_useState6","hasMounted","setHasMounted","transitionTimeoutRef","useEffect","window","checkOverflow","current","hasScroll","scrollHeight","clientHeight","clearTimeout","setTimeout","addEventListener","resizeObserver","ResizeObserver","observe","mutationObserver","MutationObserver","childList","subtree","attributes","removeEventListener","disconnect","MobileButtons","_filterConfig$classNa","React","createElement","Fragment","Object","keys","length","Button","Btn","onClick","variant","size","twMerge","concat","classNames","showJobsButton","Body","Icon","icon","ref","undefined","filterContainer","filterContent","filterFooter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/modules/filter/index.js"],"sourcesContent":["\"use client\";\nimport Button from \"~/components/modules/buttons/default\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { twMerge } from '~/util/twMerge';\nimport { useMapList } from \"~/contexts/mapListContext\";\n\nconst Filter = ({\n\tclassName,\n\thasActiveFilters,\n\tfilteredListings,\n\tselectedFilters,\n\tsetMobileTab,\n\tisDesktop = false,\n\tstyle,\n\tchildren\n}) => {\n\tconst { filterConfig } = useMapList();\n\tconst contentRef = useRef(null);\n\tconst containerRef = useRef(null);\n\tconst [hasOverflow, setHasOverflow] = useState(false);\n\tconst [showFixedFooter, setShowFixedFooter] = useState(false);\n\tconst [hasMounted, setHasMounted] = useState(false);\n\tconst transitionTimeoutRef = useRef(null);\n\n\t// Set mounted state to avoid hydration mismatch\n\tuseEffect(() => {\n\t\tsetHasMounted(true);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (typeof window === 'undefined' || !hasMounted) return;\n\n\t\tconst checkOverflow = () => {\n\t\t\tif (contentRef.current) {\n\t\t\t\t// Add a small tolerance (5px) to avoid false positives from rounding/padding\n\t\t\t\tconst hasScroll = contentRef.current.scrollHeight > contentRef.current.clientHeight + 5;\n\n\t\t\t\tif (hasScroll !== hasOverflow) {\n\t\t\t\t\tsetHasOverflow(hasScroll);\n\n\t\t\t\t\t// Clear any pending transitions\n\t\t\t\t\tif (transitionTimeoutRef.current) {\n\t\t\t\t\t\tclearTimeout(transitionTimeoutRef.current);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Add a delay when transitioning to fixed footer to smooth the transition\n\t\t\t\t\tif (hasScroll) {\n\t\t\t\t\t\ttransitionTimeoutRef.current = setTimeout(() => setShowFixedFooter(true), 200);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Delay hiding fixed footer to allow animation to complete and prevent flashing\n\t\t\t\t\t\ttransitionTimeoutRef.current = setTimeout(() => setShowFixedFooter(false), 200);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// Delay initial check to ensure layout is complete\n\t\tsetTimeout(checkOverflow, 100);\n\n\t\t// Check on resize\n\t\twindow.addEventListener('resize', checkOverflow);\n\n\t\t// Use ResizeObserver to detect container size changes\n\t\tconst resizeObserver = new ResizeObserver(() => {\n\t\t\tsetTimeout(checkOverflow, 50);\n\t\t});\n\t\tif (containerRef.current) {\n\t\t\tresizeObserver.observe(containerRef.current);\n\t\t}\n\t\tif (contentRef.current) {\n\t\t\tresizeObserver.observe(contentRef.current);\n\t\t}\n\n\t\t// Use MutationObserver to detect content changes\n\t\tconst mutationObserver = new MutationObserver(() => {\n\t\t\tsetTimeout(checkOverflow, 50);\n\t\t});\n\t\tif (contentRef.current) {\n\t\t\tmutationObserver.observe(contentRef.current, { childList: true, subtree: true, attributes: true });\n\t\t}\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('resize', checkOverflow);\n\t\t\tresizeObserver.disconnect();\n\t\t\tmutationObserver.disconnect();\n\t\t\t// Clear timeout on unmount\n\t\t\tif (transitionTimeoutRef.current) {\n\t\t\t\tclearTimeout(transitionTimeoutRef.current);\n\t\t\t}\n\t\t};\n\t}, [children, hasOverflow, hasMounted]);\n\n\t// Reusable button component\n\tconst MobileButtons = () => (\n\t\t<>\n\t\t\t{selectedFilters && Object.keys(selectedFilters).length > 0 && (\n\t\t\t\t<Button.Btn\n\t\t\t\t\tonClick={() => setMobileTab(\"listTab\")}\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t`${hasActiveFilters ? \"hc-opacity-0 hc-pointer-events-none\" : \"hc-opacity-100\"}`,\n\t\t\t\t\t\tfilterConfig?.classNames?.showJobsButton\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<Button.Body>\n\t\t\t\t\t\t<Button.Icon icon=\"fluent:search-12-filled\" size=\"hc-size-3.5\" />\n\t\t\t\t\t\tShow {filteredListings.length} Jobs\n\t\t\t\t\t</Button.Body>\n\t\t\t\t</Button.Btn>\n\t\t\t)}\n\t\t</>\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={containerRef}\n\t\t\tstyle={isDesktop ? style : undefined}\n\t\t\tclassName={twMerge(\n\t\t\t\t`/* Mobile layout */\n\t\t\t\thc-relative hc-w-full hc-h-full hc-flex hc-flex-col\n\n\t\t\t\t/* Desktop layout */\n\t\t\t\tmd:hc-relative md:hc-flex md:hc-flex-col md:hc-max-h-[100%]\n\n\t\t\t\t${className ?? \"\"}`,\n\t\t\t\tfilterConfig?.classNames?.filterContainer\n\t\t\t)}\n\t\t>\n\t\t\t{/* Content area with scroll */}\n\t\t\t<div\n\t\t\t\tref={contentRef}\n\t\t\t\tclassName={twMerge(\n\t\t\t\t\t`hc-w-full hc-flex-grow hc-max-h-full hc-overflow-auto ${hasOverflow ? 'hc-pb-16' : ''} md:hc-overflow-y-auto ${hasOverflow ? 'md:hc-pb-16' : 'md:hc-pb-0'}`,\n\t\t\t\t\tfilterConfig?.classNames?.filterContent\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<div className=\"hc-px-4 md:hc-pt-4 hc-space-y-4\">\n\t\t\t\t\t{children}\n\n\t\t\t\t\t{/* Inline buttons when no overflow - mobile only */}\n\t\t\t\t\t{!hasOverflow && !showFixedFooter && (\n\t\t\t\t\t\t<div className={twMerge(\n\t\t\t\t\t\t\t\"hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-border-t hc-border-gray-200 hc-animate-in hc-fade-in hc-duration-300 md:hc-hidden\",\n\t\t\t\t\t\t\tfilterConfig?.classNames?.filterFooter\n\t\t\t\t\t\t)}>\n\t\t\t\t\t\t\t<MobileButtons />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* Mobile Footer - fixed at bottom (only when overflow) */}\n\t\t\t{showFixedFooter && (\n\t\t\t\t<div className=\"hc-w-full hc-absolute hc-bottom-0 hc-left-0 hc-right-0 hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-px-4 hc-bg-gray-100 hc-border-t hc-border-gray-200 hc-z-50 md:hc-hidden hc-animate-in hc-fade-in hc-slide-in-from-bottom-2 hc-duration-200\">\n\t\t\t\t\t<MobileButtons />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default Filter;\n"],"names":["Filter","_ref","_filterConfig$classNa2","_filterConfig$classNa3","_filterConfig$classNa4","className","hasActiveFilters","filteredListings","selectedFilters","setMobileTab","_ref$isDesktop","isDesktop","style","children","_useMapList","useMapList","filterConfig","contentRef","useRef","containerRef","_useState","useState","_useState2","_slicedToArray","hasOverflow","setHasOverflow","_useState3","_useState4","showFixedFooter","setShowFixedFooter","_useState5","_useState6","hasMounted","setHasMounted","transitionTimeoutRef","useEffect","window","checkOverflow","current","hasScroll","scrollHeight","clientHeight","clearTimeout","setTimeout","addEventListener","resizeObserver","ResizeObserver","observe","mutationObserver","MutationObserver","childList","subtree","attributes","removeEventListener","disconnect","MobileButtons","_filterConfig$classNa","React","createElement","Fragment","Object","keys","length","Button","Btn","onClick","variant","size","twMerge","concat","classNames","showJobsButton","Body","Icon","icon","ref","undefined","filterContainer","filterContent","filterFooter"],"mappings":"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"}
|
|
@@ -45,67 +45,76 @@ var FieldMapperMobile = function FieldMapperMobile(_ref) {
|
|
|
45
45
|
});
|
|
46
46
|
};
|
|
47
47
|
return /*#__PURE__*/React.createElement(Grid.Item, {
|
|
48
|
-
className: "md:hc-hidden"
|
|
48
|
+
className: "md:hc-hidden hc-text-[#5d5e5e]"
|
|
49
49
|
}, fieldsShown.includes("title") && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
50
|
-
className: "hc-flex hc-items-start"
|
|
50
|
+
className: "hc-flex hc-items-start hc-justify-between"
|
|
51
51
|
}, /*#__PURE__*/React.createElement("div", {
|
|
52
|
-
className: "hc-flex
|
|
53
|
-
}, /*#__PURE__*/React.createElement("
|
|
54
|
-
className: "hc-font-bold hc-
|
|
55
|
-
}, getFieldValue(item, "title")),
|
|
56
|
-
className: "hc-
|
|
52
|
+
className: "hc-flex-1"
|
|
53
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
54
|
+
className: "hc-font-bold hc-text-primary hc-leading-tight hc-text-sm"
|
|
55
|
+
}, getFieldValue(item, "title")), /*#__PURE__*/React.createElement("div", {
|
|
56
|
+
className: "hc-pl-2px"
|
|
57
|
+
}, fieldsShown.includes("category") && getFieldValue(item, "category") && /*#__PURE__*/React.createElement("div", {
|
|
58
|
+
className: "hc-flex hc-gap-1 hc-items-center hc-text-xs hc-my-px"
|
|
59
|
+
}, /*#__PURE__*/React.createElement(IconContained, {
|
|
60
|
+
icon: "icon-park-solid:tree-list",
|
|
61
|
+
size: "hc-size-3.5",
|
|
62
|
+
className: "hc-text-[#5d5e5e]"
|
|
63
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
64
|
+
className: "hc-sr-only"
|
|
65
|
+
}, "category"), getFieldValue(item, "category")), fieldsShown.includes("subCategory") && getFieldValue(item, "subCategory") && /*#__PURE__*/React.createElement("div", {
|
|
66
|
+
className: "hc-flex hc-gap-1 hc-items-center hc-text-xs hc-my-px"
|
|
67
|
+
}, /*#__PURE__*/React.createElement(IconContained, {
|
|
68
|
+
icon: "icon-park-solid:tree-list",
|
|
69
|
+
size: "hc-size-3.5",
|
|
70
|
+
className: "hc-text-[#5d5e5e]"
|
|
71
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
72
|
+
className: "hc-sr-only"
|
|
73
|
+
}, "subCategory"), getFieldValue(item, "subCategory")), fieldsShown.includes("cityState") && getFieldValue(item, "cityState") && /*#__PURE__*/React.createElement("div", {
|
|
74
|
+
className: "hc-flex hc-gap-1 hc-items-center hc-text-xs hc-my-px"
|
|
75
|
+
}, /*#__PURE__*/React.createElement(IconContained, {
|
|
76
|
+
icon: "fluent:location-16-filled",
|
|
77
|
+
size: "hc-size-3.5",
|
|
78
|
+
className: "hc-text-[#5d5e5e]"
|
|
79
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
80
|
+
className: "hc-sr-only"
|
|
81
|
+
}, "Location"), getFieldValue(item, "cityState")), !(fieldsShown.includes("cityState") && getFieldValue(item, "cityState")) && (fieldsShown.includes("city") && getFieldValue(item, "city") || fieldsShown.includes("state") && getFieldValue(item, "state")) && /*#__PURE__*/React.createElement("div", {
|
|
82
|
+
className: "hc-flex hc-gap-1 hc-items-center hc-text-xs hc-my-px"
|
|
83
|
+
}, /*#__PURE__*/React.createElement(IconContained, {
|
|
84
|
+
icon: "fluent:location-16-filled",
|
|
85
|
+
size: "hc-size-3.5",
|
|
86
|
+
className: "hc-text-[#5d5e5e]"
|
|
87
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
88
|
+
className: "hc-sr-only"
|
|
89
|
+
}, "Location"), getFieldValue(item, "city") && getFieldValue(item, "state") ? "".concat(getFieldValue(item, "city"), ", ").concat(getFieldValue(item, "state")) : getFieldValue(item, "city") || getFieldValue(item, "state")), fieldsShown.includes("schedule") && getFieldValue(item, "schedule") && /*#__PURE__*/React.createElement("div", {
|
|
90
|
+
className: "hc-flex hc-gap-1 hc-items-center hc-text-xs hc-my-px"
|
|
91
|
+
}, /*#__PURE__*/React.createElement(IconContained, {
|
|
92
|
+
icon: "gravity-ui:clock-fill",
|
|
93
|
+
size: "hc-size-3.5",
|
|
94
|
+
className: "hc-text-[#5d5e5e]"
|
|
95
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
96
|
+
className: "hc-sr-only"
|
|
97
|
+
}, "Schedule"), getFieldValue(item, "schedule")), fieldsShown.includes("travelTime") && getFieldValue(item, "travelTime") && /*#__PURE__*/React.createElement("div", {
|
|
98
|
+
className: "hc-flex hc-gap-1 hc-items-center hc-text-xs hc-my-px"
|
|
99
|
+
}, /*#__PURE__*/React.createElement(IconContained, {
|
|
100
|
+
icon: "ri:pin-distance-fill",
|
|
101
|
+
size: "hc-size-3.5",
|
|
102
|
+
className: "hc-text-[#5d5e5e]"
|
|
103
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
104
|
+
className: "hc-sr-only"
|
|
105
|
+
}, "Commute"), getFieldValue(item, "travelTime")))), includeFavorite && /*#__PURE__*/React.createElement("div", {
|
|
106
|
+
className: "hc-flex hc-justify-end"
|
|
57
107
|
}, /*#__PURE__*/React.createElement(IconContained, {
|
|
58
108
|
icon: isFavorite ? "mdi:heart" : "mdi:heart-outline",
|
|
59
109
|
size: "hc-size-3.5",
|
|
60
|
-
iconClasses: isFavorite ? "hc-text-primary" : "",
|
|
61
|
-
className: "hc-transition-opacity hc-duration-300 hc-cursor-pointer
|
|
110
|
+
iconClasses: isFavorite ? "hc-text-primary" : "hc-text-[#5d5e5e]",
|
|
111
|
+
className: "hc-transition-opacity hc-duration-300 hc-cursor-pointer ".concat(isFavorite ? "hc-opacity-100" : ""),
|
|
62
112
|
onClick: function onClick(e) {
|
|
63
113
|
return handleFavouriteClick(e, item);
|
|
64
114
|
}
|
|
65
|
-
})))
|
|
66
|
-
className: "hc-pb-
|
|
67
|
-
}, specialFeaturePillsRender(), " ")
|
|
68
|
-
className: "hc-space-y-2 hc-text-xs"
|
|
69
|
-
}, [{
|
|
70
|
-
field: "category",
|
|
71
|
-
name: "category",
|
|
72
|
-
icon: "icon-park-solid:tree-list"
|
|
73
|
-
}, {
|
|
74
|
-
field: "subCategory",
|
|
75
|
-
name: "subCategory",
|
|
76
|
-
icon: "icon-park-solid:tree-list"
|
|
77
|
-
}, {
|
|
78
|
-
field: "schedule",
|
|
79
|
-
name: "Schedule",
|
|
80
|
-
icon: "gravity-ui:clock-fill"
|
|
81
|
-
}, {
|
|
82
|
-
field: "city",
|
|
83
|
-
name: "Location",
|
|
84
|
-
icon: "fluent:location-16-filled"
|
|
85
|
-
}, {
|
|
86
|
-
field: "state",
|
|
87
|
-
name: "Location",
|
|
88
|
-
icon: "fluent:location-16-filled"
|
|
89
|
-
}, {
|
|
90
|
-
field: "cityState",
|
|
91
|
-
name: "Location",
|
|
92
|
-
icon: "fluent:location-16-filled"
|
|
93
|
-
}, {
|
|
94
|
-
field: "travelTime",
|
|
95
|
-
name: "Commute",
|
|
96
|
-
icon: "ri:pin-distance-fill"
|
|
97
|
-
}].map(function (listItem) {
|
|
98
|
-
return fieldsShown.includes(listItem.field) && getFieldValue(item, listItem.field) && /*#__PURE__*/React.createElement("li", {
|
|
99
|
-
key: listItem.field,
|
|
100
|
-
className: "hc-flex hc-gap-2"
|
|
101
|
-
}, /*#__PURE__*/React.createElement(IconContained, {
|
|
102
|
-
icon: listItem.icon,
|
|
103
|
-
size: "hc-size-3.5",
|
|
104
|
-
className: "hc-text-uiAccent/30"
|
|
105
|
-
}), /*#__PURE__*/React.createElement("span", {
|
|
106
|
-
className: "hc-sr-only"
|
|
107
|
-
}, listItem.name), getFieldValue(item, listItem.field));
|
|
108
|
-
}))));
|
|
115
|
+
}))), specialFeatures && /*#__PURE__*/React.createElement("div", {
|
|
116
|
+
className: "hc-pb-0"
|
|
117
|
+
}, specialFeaturePillsRender(), " ")));
|
|
109
118
|
};
|
|
110
119
|
|
|
111
120
|
export { FieldMapperMobile as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-mapper-mobile.js","sources":["../../../../src/components/modules/list/field-mapper-mobile.jsx"],"sourcesContent":["import React from 'react';\nimport Grid from '~/components/modules/grid';\nimport Icon from '~/components/modules/icon';\nimport PillWrapper from '~/components/modules/buttons/pill-wrapper';\nimport { getFieldValue } from '~/util/filterUtil';\nimport { twMerge } from 'tailwind-merge';\n\nconst FieldMapperMobile = ({\n\titem,\n\tfieldsShown,\n\tspecialFeatures,\n\tspecialFeaturePills,\n\thandleFavouriteClick,\n\tisFavorite,\n\tincludeFavorite = true\n}) => {\n\tconst specialFeaturePillsRender = field => {\n\t\tif (field !== 'title' || !specialFeatures || !specialFeaturePills) return null;\n\n\t\treturn Object.entries(specialFeatures).map(([featureKey, featureLabel]) => {\n\t\t\t// Only show pill if it's configured in specialFeaturePills\n\t\t\tif (!specialFeaturePills[featureKey]) return null;\n\n\t\t\tconst value = getFieldValue(item, featureKey);\n\t\t\tconst customClassName = specialFeaturePills[featureKey]?.className || '';\n\n\t\t\t// Handle boolean fields (value == 1 or \"true\")\n\t\t\tif (value == 1 || value === 1 || value === '1' || value === 'true' || value === 'True' || value === true) {\n\t\t\t\treturn <PillWrapper key={featureKey} className={customClassName}>{featureLabel}</PillWrapper>;\n\t\t\t}\n\t\t\t// Handle multi-value custom fields - show the value if it's not empty/false\n\t\t\tif (value && value !== '' && value !== 'false' && value !== 'False' && value !== '0' && value !== 0) {\n\t\t\t\treturn <PillWrapper key={featureKey} className={customClassName}>{featureLabel}: {value}</PillWrapper>;\n\t\t\t}\n\t\t\treturn null;\n\t\t});\n\t};\n\n\treturn (\n\t\t<Grid.Item className=\"md:hc-hidden\">\n\t\t\t{fieldsShown.includes(\"title\") &&\n <>\n \t<div className=\"hc-flex hc-items-start\">\n \t\t<div className=\"hc-flex hc-justify-between hc-items-center hc-min-w-[100%]\">\n \t\t\t<h3 className=\"hc-font-bold hc-mb-3 hc-flex-1 hc-text-primary hc-underline\">{getFieldValue(item, \"title\")}</h3>\n \t\t\t{includeFavorite && <div className=\"hc-flex hc-justify-end hc-pb-2\">\n \t\t\t\t<Icon\n \t\t\t\t\ticon={isFavorite ? \"mdi:heart\" : \"mdi:heart-outline\"}\n \t\t\t\t\tsize=\"hc-size-3.5\"\n \t\t\t\t\ticonClasses={isFavorite ? \"hc-text-primary\" : \"\"}\n \t\t\t\t\tclassName={`hc-transition-opacity hc-duration-300 hc-cursor-pointer\n ${isFavorite ? \"hc-opacity-100\" : \"hc-text-uiText/60 group-hover:hc-opacity-100\"}\n `}\n \t\t\t\t\tonClick={e => handleFavouriteClick(e, item)}\n \t\t\t\t/>\n \t\t\t</div>\n \t\t\t}\n \t\t</div>\n \t</div>\n \t{specialFeatures && <div className='hc-pb-4'>{specialFeaturePillsRender(\"title\")} </div>}\n\n \t<ul className=\"hc-space-y-2 hc-text-xs\">\n \t\t{[\n \t\t\t{\n \t\t\t\tfield: \"category\",\n \t\t\t\tname: \"category\",\n \t\t\t\ticon: \"icon-park-solid:tree-list\"\n \t\t\t},\n \t\t\t{\n \t\t\t\tfield: \"subCategory\",\n \t\t\t\tname: \"subCategory\",\n \t\t\t\ticon: \"icon-park-solid:tree-list\"\n \t\t\t},\n \t\t\t{\n \t\t\t\tfield: \"schedule\",\n \t\t\t\tname: \"Schedule\",\n \t\t\t\ticon: \"gravity-ui:clock-fill\"\n \t\t\t},\n \t\t\t{\n \t\t\t\tfield: \"city\",\n \t\t\t\tname: \"Location\",\n \t\t\t\ticon: \"fluent:location-16-filled\"\n \t\t\t},\n \t\t\t{\n \t\t\t\tfield: \"state\",\n \t\t\t\tname: \"Location\",\n \t\t\t\ticon: \"fluent:location-16-filled\"\n \t\t\t},\n \t\t\t{\n \t\t\t\tfield: \"cityState\",\n \t\t\t\tname: \"Location\",\n \t\t\t\ticon: \"fluent:location-16-filled\"\n \t\t\t},\n \t\t\t{\n \t\t\t\tfield: \"travelTime\",\n \t\t\t\tname: \"Commute\",\n \t\t\t\ticon: \"ri:pin-distance-fill\"\n \t\t\t}\n \t\t].map(listItem => (\n \t\t\t(fieldsShown.includes(listItem.field) && getFieldValue(item, listItem.field)) &&\n <li\n \tkey={listItem.field}\n \tclassName=\"hc-flex hc-gap-2\"\n >\n \t<Icon\n \t\ticon={listItem.icon}\n \t\tsize=\"hc-size-3.5\"\n \t\tclassName=\"hc-text-uiAccent/30\"\n \t/>\n \t<span className=\"hc-sr-only\">{listItem.name}</span>\n \t{getFieldValue(item, listItem.field)}\n </li>\n \t\t))}\n \t</ul>\n </>\n\t\t\t}\n\t\t</Grid.Item>\n\t);\n};\n\nexport default FieldMapperMobile;\n"],"names":["FieldMapperMobile","_ref","item","fieldsShown","specialFeatures","specialFeaturePills","handleFavouriteClick","isFavorite","_ref$includeFavorite","includeFavorite","specialFeaturePillsRender","field","Object","entries","map","_ref2","_specialFeaturePills$","_ref3","_slicedToArray","featureKey","featureLabel","value","getFieldValue","customClassName","className","React","createElement","PillWrapper","key","Grid","Item","includes","Fragment","Icon","icon","size","iconClasses","concat","onClick","e","name","listItem"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"field-mapper-mobile.js","sources":["../../../../src/components/modules/list/field-mapper-mobile.jsx"],"sourcesContent":["import React from 'react';\nimport Grid from '~/components/modules/grid';\nimport Icon from '~/components/modules/icon';\nimport PillWrapper from '~/components/modules/buttons/pill-wrapper';\nimport { getFieldValue } from '~/util/filterUtil';\nimport { twMerge } from 'tailwind-merge';\n\nconst FieldMapperMobile = ({\n\titem,\n\tfieldsShown,\n\tspecialFeatures,\n\tspecialFeaturePills,\n\thandleFavouriteClick,\n\tisFavorite,\n\tincludeFavorite = true\n}) => {\n\tconst specialFeaturePillsRender = field => {\n\t\tif (field !== 'title' || !specialFeatures || !specialFeaturePills) return null;\n\n\t\treturn Object.entries(specialFeatures).map(([featureKey, featureLabel]) => {\n\t\t\t// Only show pill if it's configured in specialFeaturePills\n\t\t\tif (!specialFeaturePills[featureKey]) return null;\n\n\t\t\tconst value = getFieldValue(item, featureKey);\n\t\t\tconst customClassName = specialFeaturePills[featureKey]?.className || '';\n\n\t\t\t// Handle boolean fields (value == 1 or \"true\")\n\t\t\tif (value == 1 || value === 1 || value === '1' || value === 'true' || value === 'True' || value === true) {\n\t\t\t\treturn <PillWrapper key={featureKey} className={customClassName}>{featureLabel}</PillWrapper>;\n\t\t\t}\n\t\t\t// Handle multi-value custom fields - show the value if it's not empty/false\n\t\t\tif (value && value !== '' && value !== 'false' && value !== 'False' && value !== '0' && value !== 0) {\n\t\t\t\treturn <PillWrapper key={featureKey} className={customClassName}>{featureLabel}: {value}</PillWrapper>;\n\t\t\t}\n\t\t\treturn null;\n\t\t});\n\t};\n\n\treturn (\n\t\t<Grid.Item className=\"md:hc-hidden hc-text-[#5d5e5e]\">\n\t\t\t{fieldsShown.includes(\"title\") &&\n <>\n \t<div className=\"hc-flex hc-items-start hc-justify-between\">\n \t\t<div className=\"hc-flex-1\">\n \t\t\t<div className=\"hc-font-bold hc-text-primary hc-leading-tight hc-text-sm\">{getFieldValue(item, \"title\")}</div>\n \t\t\t{/* Category */}\n \t\t\t<div className='hc-pl-2px'>\n \t\t\t{fieldsShown.includes(\"category\") && getFieldValue(item, \"category\") && (\n \t\t\t\t<div className=\"hc-flex hc-gap-1 hc-items-center hc-text-xs hc-my-px\">\n \t\t\t\t\t<Icon icon=\"icon-park-solid:tree-list\" size=\"hc-size-3.5\" className=\"hc-text-[#5d5e5e]\" />\n \t\t\t\t\t<span className=\"hc-sr-only\">category</span>\n \t\t\t\t\t{getFieldValue(item, \"category\")}\n \t\t\t\t</div>\n \t\t\t)}\n \t\t\t{/* SubCategory */}\n \t\t\t{fieldsShown.includes(\"subCategory\") && getFieldValue(item, \"subCategory\") && (\n \t\t\t\t<div className=\"hc-flex hc-gap-1 hc-items-center hc-text-xs hc-my-px\">\n \t\t\t\t\t<Icon icon=\"icon-park-solid:tree-list\" size=\"hc-size-3.5\" className=\"hc-text-[#5d5e5e]\" />\n \t\t\t\t\t<span className=\"hc-sr-only\">subCategory</span>\n \t\t\t\t\t{getFieldValue(item, \"subCategory\")}\n \t\t\t\t</div>\n \t\t\t)}\n \t\t\t{/* Location: cityState OR city, state OR just city OR just state */}\n \t\t\t{(fieldsShown.includes(\"cityState\") && getFieldValue(item, \"cityState\")) && (\n \t\t\t\t<div className=\"hc-flex hc-gap-1 hc-items-center hc-text-xs hc-my-px\">\n \t\t\t\t\t<Icon icon=\"fluent:location-16-filled\" size=\"hc-size-3.5\" className=\"hc-text-[#5d5e5e]\" />\n \t\t\t\t\t<span className=\"hc-sr-only\">Location</span>\n \t\t\t\t\t{getFieldValue(item, \"cityState\")}\n \t\t\t\t</div>\n \t\t\t)}\n \t\t\t{!(fieldsShown.includes(\"cityState\") && getFieldValue(item, \"cityState\")) && ((fieldsShown.includes(\"city\") && getFieldValue(item, \"city\")) || (fieldsShown.includes(\"state\") && getFieldValue(item, \"state\"))) && (\n \t\t\t\t<div className=\"hc-flex hc-gap-1 hc-items-center hc-text-xs hc-my-px\">\n \t\t\t\t\t<Icon icon=\"fluent:location-16-filled\" size=\"hc-size-3.5\" className=\"hc-text-[#5d5e5e]\" />\n \t\t\t\t\t<span className=\"hc-sr-only\">Location</span>\n \t\t\t\t\t{getFieldValue(item, \"city\") && getFieldValue(item, \"state\")\n \t\t\t\t\t\t? `${getFieldValue(item, \"city\")}, ${getFieldValue(item, \"state\")}`\n \t\t\t\t\t\t: getFieldValue(item, \"city\") || getFieldValue(item, \"state\")}\n \t\t\t\t</div>\n \t\t\t)}\n \t\t\t{/* Schedule */}\n \t\t\t{fieldsShown.includes(\"schedule\") && getFieldValue(item, \"schedule\") && (\n \t\t\t\t<div className=\"hc-flex hc-gap-1 hc-items-center hc-text-xs hc-my-px\">\n \t\t\t\t\t<Icon icon=\"gravity-ui:clock-fill\" size=\"hc-size-3.5\" className=\"hc-text-[#5d5e5e]\" />\n \t\t\t\t\t<span className=\"hc-sr-only\">Schedule</span>\n \t\t\t\t\t{getFieldValue(item, \"schedule\")}\n \t\t\t\t</div>\n \t\t\t)}\n \t\t\t{/* Travel Time */}\n \t\t\t{fieldsShown.includes(\"travelTime\") && getFieldValue(item, \"travelTime\") && (\n \t\t\t\t<div className=\"hc-flex hc-gap-1 hc-items-center hc-text-xs hc-my-px\">\n \t\t\t\t\t<Icon icon=\"ri:pin-distance-fill\" size=\"hc-size-3.5\" className=\"hc-text-[#5d5e5e]\" />\n \t\t\t\t\t<span className=\"hc-sr-only\">Commute</span>\n \t\t\t\t\t{getFieldValue(item, \"travelTime\")}\n \t\t\t\t</div>\n \t\t\t)}\n \t\t\t</div>\n \t\t</div>\n \t\t{includeFavorite && <div className=\"hc-flex hc-justify-end\">\n \t\t\t<Icon\n \t\t\t\ticon={isFavorite ? \"mdi:heart\" : \"mdi:heart-outline\"}\n \t\t\t\tsize=\"hc-size-3.5\"\n \t\t\t\ticonClasses={isFavorite ? \"hc-text-primary\" : \"hc-text-[#5d5e5e]\"}\n \t\t\t\tclassName={`hc-transition-opacity hc-duration-300 hc-cursor-pointer ${isFavorite ? \"hc-opacity-100\" : \"\"}`}\n \t\t\t\tonClick={e => handleFavouriteClick(e, item)}\n \t\t\t/>\n \t\t</div>\n \t\t}\n \t\t</div>\n\n \t{specialFeatures && <div className='hc-pb-0'>{specialFeaturePillsRender(\"title\")} </div>}\n </>\n\t\t\t}\n\t\t</Grid.Item>\n\t);\n};\n\nexport default FieldMapperMobile;\n"],"names":["FieldMapperMobile","_ref","item","fieldsShown","specialFeatures","specialFeaturePills","handleFavouriteClick","isFavorite","_ref$includeFavorite","includeFavorite","specialFeaturePillsRender","field","Object","entries","map","_ref2","_specialFeaturePills$","_ref3","_slicedToArray","featureKey","featureLabel","value","getFieldValue","customClassName","className","React","createElement","PillWrapper","key","Grid","Item","includes","Fragment","Icon","icon","size","concat","iconClasses","onClick","e"],"mappings":"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"}
|