@abcagency/hc-ui-components 1.3.50 → 1.3.52
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/apis/hcApi.js +1 -1
- package/dist/apis/hcApi.js.map +1 -1
- package/dist/components/containers/maps/info-window-content-container.js +2 -1
- package/dist/components/containers/maps/info-window-content-container.js.map +1 -1
- package/dist/components/containers/maps/map-container.js +0 -1
- package/dist/components/containers/maps/map-container.js.map +1 -1
- package/dist/components/modules/maps/info-window-content.js +25 -4
- package/dist/components/modules/maps/info-window-content.js.map +1 -1
- package/dist/contexts/mapListContext.js +1 -1
- package/dist/contexts/mapListContext.js.map +1 -1
- package/dist/types/util/filterUtil.d.ts +1 -1
- package/dist/util/filterUtil.js +24 -1
- package/dist/util/filterUtil.js.map +1 -1
- package/package.json +1 -1
- package/src/components/containers/maps/info-window-content-container.js +1 -1
- package/src/components/modules/maps/info-window-content.js +64 -36
- package/src/contexts/mapListContext.tsx +2 -1
- package/src/util/filterUtil.js +22 -1
package/dist/apis/hcApi.js
CHANGED
package/dist/apis/hcApi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hcApi.js","sources":["../../src/apis/hcApi.ts"],"sourcesContent":["import { getClientAuthKey } from '~/clientToken';\r\nconst baseURL = process.env.HC_API_BASE_URL as string;\r\n\r\ninterface MemoryStorage {\r\n\tauthToken: string | null;\r\n\ttokenExpiration: string | null;\r\n}\r\n\r\nconst memoryStorage: MemoryStorage = {\r\n\tauthToken: null,\r\n\ttokenExpiration: null\r\n};\r\n\r\nfunction setStorage(key: keyof MemoryStorage, value: string): void {\r\n\ttry {\r\n\t\tsessionStorage.setItem(key, value);\r\n\t} catch (error) {\r\n\t\tmemoryStorage[key] = value;\r\n\t}\r\n}\r\n\r\nfunction getStorage(key: keyof MemoryStorage): string | null {\r\n\ttry {\r\n\t\treturn sessionStorage.getItem(key) || memoryStorage[key];\r\n\t} catch (error) {\r\n\t\treturn memoryStorage[key];\r\n\t}\r\n}\r\n\r\ninterface AuthResponse {\r\n\ttoken: string;\r\n\texpiration: string;\r\n}\r\n\r\nconst login = async (): Promise<AuthResponse> => {\r\n\tconst clientAuthKey = getClientAuthKey();\r\n\r\n\ttry {\r\n\t\tconst response = await fetch(`${baseURL}/auth/login`, {\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t},\r\n\t\t\tbody: JSON.stringify({\r\n\t\t\t\tclientAuthKey: clientAuthKey\r\n\t\t\t})\r\n\t\t});\r\n\r\n\t\tif (!response.ok) {\r\n\t\t\tthrow new Error('Login failed');\r\n\t\t}\r\n\r\n\t\tconst data = await response.json();\r\n\r\n\t\tif (data.token && data.expiration) {\r\n\t\t\tsetStorage('authToken', data.token);\r\n\t\t\tsetStorage('tokenExpiration', data.expiration);\r\n\t\t\treturn { token: data.token, expiration: data.expiration };\r\n\t\t} else {\r\n\t\t\tthrow new Error('Invalid login response');\r\n\t\t}\r\n\t} catch (error) {\r\n\t\tconsole.error('Login failed:', error);\r\n\t\tthrow error;\r\n\t}\r\n};\r\n\r\nconst fetchWithAuth = async (url: string, options: RequestInit = {}): Promise<Response> => {\r\n\tlet token = getStorage('authToken');\r\n\r\n\tconst expirationDateTime = getStorage('tokenExpiration');\r\n\tconst currentTime = new Date();\r\n\r\n\tif (!token || !expirationDateTime || new Date(expirationDateTime) <= currentTime) {\r\n\t\tconst authResponse = await login();\r\n\t\ttoken = authResponse.token;\r\n\t}\r\n\r\n\tconst headers = new Headers(options.headers || {});\r\n\theaders.append('Authorization', `Bearer ${token}`);\r\n\r\n\tconst finalOptions = {\r\n\t\t...options,\r\n\t\theaders\r\n\t};\r\n\r\n\tconst response = await fetch(`${baseURL}${url}`, finalOptions);\r\n\r\n\tif (!response.ok) throw new Error('Network response was not ok.');\r\n\r\n\treturn response;\r\n};\r\n\r\nexport default {\r\n\tget: async <T>(url: string): Promise<T> => {\r\n\t\tconst response = await fetchWithAuth(url);\r\n\t\treturn await response.json() as T;\r\n\t},\r\n\tpost: async <T>(url: string, data: any): Promise<T> => {\r\n\t\tconst response = await fetchWithAuth(url, {\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t},\r\n\t\t\tbody: JSON.stringify(data)\r\n\t\t});\r\n\t\treturn await response.json() as T;\r\n\t}\r\n};\r\n"],"names":[],"mappings":";;AACA,MAAM,OAAO,GAAG
|
|
1
|
+
{"version":3,"file":"hcApi.js","sources":["../../src/apis/hcApi.ts"],"sourcesContent":["import { getClientAuthKey } from '~/clientToken';\r\nconst baseURL = process.env.HC_API_BASE_URL as string;\r\n\r\ninterface MemoryStorage {\r\n\tauthToken: string | null;\r\n\ttokenExpiration: string | null;\r\n}\r\n\r\nconst memoryStorage: MemoryStorage = {\r\n\tauthToken: null,\r\n\ttokenExpiration: null\r\n};\r\n\r\nfunction setStorage(key: keyof MemoryStorage, value: string): void {\r\n\ttry {\r\n\t\tsessionStorage.setItem(key, value);\r\n\t} catch (error) {\r\n\t\tmemoryStorage[key] = value;\r\n\t}\r\n}\r\n\r\nfunction getStorage(key: keyof MemoryStorage): string | null {\r\n\ttry {\r\n\t\treturn sessionStorage.getItem(key) || memoryStorage[key];\r\n\t} catch (error) {\r\n\t\treturn memoryStorage[key];\r\n\t}\r\n}\r\n\r\ninterface AuthResponse {\r\n\ttoken: string;\r\n\texpiration: string;\r\n}\r\n\r\nconst login = async (): Promise<AuthResponse> => {\r\n\tconst clientAuthKey = getClientAuthKey();\r\n\r\n\ttry {\r\n\t\tconst response = await fetch(`${baseURL}/auth/login`, {\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t},\r\n\t\t\tbody: JSON.stringify({\r\n\t\t\t\tclientAuthKey: clientAuthKey\r\n\t\t\t})\r\n\t\t});\r\n\r\n\t\tif (!response.ok) {\r\n\t\t\tthrow new Error('Login failed');\r\n\t\t}\r\n\r\n\t\tconst data = await response.json();\r\n\r\n\t\tif (data.token && data.expiration) {\r\n\t\t\tsetStorage('authToken', data.token);\r\n\t\t\tsetStorage('tokenExpiration', data.expiration);\r\n\t\t\treturn { token: data.token, expiration: data.expiration };\r\n\t\t} else {\r\n\t\t\tthrow new Error('Invalid login response');\r\n\t\t}\r\n\t} catch (error) {\r\n\t\tconsole.error('Login failed:', error);\r\n\t\tthrow error;\r\n\t}\r\n};\r\n\r\nconst fetchWithAuth = async (url: string, options: RequestInit = {}): Promise<Response> => {\r\n\tlet token = getStorage('authToken');\r\n\r\n\tconst expirationDateTime = getStorage('tokenExpiration');\r\n\tconst currentTime = new Date();\r\n\r\n\tif (!token || !expirationDateTime || new Date(expirationDateTime) <= currentTime) {\r\n\t\tconst authResponse = await login();\r\n\t\ttoken = authResponse.token;\r\n\t}\r\n\r\n\tconst headers = new Headers(options.headers || {});\r\n\theaders.append('Authorization', `Bearer ${token}`);\r\n\r\n\tconst finalOptions = {\r\n\t\t...options,\r\n\t\theaders\r\n\t};\r\n\r\n\tconst response = await fetch(`${baseURL}${url}`, finalOptions);\r\n\r\n\tif (!response.ok) throw new Error('Network response was not ok.');\r\n\r\n\treturn response;\r\n};\r\n\r\nexport default {\r\n\tget: async <T>(url: string): Promise<T> => {\r\n\t\tconst response = await fetchWithAuth(url);\r\n\t\treturn await response.json() as T;\r\n\t},\r\n\tpost: async <T>(url: string, data: any): Promise<T> => {\r\n\t\tconst response = await fetchWithAuth(url, {\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t},\r\n\t\t\tbody: JSON.stringify(data)\r\n\t\t});\r\n\t\treturn await response.json() as T;\r\n\t}\r\n};\r\n"],"names":[],"mappings":"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"}
|
|
@@ -59,7 +59,8 @@ var InfoWindowContentContainer = function InfoWindowContentContainer(_ref) {
|
|
|
59
59
|
return /*#__PURE__*/React__default.createElement(InfoWindowContent, {
|
|
60
60
|
items: items,
|
|
61
61
|
fullAddress: fullAddress,
|
|
62
|
-
applyFilters: applyFilters
|
|
62
|
+
applyFilters: applyFilters,
|
|
63
|
+
mapInfoWindowConfig: siteConfig.mapInfoWindowConfig
|
|
63
64
|
});
|
|
64
65
|
};
|
|
65
66
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info-window-content-container.js","sources":["../../../../src/components/containers/maps/info-window-content-container.js"],"sourcesContent":["import React from 'react';\nimport InfoWindowContent from '~/components/modules/maps/info-window-content';\nimport { useMapList } from '~/contexts/mapListContext';\nimport { useTrackEvent } from '~/contexts/trackEventContext';\n\nconst InfoWindowContentContainer = ({\n\titem,\n\tfilterListingsByLocation\n}) => {\n\tconst { trackEvent, eventTypes } = useTrackEvent();\n\tconst { setSelectedFilters, setMobileTab, selectedFilters, siteConfig, filteredListings } = useMapList();\n\tconst fieldsShown = siteConfig.locationFiltersShown;\n\tlet items = item && item.items ? Object.values(item.items) : null;\n\n\tconst addressParts = [\n\t\titems[0].mapDetails?.address?.street,\n\t\titems[0].mapDetails?.address?.city,\n\t\titems[0].mapDetails?.address?.state,\n\t\titems[0].mapDetails?.address?.zip\n\t];\n\tconst fullAddress = addressParts.filter(Boolean).join(', ');\n\n\tconst applyFilters = () => {\n\t\tsetMobileTab(\"listTab\");\n\t\tconst newFilters = { ...selectedFilters };\n\t\tlet filters = [];\n\n\t\tif (fieldsShown.includes('cityState')) {\n\t\t\tnewFilters.cityState = { [items[0].fields.cityState]: true };\n\t\t\tfilters.push({ filterType: 'cityState', filterChecked: items[0].fields.cityState });\n\t\t}\n\n\t\tif (fieldsShown.includes('city')) {\n\t\t\tnewFilters.city = { [items[0].fields.city]: true };\n\t\t\tfilters.push({ filterType: 'city', filterChecked: items[0].fields.city });\n\t\t}\n\n\t\tif (fieldsShown.includes('state')) {\n\t\t\tnewFilters.state = { [items[0].fields.state]: true };\n\t\t\tfilters.push({ filterType: 'state', filterChecked: items[0].fields.state });\n\t\t}\n\n\t\tnewFilters.entityName = { [items[0].fields.entityName]: true };\n\t\tfilters.push({ filterType: 'entityName', filterChecked: items[0].fields.entityName });\n\n\t\ttrackEvent(eventTypes.VIEW_JOBS_AT_Location, { filtersApplied: filters });\n\t\tsetSelectedFilters(newFilters);\n\t};\n\n\treturn <InfoWindowContent items={items} fullAddress={fullAddress} applyFilters={applyFilters} />;\n};\n\nexport default InfoWindowContentContainer;\n"],"names":["InfoWindowContentContainer","_ref","_items$0$mapDetails","_items$0$mapDetails2","_items$0$mapDetails3","_items$0$mapDetails4","item","filterListingsByLocation","_useTrackEvent","useTrackEvent","trackEvent","eventTypes","_useMapList","useMapList","setSelectedFilters","setMobileTab","selectedFilters","siteConfig","filteredListings","fieldsShown","locationFiltersShown","items","Object","values","addressParts","mapDetails","address","street","city","state","zip","fullAddress","filter","Boolean","join","applyFilters","newFilters","_objectSpread","filters","includes","cityState","_defineProperty","fields","push","filterType","filterChecked","entityName","VIEW_JOBS_AT_Location","filtersApplied","React","createElement","InfoWindowContent"],"mappings":";;;;;;AAKA,IAAMA,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAAC,IAAA,EAG1B;AAAA,EAAA,IAAAC,mBAAA,EAAAC,oBAAA,EAAAC,oBAAA,EAAAC,oBAAA,CAAA;AAAA,EAAA,IAFLC,IAAI,GAAAL,IAAA,CAAJK,IAAI,CAAA;IACoBL,IAAA,CAAxBM,yBAAwB;AAExB,EAAA,IAAAC,cAAA,GAAmCC,aAAa,EAAE;IAA1CC,UAAU,GAAAF,cAAA,CAAVE,UAAU;IAAEC,UAAU,GAAAH,cAAA,CAAVG,UAAU,CAAA;AAC9B,EAAA,IAAAC,WAAA,GAA4FC,UAAU,EAAE,CAAA;IAAhGC,kBAAkB,GAAAF,WAAA,CAAlBE,kBAAkB,CAAA;IAAEC,YAAY,GAAAH,WAAA,CAAZG,YAAY,CAAA;IAAEC,eAAe,GAAAJ,WAAA,CAAfI,eAAe,CAAA;IAAEC,UAAU,GAAAL,WAAA,CAAVK,UAAU,CAAA;IAAkBL,WAAA,CAAhBM,iBAAgB;AACvF,EAAA,IAAMC,WAAW,GAAGF,UAAU,CAACG,oBAAoB,CAAA;AACnD,EAAA,IAAIC,KAAK,GAAGf,IAAI,IAAIA,IAAI,CAACe,KAAK,GAAGC,MAAM,CAACC,MAAM,CAACjB,IAAI,CAACe,KAAK,CAAC,GAAG,IAAI,CAAA;EAEjE,IAAMG,YAAY,GAAG,CAAAtB,CAAAA,mBAAA,GACpBmB,KAAK,CAAC,CAAC,CAAC,CAACI,UAAU,MAAAvB,IAAAA,IAAAA,mBAAA,gBAAAA,mBAAA,GAAnBA,mBAAA,CAAqBwB,OAAO,cAAAxB,mBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA5BA,mBAAA,CAA8ByB,MAAM,GAAAxB,oBAAA,GACpCkB,KAAK,CAAC,CAAC,CAAC,CAACI,UAAU,cAAAtB,oBAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,oBAAA,GAAnBA,oBAAA,CAAqBuB,OAAO,MAAA,IAAA,IAAAvB,oBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA5BA,oBAAA,CAA8ByB,IAAI,EAAAxB,CAAAA,oBAAA,GAClCiB,KAAK,CAAC,CAAC,CAAC,CAACI,UAAU,MAAArB,IAAAA,IAAAA,oBAAA,gBAAAA,oBAAA,GAAnBA,oBAAA,CAAqBsB,OAAO,cAAAtB,oBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA5BA,oBAAA,CAA8ByB,KAAK,GAAAxB,oBAAA,GACnCgB,KAAK,CAAC,CAAC,CAAC,CAACI,UAAU,cAAApB,oBAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,oBAAA,GAAnBA,oBAAA,CAAqBqB,OAAO,MAAA,IAAA,IAAArB,oBAAA,KAA5BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAA8ByB,GAAG,CACjC,CAAA;AACD,EAAA,IAAMC,WAAW,GAAGP,YAAY,CAACQ,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,CAAA;AAE3D,EAAA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,GAAS;IAC1BpB,YAAY,CAAC,SAAS,CAAC,CAAA;AACvB,IAAA,IAAMqB,UAAU,GAAAC,cAAA,CAAA,EAAA,EAAQrB,eAAe,CAAE,CAAA;IACzC,IAAIsB,OAAO,GAAG,EAAE,CAAA;AAEhB,IAAA,IAAInB,WAAW,CAACoB,QAAQ,CAAC,WAAW,CAAC,EAAE;AACtCH,MAAAA,UAAU,CAACI,SAAS,GAAAC,eAAA,KAAMpB,KAAK,CAAC,CAAC,CAAC,CAACqB,MAAM,CAACF,SAAS,EAAG,IAAI,CAAE,CAAA;MAC5DF,OAAO,CAACK,IAAI,CAAC;AAAEC,QAAAA,UAAU,EAAE,WAAW;AAAEC,QAAAA,aAAa,EAAExB,KAAK,CAAC,CAAC,CAAC,CAACqB,MAAM,CAACF,SAAAA;AAAU,OAAC,CAAC,CAAA;AACpF,KAAA;AAEA,IAAA,IAAIrB,WAAW,CAACoB,QAAQ,CAAC,MAAM,CAAC,EAAE;AACjCH,MAAAA,UAAU,CAACR,IAAI,GAAAa,eAAA,KAAMpB,KAAK,CAAC,CAAC,CAAC,CAACqB,MAAM,CAACd,IAAI,EAAG,IAAI,CAAE,CAAA;MAClDU,OAAO,CAACK,IAAI,CAAC;AAAEC,QAAAA,UAAU,EAAE,MAAM;AAAEC,QAAAA,aAAa,EAAExB,KAAK,CAAC,CAAC,CAAC,CAACqB,MAAM,CAACd,IAAAA;AAAK,OAAC,CAAC,CAAA;AAC1E,KAAA;AAEA,IAAA,IAAIT,WAAW,CAACoB,QAAQ,CAAC,OAAO,CAAC,EAAE;AAClCH,MAAAA,UAAU,CAACP,KAAK,GAAAY,eAAA,KAAMpB,KAAK,CAAC,CAAC,CAAC,CAACqB,MAAM,CAACb,KAAK,EAAG,IAAI,CAAE,CAAA;MACpDS,OAAO,CAACK,IAAI,CAAC;AAAEC,QAAAA,UAAU,EAAE,OAAO;AAAEC,QAAAA,aAAa,EAAExB,KAAK,CAAC,CAAC,CAAC,CAACqB,MAAM,CAACb,KAAAA;AAAM,OAAC,CAAC,CAAA;AAC5E,KAAA;AAEAO,IAAAA,UAAU,CAACU,UAAU,GAAAL,eAAA,KAAMpB,KAAK,CAAC,CAAC,CAAC,CAACqB,MAAM,CAACI,UAAU,EAAG,IAAI,CAAE,CAAA;IAC9DR,OAAO,CAACK,IAAI,CAAC;AAAEC,MAAAA,UAAU,EAAE,YAAY;AAAEC,MAAAA,aAAa,EAAExB,KAAK,CAAC,CAAC,CAAC,CAACqB,MAAM,CAACI,UAAAA;AAAW,KAAC,CAAC,CAAA;AAErFpC,IAAAA,UAAU,CAACC,UAAU,CAACoC,qBAAqB,EAAE;AAAEC,MAAAA,cAAc,EAAEV,OAAAA;AAAQ,KAAC,CAAC,CAAA;IACzExB,kBAAkB,CAACsB,UAAU,CAAC,CAAA;GAC9B,CAAA;AAED,EAAA,oBAAOa,cAAA,CAAAC,aAAA,CAACC,iBAAiB,EAAA;AAAC9B,IAAAA,KAAK,EAAEA,KAAM;AAACU,IAAAA,WAAW,EAAEA,WAAY;AAACI,IAAAA,YAAY,EAAEA,
|
|
1
|
+
{"version":3,"file":"info-window-content-container.js","sources":["../../../../src/components/containers/maps/info-window-content-container.js"],"sourcesContent":["import React from 'react';\nimport InfoWindowContent from '~/components/modules/maps/info-window-content';\nimport { useMapList } from '~/contexts/mapListContext';\nimport { useTrackEvent } from '~/contexts/trackEventContext';\n\nconst InfoWindowContentContainer = ({\n\titem,\n\tfilterListingsByLocation\n}) => {\n\tconst { trackEvent, eventTypes } = useTrackEvent();\n\tconst { setSelectedFilters, setMobileTab, selectedFilters, siteConfig, filteredListings } = useMapList();\n\tconst fieldsShown = siteConfig.locationFiltersShown;\n\tlet items = item && item.items ? Object.values(item.items) : null;\n\n\tconst addressParts = [\n\t\titems[0].mapDetails?.address?.street,\n\t\titems[0].mapDetails?.address?.city,\n\t\titems[0].mapDetails?.address?.state,\n\t\titems[0].mapDetails?.address?.zip\n\t];\n\tconst fullAddress = addressParts.filter(Boolean).join(', ');\n\n\tconst applyFilters = () => {\n\t\tsetMobileTab(\"listTab\");\n\t\tconst newFilters = { ...selectedFilters };\n\t\tlet filters = [];\n\n\t\tif (fieldsShown.includes('cityState')) {\n\t\t\tnewFilters.cityState = { [items[0].fields.cityState]: true };\n\t\t\tfilters.push({ filterType: 'cityState', filterChecked: items[0].fields.cityState });\n\t\t}\n\n\t\tif (fieldsShown.includes('city')) {\n\t\t\tnewFilters.city = { [items[0].fields.city]: true };\n\t\t\tfilters.push({ filterType: 'city', filterChecked: items[0].fields.city });\n\t\t}\n\n\t\tif (fieldsShown.includes('state')) {\n\t\t\tnewFilters.state = { [items[0].fields.state]: true };\n\t\t\tfilters.push({ filterType: 'state', filterChecked: items[0].fields.state });\n\t\t}\n\n\t\tnewFilters.entityName = { [items[0].fields.entityName]: true };\n\t\tfilters.push({ filterType: 'entityName', filterChecked: items[0].fields.entityName });\n\n\t\ttrackEvent(eventTypes.VIEW_JOBS_AT_Location, { filtersApplied: filters });\n\t\tsetSelectedFilters(newFilters);\n\t};\n\n\treturn <InfoWindowContent items={items} fullAddress={fullAddress} applyFilters={applyFilters} mapInfoWindowConfig={siteConfig.mapInfoWindowConfig}/>;\n};\n\nexport default InfoWindowContentContainer;\n"],"names":["InfoWindowContentContainer","_ref","_items$0$mapDetails","_items$0$mapDetails2","_items$0$mapDetails3","_items$0$mapDetails4","item","filterListingsByLocation","_useTrackEvent","useTrackEvent","trackEvent","eventTypes","_useMapList","useMapList","setSelectedFilters","setMobileTab","selectedFilters","siteConfig","filteredListings","fieldsShown","locationFiltersShown","items","Object","values","addressParts","mapDetails","address","street","city","state","zip","fullAddress","filter","Boolean","join","applyFilters","newFilters","_objectSpread","filters","includes","cityState","_defineProperty","fields","push","filterType","filterChecked","entityName","VIEW_JOBS_AT_Location","filtersApplied","React","createElement","InfoWindowContent","mapInfoWindowConfig"],"mappings":"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"}
|
|
@@ -93,7 +93,6 @@ var MapContainer = function MapContainer(_ref) {
|
|
|
93
93
|
}
|
|
94
94
|
}, [filteredListings]);
|
|
95
95
|
useEffect(function () {
|
|
96
|
-
console.log("panning to new location");
|
|
97
96
|
if (!mapRef.current || !location || mapInteracted) return;
|
|
98
97
|
mapRef.current.panTo(new google.maps.LatLng(location.latitude, location.longitude));
|
|
99
98
|
if (mapRef.current) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-container.js","sources":["../../../../src/components/containers/maps/map-container.js"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\n\nimport MapMarker from \"~/components/containers/maps/map-marker-container\";\nimport PlaceMarker from \"~/components/modules/maps/place-marker\";\n\nimport { usePlaces } from \"~/contexts/placesContext\";\nimport { useMap } from \"~/contexts/mapContext\";\nimport { useMapList } from \"~/contexts/mapListContext\";\n\nimport { markerIconSelected, markerIcon, pinIcon } from \"~/util/mapIconUtil\";\n\nimport Map from \"~/components/modules/maps/map\";\nimport { MarkerClustererF } from \"@react-google-maps/api\";\nimport { clusterOptions } from \"~/util/mapUtil\";\n\nconst MapContainer = ({\n\tmarkerConfigs,\n\tinfoWindowClasses,\n\tclusterGridSize = 60\n}) => {\n\tconst {\n\t\tlocation,\n\t\tzoom,\n\t\tcenter,\n\t\tselectLocationEntity,\n\t\tsetLocation,\n\t\tmapInteracted,\n\t\tsetMapInteracted\n\t} = useMap();\n\n\tconst {\n\t\tmapItems, filteredListings, setSelectedFilters,\n\t\tsetQuery,\n\t\tsiteConfig\n\t} = useMapList();\n\n\tconst mapRef = useRef();\n\tconst markerRefs = useRef({});\n\tconst mapContainerRef = useRef(null);\n\tconst {\n\t\tpoiMarkers,\n\t\tsetCurrentCenter,\n\t\tcurrentCenter,\n\t\tsetCurrentZoom,\n\t\tcurrentZoom,\n\t\tselectedPlaceMarker,\n\t\tsetSelectedPlaceMarker,\n\t\tplacesWindow,\n\t\tsetPlacesWindow } = usePlaces();\n\n\tconst onIdle = () => {\n\t\tif (!currentCenter || !mapRef.current) return;\n\t\tconst newCenter = mapRef.current.getCenter().toJSON();\n\t\tconst newZoom = mapRef.current.zoom;\n\n\t\tsetCurrentCenter(newCenter);\n\n\t\tif (newZoom !== currentZoom) {\n\t\t\tsetCurrentZoom(newZoom);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (mapContainerRef.current) {\n\t\t\tconst handleScroll = () => {\n\t\t\t\tsetMapInteracted(true);\n\t\t\t};\n\t\t\tvar mapContainerRefCurrent = mapContainerRef.current;\n\t\t\tmapContainerRef.current.addEventListener('wheel', handleScroll);\n\t\t\treturn () => mapContainerRefCurrent.removeEventListener('wheel', handleScroll);\n\t\t}\n\t}, [mapContainerRef.current]);\n\n\tuseEffect(() => {\n\t\tif (mapRef.current) {\n\t\t\tconst mapInstance = mapRef.current;\n\t\t\tconst dragStartListener = mapInstance.addListener('dragstart', () => setMapInteracted(true));\n\t\t\tconst mouseDownListener = mapInstance.addListener('mousedown', () => setMapInteracted(true));\n\t\t\treturn () => {\n\t\t\t\tgoogle.maps.event.removeListener(dragStartListener);\n\t\t\t\tgoogle.maps.event.removeListener(mouseDownListener);\n\t\t\t};\n\t\t}\n\t}, [mapRef.current, mapContainerRef.current]);\n\n\tuseEffect(() => {\n\t\tif ((mapItems && mapItems.length > 0 || poiMarkers.length > 0) && mapRef.current) {\n\t\t\tfitBounds(mapRef.current);\n\t\t}\n\t}, [mapItems, mapRef.current, location]);\n\n\tuseEffect(() => {\n\t\tif ((mapItems && mapItems.length > 0 || poiMarkers.length > 0) && mapRef.current && mapInteracted) {\n\t\t\tfitBounds(mapRef.current, true);\n\t\t}\n\t\tif (mapRef.current) {\n\t\t\tlet currZoom = mapRef.current.zoom;\n\t\t\tlet setZoomVal = currZoom < 13 ? currZoom : 12;\n\t\t\tmapRef.current.setZoom(setZoomVal);\n\t\t}\n\t}, [filteredListings]);\n\n\tuseEffect(() => {\n\t\tconsole.log(\"panning to new location\");\n\t\tif (!mapRef.current || !location || mapInteracted) return;\n\t\tmapRef.current.panTo(\n\t\t\tnew google.maps.LatLng(location.latitude, location.longitude)\n\t\t);\n\t\tif (mapRef.current) {\n\t\t\tlet setZoomVal = zoom < 13 ? zoom : 12;\n\t\t\tmapRef.current.setZoom(setZoomVal);\n\t\t}\n\t}, [location, zoom, mapRef.current]);\n\n\tconst fitBounds = (map, overload = false) => {\n\t\tif ((mapInteracted === false || overload) && mapItems != null) {\n\t\t const bounds = new window.google.maps.LatLngBounds();\n\t\t mapItems.forEach(item => {\n\t\t\t\tbounds.extend(new google.maps.LatLng(item.latitude, item.longitude));\n\t\t });\n\t\t if(siteConfig.optionalShowLocationClusterConfig){\n\t\t\t\tlet configLocation = new google.maps.LatLng(siteConfig.optionalShowLocationClusterConfig.latitude, siteConfig.optionalShowLocationClusterConfig.longitude);\n\t\t\t\tmap.panTo(configLocation);\n\t\t\t\tbounds.extend(new google.maps.LatLng(siteConfig.optionalShowLocationClusterConfig.latitude, siteConfig.optionalShowLocationClusterConfig.longitude));\n\t\t }\n\t\t if (!map) return;\n\t\t const currentCenter = map.getCenter();\n\t\t map.fitBounds(bounds);\n\t\t const newCenter = bounds.getCenter();\n\t\t if (currentCenter && newCenter) {\n\t\t\t\tmap.panTo(newCenter);\n\t\t }\n\t\t}\n\t\tif (mapRef.current.zoom > 17) {\n\t\t mapRef.current.setZoom(16);\n\t\t}\n\t };\n\n\tconst markerClickHandler = mapLocation => {\n\t\tsetMapInteracted(true);\n\t\tselectLocationEntity(mapLocation);\n\t};\n\n\tconst onLoad = map => {\n\t\tif (!location || location === null) {\n\t\t\tmapRef.current = map;\n\t\t\tfitBounds(map, true);\n\t\t\treturn;\n\t\t}\n\t\tmapRef.current = map;\n\n\t\tif (mapInteracted === false) {\n\t\t\tmapRef.current.panTo(\n\t\t\t\tnew google.maps.LatLng(location.latitude, location.longitude)\n\t\t\t);\n\n\t\t\tmapRef.current.setZoom(zoom);\n\t\t}\n\t};\n\n\tconst pinIconUrl = pinIcon({\n\t\tfillColor: markerConfigs.fillColor,\n\t\tstrokeColor: markerConfigs.strokeColor\n\t});\n\n\tconst onClusterClick = cluster => {\n\t\tif(!siteConfig.optionalShowLocationClusterConfig || (mapRef.current.zoom > siteConfig.optionalShowLocationClusterConfig.showForZoomLevelLessThan)) {\n\t\t\tconsole.log(\"should return\");\n\t\t\treturn;\n\t\t}\n\t\tif (!cluster || typeof cluster.getMarkers !== 'function') {\n\t\t console.error('Cluster object or getMarkers method not available.');\n\t\t return;\n\t\t}\n\n\t\tconst markers = cluster.getMarkers();\n\n\t\tif (!markers || markers.length === 0) {\n\t\t console.error('No markers found in the cluster.');\n\t\t return;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t const bounds = new window.google.maps.LatLngBounds();\n\n\t\t markers.forEach(marker => {\n\t\t\t\tbounds.extend(marker.getPosition());\n\t\t });\n\n\t\t bounds.extend(new google.maps.LatLng(siteConfig.optionalShowLocationClusterConfig.latitude, siteConfig.optionalShowLocationClusterConfig.longitude));\n\n\t\t if (mapRef.current) {\n\t\t\t\tmapRef.current.fitBounds(bounds);\n\t\t }\n\t\t}, 500);\n\t };\n\n\treturn (\n\t\t<Map\n\t\t\tzoom={zoom}\n\t\t\tcenter={center}\n\t\t\tmapContainerRef={mapContainerRef}\n\t\t\tonLoad={onLoad}\n\t\t\tonIdle={onIdle}\n\t\t\tmapInteracted={mapInteracted}\n\t\t\tpinIconUrl={pinIconUrl}\n\t\t\tsetMapInteracted={setMapInteracted}\n\t\t\tfitBounds={fitBounds}\n\t\t\tmapRef={mapRef}\n\t\t\tsetQuery={setQuery}\n\t\t\tfilteredListingsLength={filteredListings.length}\n\t\t\tsetSelectedFilters={setSelectedFilters}\n\t\t>\n\t\t\t<MarkerClustererF options={clusterOptions(clusterGridSize, markerConfigs.fillColor)} onClick={onClusterClick}>\n\t\t\t\t{clusterer => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{mapItems.map(item => (\n\t\t\t\t\t\t\t<MapMarker\n\t\t\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\t\tselectedLocation={location}\n\t\t\t\t\t\t\t\tmarkerRefs={markerRefs}\n\t\t\t\t\t\t\t\tinfoWindowClasses={infoWindowClasses}\n\t\t\t\t\t\t\t\tsetSelectedLocation={setLocation}\n\t\t\t\t\t\t\t\tmarkerClickHandler={markerClickHandler}\n\t\t\t\t\t\t\t\tclusterer={clusterer}\n\t\t\t\t\t\t\t\tmarkerIcon={markerIcon(markerConfigs)}\n\t\t\t\t\t\t\t\tmarkerIconSelected={markerIconSelected(markerConfigs)}\n\t\t\t\t\t\t\t\tsetMapInteracted={setMapInteracted}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t{poiMarkers && poiMarkers.markers.map((marker, index) => (\n\t\t\t\t\t\t\t<PlaceMarker\n\t\t\t\t\t\t\t\tkey={`marker-${marker.title}-${index}`}\n\t\t\t\t\t\t\t\tmarker={marker}\n\t\t\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\t\t\tselectedPlaceMarker={selectedPlaceMarker}\n\t\t\t\t\t\t\t\tplacesWindow={placesWindow}\n\t\t\t\t\t\t\t\tsetPlacesWindow={setPlacesWindow}\n\t\t\t\t\t\t\t\tsetSelectedPlaceMarker={setSelectedPlaceMarker}\n\t\t\t\t\t\t\t />\n\t\t\t\t\t\t))}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</MarkerClustererF>\n\t\t</Map>\n\t);\n};\n\nexport default MapContainer;\n"],"names":["MapContainer","_ref","markerConfigs","infoWindowClasses","_ref$clusterGridSize","clusterGridSize","_useMap","useMap","location","zoom","center","selectLocationEntity","setLocation","mapInteracted","setMapInteracted","_useMapList","useMapList","mapItems","filteredListings","setSelectedFilters","setQuery","siteConfig","mapRef","useRef","markerRefs","mapContainerRef","_usePlaces","usePlaces","poiMarkers","setCurrentCenter","currentCenter","setCurrentZoom","currentZoom","selectedPlaceMarker","setSelectedPlaceMarker","placesWindow","setPlacesWindow","onIdle","current","newCenter","getCenter","toJSON","newZoom","useEffect","handleScroll","mapContainerRefCurrent","addEventListener","removeEventListener","mapInstance","dragStartListener","addListener","mouseDownListener","google","maps","event","removeListener","length","fitBounds","currZoom","setZoomVal","setZoom","console","log","panTo","LatLng","latitude","longitude","map","overload","arguments","undefined","bounds","window","LatLngBounds","forEach","item","extend","optionalShowLocationClusterConfig","configLocation","markerClickHandler","mapLocation","onLoad","pinIconUrl","pinIcon","fillColor","strokeColor","onClusterClick","cluster","showForZoomLevelLessThan","getMarkers","error","markers","setTimeout","marker","getPosition","React","createElement","Map","filteredListingsLength","MarkerClustererF","options","clusterOptions","onClick","clusterer","Fragment","MapMarker","key","id","selectedLocation","setSelectedLocation","markerIcon","markerIconSelected","index","PlaceMarker","concat","title"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"map-container.js","sources":["../../../../src/components/containers/maps/map-container.js"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\r\n\r\nimport MapMarker from \"~/components/containers/maps/map-marker-container\";\r\nimport PlaceMarker from \"~/components/modules/maps/place-marker\";\r\n\r\nimport { usePlaces } from \"~/contexts/placesContext\";\r\nimport { useMap } from \"~/contexts/mapContext\";\r\nimport { useMapList } from \"~/contexts/mapListContext\";\r\n\r\nimport { markerIconSelected, markerIcon, pinIcon } from \"~/util/mapIconUtil\";\r\n\r\nimport Map from \"~/components/modules/maps/map\";\r\nimport { MarkerClustererF } from \"@react-google-maps/api\";\r\nimport { clusterOptions } from \"~/util/mapUtil\";\r\n\r\nconst MapContainer = ({\r\n\tmarkerConfigs,\r\n\tinfoWindowClasses,\r\n\tclusterGridSize = 60\r\n}) => {\r\n\tconst {\r\n\t\tlocation,\r\n\t\tzoom,\r\n\t\tcenter,\r\n\t\tselectLocationEntity,\r\n\t\tsetLocation,\r\n\t\tmapInteracted,\r\n\t\tsetMapInteracted\r\n\t} = useMap();\r\n\r\n\tconst {\r\n\t\tmapItems, filteredListings, setSelectedFilters,\r\n\t\tsetQuery,\r\n\t\tsiteConfig\r\n\t} = useMapList();\r\n\r\n\tconst mapRef = useRef();\r\n\tconst markerRefs = useRef({});\r\n\tconst mapContainerRef = useRef(null);\r\n\tconst {\r\n\t\tpoiMarkers,\r\n\t\tsetCurrentCenter,\r\n\t\tcurrentCenter,\r\n\t\tsetCurrentZoom,\r\n\t\tcurrentZoom,\r\n\t\tselectedPlaceMarker,\r\n\t\tsetSelectedPlaceMarker,\r\n\t\tplacesWindow,\r\n\t\tsetPlacesWindow } = usePlaces();\r\n\r\n\tconst onIdle = () => {\r\n\t\tif (!currentCenter || !mapRef.current) return;\r\n\t\tconst newCenter = mapRef.current.getCenter().toJSON();\r\n\t\tconst newZoom = mapRef.current.zoom;\r\n\r\n\t\tsetCurrentCenter(newCenter);\r\n\r\n\t\tif (newZoom !== currentZoom) {\r\n\t\t\tsetCurrentZoom(newZoom);\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (mapContainerRef.current) {\r\n\t\t\tconst handleScroll = () => {\r\n\t\t\t\tsetMapInteracted(true);\r\n\t\t\t};\r\n\t\t\tvar mapContainerRefCurrent = mapContainerRef.current;\r\n\t\t\tmapContainerRef.current.addEventListener('wheel', handleScroll);\r\n\t\t\treturn () => mapContainerRefCurrent.removeEventListener('wheel', handleScroll);\r\n\t\t}\r\n\t}, [mapContainerRef.current]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (mapRef.current) {\r\n\t\t\tconst mapInstance = mapRef.current;\r\n\t\t\tconst dragStartListener = mapInstance.addListener('dragstart', () => setMapInteracted(true));\r\n\t\t\tconst mouseDownListener = mapInstance.addListener('mousedown', () => setMapInteracted(true));\r\n\t\t\treturn () => {\r\n\t\t\t\tgoogle.maps.event.removeListener(dragStartListener);\r\n\t\t\t\tgoogle.maps.event.removeListener(mouseDownListener);\r\n\t\t\t};\r\n\t\t}\r\n\t}, [mapRef.current, mapContainerRef.current]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif ((mapItems && mapItems.length > 0 || poiMarkers.length > 0) && mapRef.current) {\r\n\t\t\tfitBounds(mapRef.current);\r\n\t\t}\r\n\t}, [mapItems, mapRef.current, location]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif ((mapItems && mapItems.length > 0 || poiMarkers.length > 0) && mapRef.current && mapInteracted) {\r\n\t\t\tfitBounds(mapRef.current, true);\r\n\t\t}\r\n\t\tif (mapRef.current) {\r\n\t\t\tlet currZoom = mapRef.current.zoom;\r\n\t\t\tlet setZoomVal = currZoom < 13 ? currZoom : 12;\r\n\t\t\tmapRef.current.setZoom(setZoomVal);\r\n\t\t}\r\n\t}, [filteredListings]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!mapRef.current || !location || mapInteracted) return;\r\n\t\tmapRef.current.panTo(\r\n\t\t\tnew google.maps.LatLng(location.latitude, location.longitude)\r\n\t\t);\r\n\t\tif (mapRef.current) {\r\n\t\t\tlet setZoomVal = zoom < 13 ? zoom : 12;\r\n\t\t\tmapRef.current.setZoom(setZoomVal);\r\n\t\t}\r\n\t}, [location, zoom, mapRef.current]);\r\n\r\n\tconst fitBounds = (map, overload = false) => {\r\n\t\tif ((mapInteracted === false || overload) && mapItems != null) {\r\n\t\t const bounds = new window.google.maps.LatLngBounds();\r\n\t\t mapItems.forEach(item => {\r\n\t\t\t\tbounds.extend(new google.maps.LatLng(item.latitude, item.longitude));\r\n\t\t });\r\n\t\t if(siteConfig.optionalShowLocationClusterConfig){\r\n\t\t\t\tlet configLocation = new google.maps.LatLng(siteConfig.optionalShowLocationClusterConfig.latitude, siteConfig.optionalShowLocationClusterConfig.longitude);\r\n\t\t\t\tmap.panTo(configLocation);\r\n\t\t\t\tbounds.extend(new google.maps.LatLng(siteConfig.optionalShowLocationClusterConfig.latitude, siteConfig.optionalShowLocationClusterConfig.longitude));\r\n\t\t }\r\n\t\t if (!map) return;\r\n\t\t const currentCenter = map.getCenter();\r\n\t\t map.fitBounds(bounds);\r\n\t\t const newCenter = bounds.getCenter();\r\n\t\t if (currentCenter && newCenter) {\r\n\t\t\t\tmap.panTo(newCenter);\r\n\t\t }\r\n\t\t}\r\n\t\tif (mapRef.current.zoom > 17) {\r\n\t\t mapRef.current.setZoom(16);\r\n\t\t}\r\n\t };\r\n\r\n\tconst markerClickHandler = mapLocation => {\r\n\t\tsetMapInteracted(true);\r\n\t\tselectLocationEntity(mapLocation);\r\n\t};\r\n\r\n\tconst onLoad = map => {\r\n\t\tif (!location || location === null) {\r\n\t\t\tmapRef.current = map;\r\n\t\t\tfitBounds(map, true);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tmapRef.current = map;\r\n\r\n\t\tif (mapInteracted === false) {\r\n\t\t\tmapRef.current.panTo(\r\n\t\t\t\tnew google.maps.LatLng(location.latitude, location.longitude)\r\n\t\t\t);\r\n\r\n\t\t\tmapRef.current.setZoom(zoom);\r\n\t\t}\r\n\t};\r\n\r\n\tconst pinIconUrl = pinIcon({\r\n\t\tfillColor: markerConfigs.fillColor,\r\n\t\tstrokeColor: markerConfigs.strokeColor\r\n\t});\r\n\r\n\tconst onClusterClick = cluster => {\r\n\t\tif(!siteConfig.optionalShowLocationClusterConfig || (mapRef.current.zoom > siteConfig.optionalShowLocationClusterConfig.showForZoomLevelLessThan)) {\r\n\t\t\tconsole.log(\"should return\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!cluster || typeof cluster.getMarkers !== 'function') {\r\n\t\t console.error('Cluster object or getMarkers method not available.');\r\n\t\t return;\r\n\t\t}\r\n\r\n\t\tconst markers = cluster.getMarkers();\r\n\r\n\t\tif (!markers || markers.length === 0) {\r\n\t\t console.error('No markers found in the cluster.');\r\n\t\t return;\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t const bounds = new window.google.maps.LatLngBounds();\r\n\r\n\t\t markers.forEach(marker => {\r\n\t\t\t\tbounds.extend(marker.getPosition());\r\n\t\t });\r\n\r\n\t\t bounds.extend(new google.maps.LatLng(siteConfig.optionalShowLocationClusterConfig.latitude, siteConfig.optionalShowLocationClusterConfig.longitude));\r\n\r\n\t\t if (mapRef.current) {\r\n\t\t\t\tmapRef.current.fitBounds(bounds);\r\n\t\t }\r\n\t\t}, 500);\r\n\t };\r\n\r\n\treturn (\r\n\t\t<Map\r\n\t\t\tzoom={zoom}\r\n\t\t\tcenter={center}\r\n\t\t\tmapContainerRef={mapContainerRef}\r\n\t\t\tonLoad={onLoad}\r\n\t\t\tonIdle={onIdle}\r\n\t\t\tmapInteracted={mapInteracted}\r\n\t\t\tpinIconUrl={pinIconUrl}\r\n\t\t\tsetMapInteracted={setMapInteracted}\r\n\t\t\tfitBounds={fitBounds}\r\n\t\t\tmapRef={mapRef}\r\n\t\t\tsetQuery={setQuery}\r\n\t\t\tfilteredListingsLength={filteredListings.length}\r\n\t\t\tsetSelectedFilters={setSelectedFilters}\r\n\t\t>\r\n\t\t\t<MarkerClustererF options={clusterOptions(clusterGridSize, markerConfigs.fillColor)} onClick={onClusterClick}>\r\n\t\t\t\t{clusterer => (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t{mapItems.map(item => (\r\n\t\t\t\t\t\t\t<MapMarker\r\n\t\t\t\t\t\t\t\tkey={item.id}\r\n\t\t\t\t\t\t\t\titem={item}\r\n\t\t\t\t\t\t\t\tselectedLocation={location}\r\n\t\t\t\t\t\t\t\tmarkerRefs={markerRefs}\r\n\t\t\t\t\t\t\t\tinfoWindowClasses={infoWindowClasses}\r\n\t\t\t\t\t\t\t\tsetSelectedLocation={setLocation}\r\n\t\t\t\t\t\t\t\tmarkerClickHandler={markerClickHandler}\r\n\t\t\t\t\t\t\t\tclusterer={clusterer}\r\n\t\t\t\t\t\t\t\tmarkerIcon={markerIcon(markerConfigs)}\r\n\t\t\t\t\t\t\t\tmarkerIconSelected={markerIconSelected(markerConfigs)}\r\n\t\t\t\t\t\t\t\tsetMapInteracted={setMapInteracted}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t{poiMarkers && poiMarkers.markers.map((marker, index) => (\r\n\t\t\t\t\t\t\t<PlaceMarker\r\n\t\t\t\t\t\t\t\tkey={`marker-${marker.title}-${index}`}\r\n\t\t\t\t\t\t\t\tmarker={marker}\r\n\t\t\t\t\t\t\t\tindex={index}\r\n\t\t\t\t\t\t\t\tselectedPlaceMarker={selectedPlaceMarker}\r\n\t\t\t\t\t\t\t\tplacesWindow={placesWindow}\r\n\t\t\t\t\t\t\t\tsetPlacesWindow={setPlacesWindow}\r\n\t\t\t\t\t\t\t\tsetSelectedPlaceMarker={setSelectedPlaceMarker}\r\n\t\t\t\t\t\t\t />\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</>\r\n\t\t\t\t)}\r\n\t\t\t</MarkerClustererF>\r\n\t\t</Map>\r\n\t);\r\n};\r\n\r\nexport default MapContainer;\r\n"],"names":["MapContainer","_ref","markerConfigs","infoWindowClasses","_ref$clusterGridSize","clusterGridSize","_useMap","useMap","location","zoom","center","selectLocationEntity","setLocation","mapInteracted","setMapInteracted","_useMapList","useMapList","mapItems","filteredListings","setSelectedFilters","setQuery","siteConfig","mapRef","useRef","markerRefs","mapContainerRef","_usePlaces","usePlaces","poiMarkers","setCurrentCenter","currentCenter","setCurrentZoom","currentZoom","selectedPlaceMarker","setSelectedPlaceMarker","placesWindow","setPlacesWindow","onIdle","current","newCenter","getCenter","toJSON","newZoom","useEffect","handleScroll","mapContainerRefCurrent","addEventListener","removeEventListener","mapInstance","dragStartListener","addListener","mouseDownListener","google","maps","event","removeListener","length","fitBounds","currZoom","setZoomVal","setZoom","panTo","LatLng","latitude","longitude","map","overload","arguments","undefined","bounds","window","LatLngBounds","forEach","item","extend","optionalShowLocationClusterConfig","configLocation","markerClickHandler","mapLocation","onLoad","pinIconUrl","pinIcon","fillColor","strokeColor","onClusterClick","cluster","showForZoomLevelLessThan","console","log","getMarkers","error","markers","setTimeout","marker","getPosition","React","createElement","Map","filteredListingsLength","MarkerClustererF","options","clusterOptions","onClick","clusterer","Fragment","MapMarker","key","id","selectedLocation","setSelectedLocation","markerIcon","markerIconSelected","index","PlaceMarker","concat","title"],"mappings":"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"}
|
|
@@ -1,19 +1,40 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
2
|
|
|
3
3
|
var InfoWindowContent = function InfoWindowContent(_ref) {
|
|
4
|
-
var _items$0$mapDetails, _items$0$mapDetails2, _items$0$mapDetails3;
|
|
5
4
|
var items = _ref.items,
|
|
6
5
|
fullAddress = _ref.fullAddress,
|
|
7
|
-
applyFilters = _ref.applyFilters
|
|
6
|
+
applyFilters = _ref.applyFilters,
|
|
7
|
+
mapInfoWindowConfig = _ref.mapInfoWindowConfig;
|
|
8
8
|
if (!items || items.length < 0) {
|
|
9
9
|
return null;
|
|
10
10
|
}
|
|
11
|
-
var
|
|
11
|
+
var mapDetails = items[0].mapDetails;
|
|
12
|
+
var entityDisplayName = mapDetails === null || mapDetails === void 0 ? void 0 : mapDetails.entityDisplayName;
|
|
13
|
+
var address = mapDetails === null || mapDetails === void 0 ? void 0 : mapDetails.address;
|
|
14
|
+
var displayHeader = entityDisplayName;
|
|
15
|
+
var displayAddress = fullAddress;
|
|
16
|
+
if (mapInfoWindowConfig) {
|
|
17
|
+
if (mapInfoWindowConfig.entityHeaderField && mapDetails[mapInfoWindowConfig.entityHeaderField]) {
|
|
18
|
+
displayHeader = mapDetails[mapInfoWindowConfig.entityHeaderField];
|
|
19
|
+
}
|
|
20
|
+
if (mapInfoWindowConfig.showEntityAddressFields) {
|
|
21
|
+
var addressFields = mapInfoWindowConfig.showEntityAddressFields.map(function (field) {
|
|
22
|
+
return address[field];
|
|
23
|
+
}).filter(Boolean).join(', ');
|
|
24
|
+
displayAddress = addressFields;
|
|
25
|
+
}
|
|
26
|
+
} else {
|
|
27
|
+
if (!entityDisplayName.includes(address === null || address === void 0 ? void 0 : address.street) && !entityDisplayName.includes(address === null || address === void 0 ? void 0 : address.zip)) {
|
|
28
|
+
displayAddress = fullAddress;
|
|
29
|
+
} else {
|
|
30
|
+
displayAddress = '';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
12
33
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
13
34
|
className: "hc-flex-auto hc-p-2"
|
|
14
35
|
}, /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("h4", {
|
|
15
36
|
className: "hc-text-lg hc-font-bold hc-leading-tight hc-mb-3"
|
|
16
|
-
},
|
|
37
|
+
}, displayHeader), /*#__PURE__*/React__default.createElement("p", null, displayAddress), /*#__PURE__*/React__default.createElement("div", {
|
|
17
38
|
className: "hc-pt-2"
|
|
18
39
|
}, /*#__PURE__*/React__default.createElement("button", {
|
|
19
40
|
className: "hc-cursor-pointer hover:hc-opacity-70 hc-text-primary",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info-window-content.js","sources":["../../../../src/components/modules/maps/info-window-content.js"],"sourcesContent":["import React from 'react';\
|
|
1
|
+
{"version":3,"file":"info-window-content.js","sources":["../../../../src/components/modules/maps/info-window-content.js"],"sourcesContent":["import React from 'react';\n\nconst InfoWindowContent = ({\n\titems,\n\tfullAddress,\n\tapplyFilters,\n\tmapInfoWindowConfig\n}) => {\n\tif (!items || items.length < 0) {\n\t\treturn null;\n\t}\n\n\tlet mapDetails = items[0].mapDetails;\n\tlet entityDisplayName = mapDetails?.entityDisplayName;\n\tlet address = mapDetails?.address;\n\n\tlet displayHeader = entityDisplayName;\n\tlet displayAddress = fullAddress;\n\n\tif (mapInfoWindowConfig) {\n\t\tif (mapInfoWindowConfig.entityHeaderField && mapDetails[mapInfoWindowConfig.entityHeaderField]) {\n\t\t\tdisplayHeader = mapDetails[mapInfoWindowConfig.entityHeaderField];\n\t\t}\n\n\t\tif (mapInfoWindowConfig.showEntityAddressFields) {\n\t\t\tconst addressFields = mapInfoWindowConfig.showEntityAddressFields\n\t\t\t\t.map(field => address[field])\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(', ');\n\t\t\tdisplayAddress = addressFields;\n\t\t}\n\t} else {\n\t\tif (!entityDisplayName.includes(address?.street) && !entityDisplayName.includes(address?.zip)) {\n\t\t\tdisplayAddress = fullAddress;\n\t\t} else {\n\t\t\tdisplayAddress = '';\n\t\t}\n\t}\n\n\treturn (\n\t\t<div className=\"hc-flex-auto hc-p-2\">\n\t\t\t<div>\n\t\t\t\t<div>\n\t\t\t\t\t<h4 className=\"hc-text-lg hc-font-bold hc-leading-tight hc-mb-3\">\n\t\t\t\t\t\t{displayHeader}\n\t\t\t\t\t</h4>\n\t\t\t\t\t<p>{displayAddress}</p>\n\t\t\t\t\t<div className=\"hc-pt-2\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclassName=\"hc-cursor-pointer hover:hc-opacity-70 hc-text-primary\"\n\t\t\t\t\t\t\tonClick={applyFilters}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{items.length > 1\n\t\t\t\t\t\t\t\t? `View All ${items.length} jobs at this location`\n\t\t\t\t\t\t\t\t: `View job at this location`}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default InfoWindowContent;\n"],"names":["InfoWindowContent","_ref","items","fullAddress","applyFilters","mapInfoWindowConfig","length","mapDetails","entityDisplayName","address","displayHeader","displayAddress","entityHeaderField","showEntityAddressFields","addressFields","map","field","filter","Boolean","join","includes","street","zip","React","createElement","className","onClick","concat"],"mappings":"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"}
|
|
@@ -133,7 +133,7 @@ const MapListProvider = ({ children, siteConfig, resetFilters, navigateToDetails
|
|
|
133
133
|
if (tempSelectedFilters) {
|
|
134
134
|
const keys = Object.keys(tempSelectedFilters);
|
|
135
135
|
const lastKey = keys[keys.length - 1];
|
|
136
|
-
const options = generateFilterOptions(firstLoad ? allListings : filteredListings, allListings, siteConfig, filterOptions, lastKey, favorites);
|
|
136
|
+
const options = generateFilterOptions(firstLoad ? allListings : filteredListings, allListings, siteConfig, filterOptions, lastKey, favorites, tempSelectedFilters);
|
|
137
137
|
if (options) {
|
|
138
138
|
setFilterOptions(options);
|
|
139
139
|
if (firstLoad)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapListContext.js","sources":["../../src/contexts/mapListContext.tsx"],"sourcesContent":["import React, { createContext, useState, useEffect, useContext, ReactNode } from 'react';\n\nimport { generateFilterOptions, applyFilters, filterListingsByLocation } from '~/util/filterUtil';\nimport { getStorageObject, setStorageObject } from '~/util/localStorageUtil';\nimport { updateURLWithFilters, filtersFromURL } from '~/util/urlFilterUtil';\n\nimport { getListingEntities } from \"~/services/listingEntityService\";\nimport fetchListings from '~/services/listingAggregatorService';\n\nimport { Listing } from '~/types/Listings';\nimport { ListingEntity } from '~/types/ListingEntity';\nimport { Recruiter } from '~/types/Recruiter';\nimport { MapConfig, MapConfig as SiteConfig } from '~/types/config/MapConfig';\n\ninterface MapListContextProps {\n loading: boolean;\n allListings: Listing[];\n filteredListings: Listing[];\n mapItems: any;\n query: string | null;\n setNewFilteredListings: (filteredListings: Listing[]) => void;\n setQuery: (query: string | null) => void;\n listingEntities: Record<number, ListingEntity> | null;\n selectedFilters: Record<string, any>;\n setSelectedFilters: (filters: Record<string, any>) => void;\n filterOptions: any;\n recruiters: Record<number, Recruiter>;\n handleFilterListingsByLocation: (selectedLocation: any) => void;\n filterDialogIsOpen: boolean;\n setFilterDialogIsOpen: (isOpen: boolean) => void;\n setMobileTab: (tab: string) => void;\n mobileTab: string;\n siteConfig: SiteConfig;\n favorites: number[];\n resetEntityFilter: () => void;\n handleSettingFavorites: (favorites: number[] | null) => void;\n setFilterByFavorites: (filter: boolean) => void;\n filterByFavorites: boolean;\n commuteLocation: any | null;\n setCommuteLocation: (location: any | null) => void;\n navigateToDetails: (id: number) => void;\n navigateToEasyApply: (id: number) => void;\n Link: React.ComponentType<any>;\n linkFormat: string;\n sortSetting: { field: string; type: string };\n setSortSetting: (setting: { field: string; type: string }) => void;\n trackEvent: (event: string) => void;\n}\n\nconst MapListContext = createContext<MapListContextProps | undefined>(undefined);\n\nexport const useMapList = () => {\n\tconst context = useContext(MapListContext);\n\tif (!context) {\n\t\tthrow new Error('useMapList must be used within a MapListProvider');\n\t}\n\treturn context;\n};\n\nconst getQuery = (): string | null => {\n\tlet query: string | null = null;\n\tif (typeof window !== 'undefined') {\n\t\tquery = localStorage.getItem('query');\n\t}\n\treturn query;\n};\n\ninterface MapListProviderProps {\n children: ReactNode;\n siteConfig: MapConfig;\n resetFilters: boolean;\n navigateToDetails: (id: number) => void;\n navigateToEasyApply: (id: number) => void;\n Link: React.ComponentType<any>;\n linkFormat: string;\n trackEvent: (event: string) => void;\n listings?: Listing[];\n setFiltersUrl?:boolean;\n handleUrlUpdate: (searchParams: string) => void;\n}\n\nexport const MapListProvider: React.FC<MapListProviderProps> = ({\n\tchildren,\n\tsiteConfig,\n\tresetFilters,\n\tnavigateToDetails,\n\tnavigateToEasyApply,\n\tLink,\n\tlinkFormat,\n\ttrackEvent,\n\tlistings = [],\n\tsetFiltersUrl,\n\thandleUrlUpdate,\n}) => {\n\tconst firstLoadFilters = () =>{\n\t\tlet urlFilters = filtersFromURL(window.location)?.filters;\n\t\treturn (setFiltersUrl === true && urlFilters && Object.keys(urlFilters).length > 0) ? urlFilters : getStorageObject('selectedFilters', {}) || {}\n\t}\n\tconst [allListings, setAllListings] = useState<Listing[]>([]);\n\tconst [filteredListings, setFilteredListings] = useState<Listing[]>([]);\n\tconst [loading, setLoading] = useState<boolean>(false);\n\tconst [mapItems, setMapItems] = useState<any>(getStorageObject('mapItems', []) || []);\n\tconst [query, setQuery] = useState<string | null>(() => resetFilters ? null : getQuery());\n\tconst [sortSetting, setSortSetting] = useState<{ field: string; type: string }>(getStorageObject('sortSetting', { field: 'position', type: 'asc' }) || { field: 'position', type: 'asc' });\n\tconst [listingEntities, setListingEntities] = useState<Record<number, ListingEntity> | null>({});\n\tconst [firstLoad, setFirstLoad] = useState<boolean>(true);\n\tconst [commuteLocation, setCommuteLocation] = useState<any | null>(getStorageObject('commuteLocation'));\n\tconst [selectedFilters, setSelectedFilters] = useState<Record<string, any>>(() => resetFilters ? {} : firstLoadFilters());\n\tconst [filterOptions, setFilterOptions] = useState<any>();\n\tconst [recruiters, setRecruiters] = useState<Record<number, Recruiter>>({});\n\tconst [filterDialogIsOpen, setFilterDialogIsOpen] = useState<boolean>(false);\n\tconst [mobileTab, setMobileTab] = useState<string>(\"listTab\");\n\tconst [favorites, setFavorites] = useState<number[]>([]);\n\tconst [filterByFavorites, setFilterByFavorites] = useState<boolean>(false);\n\n\tconst setNewFilteredListings = (filteredListings: Listing[]) => {\n\t\tsetFilteredListings(filteredListings);\n\t};\n\n\n\n\tuseEffect(() => {\n\t\tif (!sortSetting) return;\n\t\tlocalStorage.setItem('sortSetting', JSON.stringify(sortSetting));\n\t\tsetNewFilteredListings(filteredListings);\n\t}, [sortSetting]);\n\n\tuseEffect(() => {\n\t\tconst loadedFavorites = JSON.parse(localStorage.getItem('favorites') || '[]');\n\t\tsetFavorites(loadedFavorites);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tsetStorageObject(\"commuteLocation\", commuteLocation);\n\t}, [commuteLocation]);\n\n\tuseEffect(() => {\n\t\tif (!commuteLocation) return;\n\n\t\tasync function fetchEntities() {\n\t\t\tconst distinctEntityIds = [\n\t\t\t\t...new Set(allListings.map(listing => listing.entityId ?? -1))\n\t\t\t];\n\t\t\ttry {\n\t\t\t\tconst fetchedEntities = await getListingEntities(\n\t\t\t\t\tdistinctEntityIds,\n\t\t\t\t\t`${commuteLocation.lat}, ${commuteLocation.lng}`\n\t\t\t\t);\n\t\t\t\tsetListingEntities(fetchedEntities);\n\t\t\t\tconst newFilteredListings: Listing[] = [...filteredListings] ?? [];\n\t\t\t\tfor (let i = 0; i < allListings.length; i++) {\n\t\t\t\t\tconst listing = newFilteredListings[i];\n\t\t\t\t\tif (\n\t\t\t\t\t\tlisting &&\n\t\t\t\t\t\tlisting.fields &&\n\t\t\t\t\t\tlisting.entityId !== undefined &&\n\t\t\t\t\t\tlisting.entityId !== -1\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst entityId = listing.entityId;\n\t\t\t\t\t\tconst travelTime = fetchedEntities[entityId]?.travelTime;\n\n\t\t\t\t\t\tif (travelTime !== undefined && listing.fields) {\n\t\t\t\t\t\t\tlisting.fields.travelTime = travelTime;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"Failed to fetch listing entities:\", error);\n\t\t\t}\n\t\t}\n\n\t\tfetchEntities();\n\t}, [commuteLocation, allListings, siteConfig.companyId]);\n\n\tuseEffect(() => {\n\t\tconst handleFetchListings = async () => {\n\t\t\tif (!getStorageObject('listings') ?? [].length) {\n\t\t\t\tsetLoading(true);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst {\n\t\t\t\t\tlistingsResult,\n\t\t\t\t\tfetchedRecruiters,\n\t\t\t\t\tfetchedEntities,\n\t\t\t\t\tdistinctItems\n\t\t\t\t} = await fetchListings(query ?? '', siteConfig, commuteLocation);\n\t\t\t\tsetAllListings(listingsResult);\n\t\t\t\tsetRecruiters(fetchedRecruiters);\n\t\t\t\tsetListingEntities(fetchedEntities);\n\t\t\t\tsetMapItems(distinctItems);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.log(error);\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t};\n\t\thandleFetchListings();\n\t}, [query, siteConfig]);\n\n\tuseEffect(() => {\n\t\tconst processListings = () => {\n\t\t\tlet filteredListings: Listing[];\n\t\t\tlet tempSelectedFilters = selectedFilters;\n\t\t\tlet tempQuery = query;\n\n\t\t\tconst { mapItems, filteredListings: tempFilteredListings } = applyFilters(\n\t\t\t\tallListings,\n\t\t\t\ttempSelectedFilters,\n\t\t\t\ttempQuery,\n\t\t\t\tlistingEntities,\n\t\t\t\tfavorites,\n\t\t\t\tsiteConfig\n\t\t\t);\n\t\t\tfilteredListings = tempFilteredListings;\n\n\t\t\tif (filterByFavorites) {\n\t\t\t\tfilteredListings = filteredListings.filter((x: Listing) => favorites.includes(x.id));\n\t\t\t}\n\t\t\tsetNewFilteredListings(filteredListings);\n\t\t\tif (firstLoad && tempSelectedFilters) {\n\t\t\t\t// Update URL with filters if needed\n\t\t\t} else if (Object.keys(tempSelectedFilters).length === 0 && !firstLoad) {\n\t\t\t\tlocalStorage.removeItem('selectedFilters');\n\t\t\t} else if (!firstLoad) {\n\t\t\t\tsetStorageObject('selectedFilters', tempSelectedFilters);\n\t\t\t}\n\t\t\tif(setFiltersUrl === true)\n\t\t\t{\n\t\t\t\tupdateURLWithFilters(tempSelectedFilters, window.location, tempQuery, handleUrlUpdate);\n\t\t\t}\n\t\t\ttempQuery != null ? localStorage.setItem('query', tempQuery) : localStorage.removeItem('query');\n\t\t\tsetMapItems(mapItems);\n\n\t\t\tif (tempSelectedFilters) {\n\t\t\t\tconst keys = Object.keys(tempSelectedFilters);\n\t\t\t\tconst lastKey = keys[keys.length - 1];\n\t\t\t\tconst options = generateFilterOptions(\n\t\t\t\t\tfirstLoad ? allListings : filteredListings,\n\t\t\t\t\tallListings,\n\t\t\t\t\tsiteConfig,\n\t\t\t\t\tfilterOptions,\n\t\t\t\t\tlastKey,\n\t\t\t\t\tfavorites\n\t\t\t\t);\n\t\t\t\tif (options) {\n\t\t\t\t\tsetFilterOptions(options);\n\t\t\t\t\tif (firstLoad) setFirstLoad(false);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tprocessListings();\n\t}, [selectedFilters, query, listingEntities, filterByFavorites, favorites]);\n\n\tconst handleFilterListingsByLocation = (selectedLocation: any) => {\n\t\tconst { filteredListings } = filterListingsByLocation(\n\t\t\tallListings,\n\t\t\tselectedLocation,\n\t\t\tlistingEntities\n\t\t);\n\t\tsetNewFilteredListings(filteredListings);\n\t};\n\n\tconst resetEntityFilter = () => {\n\t\tlet newFilters = {...selectedFilters};\n\t\tdelete newFilters.entityId;\n\t\tsetSelectedFilters(newFilters);\n\t}\n\n\tconst handleSettingFavorites = (newFavorites: number[] | null) => {\n\t\tif (newFavorites == null) {\n\t\t\tlocalStorage.removeItem('favorites');\n\t\t} else {\n\t\t\tsetFavorites(newFavorites);\n\t\t\tlocalStorage.setItem('favorites', JSON.stringify(newFavorites));\n\t\t}\n\t};\n\n\treturn (\n\t\t<MapListContext.Provider value={{\n\t\t\tloading,\n\t\t\tallListings,\n\t\t\tfilteredListings,\n\t\t\tmapItems,\n\t\t\tquery,\n\t\t\tsetNewFilteredListings,\n\t\t\tsetQuery,\n\t\t\tlistingEntities,\n\t\t\tselectedFilters,\n\t\t\tsetSelectedFilters,\n\t\t\tfilterOptions,\n\t\t\trecruiters,\n\t\t\thandleFilterListingsByLocation,\n\t\t\tfilterDialogIsOpen,\n\t\t\tsetFilterDialogIsOpen,\n\t\t\tsetMobileTab,\n\t\t\tmobileTab,\n\t\t\tsiteConfig,\n\t\t\tfavorites,\n\t\t\thandleSettingFavorites,\n\t\t\tresetEntityFilter,\n\t\t\tsetFilterByFavorites,\n\t\t\tfilterByFavorites,\n\t\t\tcommuteLocation,\n\t\t\tsetCommuteLocation,\n\t\t\tnavigateToDetails,\n\t\t\tnavigateToEasyApply,\n\t\t\tLink,\n\t\t\tlinkFormat,\n\t\t\tsortSetting,\n\t\t\tsetSortSetting,\n\t\t\ttrackEvent\n\t\t}}>\n\t\t\t{children}\n\t\t</MapListContext.Provider>\n\t);\n};\n"],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mapListContext.js","sources":["../../src/contexts/mapListContext.tsx"],"sourcesContent":["import React, { createContext, useState, useEffect, useContext, ReactNode } from 'react';\n\nimport { generateFilterOptions, applyFilters, filterListingsByLocation } from '~/util/filterUtil';\nimport { getStorageObject, setStorageObject } from '~/util/localStorageUtil';\nimport { updateURLWithFilters, filtersFromURL } from '~/util/urlFilterUtil';\n\nimport { getListingEntities } from \"~/services/listingEntityService\";\nimport fetchListings from '~/services/listingAggregatorService';\n\nimport { Listing } from '~/types/Listings';\nimport { ListingEntity } from '~/types/ListingEntity';\nimport { Recruiter } from '~/types/Recruiter';\nimport { MapConfig, MapConfig as SiteConfig } from '~/types/config/MapConfig';\n\ninterface MapListContextProps {\n loading: boolean;\n allListings: Listing[];\n filteredListings: Listing[];\n mapItems: any;\n query: string | null;\n setNewFilteredListings: (filteredListings: Listing[]) => void;\n setQuery: (query: string | null) => void;\n listingEntities: Record<number, ListingEntity> | null;\n selectedFilters: Record<string, any>;\n setSelectedFilters: (filters: Record<string, any>) => void;\n filterOptions: any;\n recruiters: Record<number, Recruiter>;\n handleFilterListingsByLocation: (selectedLocation: any) => void;\n filterDialogIsOpen: boolean;\n setFilterDialogIsOpen: (isOpen: boolean) => void;\n setMobileTab: (tab: string) => void;\n mobileTab: string;\n siteConfig: SiteConfig;\n favorites: number[];\n resetEntityFilter: () => void;\n handleSettingFavorites: (favorites: number[] | null) => void;\n setFilterByFavorites: (filter: boolean) => void;\n filterByFavorites: boolean;\n commuteLocation: any | null;\n setCommuteLocation: (location: any | null) => void;\n navigateToDetails: (id: number) => void;\n navigateToEasyApply: (id: number) => void;\n Link: React.ComponentType<any>;\n linkFormat: string;\n sortSetting: { field: string; type: string };\n setSortSetting: (setting: { field: string; type: string }) => void;\n trackEvent: (event: string) => void;\n}\n\nconst MapListContext = createContext<MapListContextProps | undefined>(undefined);\n\nexport const useMapList = () => {\n\tconst context = useContext(MapListContext);\n\tif (!context) {\n\t\tthrow new Error('useMapList must be used within a MapListProvider');\n\t}\n\treturn context;\n};\n\nconst getQuery = (): string | null => {\n\tlet query: string | null = null;\n\tif (typeof window !== 'undefined') {\n\t\tquery = localStorage.getItem('query');\n\t}\n\treturn query;\n};\n\ninterface MapListProviderProps {\n children: ReactNode;\n siteConfig: MapConfig;\n resetFilters: boolean;\n navigateToDetails: (id: number) => void;\n navigateToEasyApply: (id: number) => void;\n Link: React.ComponentType<any>;\n linkFormat: string;\n trackEvent: (event: string) => void;\n listings?: Listing[];\n setFiltersUrl?:boolean;\n handleUrlUpdate: (searchParams: string) => void;\n}\n\nexport const MapListProvider: React.FC<MapListProviderProps> = ({\n\tchildren,\n\tsiteConfig,\n\tresetFilters,\n\tnavigateToDetails,\n\tnavigateToEasyApply,\n\tLink,\n\tlinkFormat,\n\ttrackEvent,\n\tlistings = [],\n\tsetFiltersUrl,\n\thandleUrlUpdate,\n}) => {\n\tconst firstLoadFilters = () =>{\n\t\tlet urlFilters = filtersFromURL(window.location)?.filters;\n\t\treturn (setFiltersUrl === true && urlFilters && Object.keys(urlFilters).length > 0) ? urlFilters : getStorageObject('selectedFilters', {}) || {}\n\t}\n\tconst [allListings, setAllListings] = useState<Listing[]>([]);\n\tconst [filteredListings, setFilteredListings] = useState<Listing[]>([]);\n\tconst [loading, setLoading] = useState<boolean>(false);\n\tconst [mapItems, setMapItems] = useState<any>(getStorageObject('mapItems', []) || []);\n\tconst [query, setQuery] = useState<string | null>(() => resetFilters ? null : getQuery());\n\tconst [sortSetting, setSortSetting] = useState<{ field: string; type: string }>(getStorageObject('sortSetting', { field: 'position', type: 'asc' }) || { field: 'position', type: 'asc' });\n\tconst [listingEntities, setListingEntities] = useState<Record<number, ListingEntity> | null>({});\n\tconst [firstLoad, setFirstLoad] = useState<boolean>(true);\n\tconst [commuteLocation, setCommuteLocation] = useState<any | null>(getStorageObject('commuteLocation'));\n\tconst [selectedFilters, setSelectedFilters] = useState<Record<string, any>>(() => resetFilters ? {} : firstLoadFilters());\n\tconst [filterOptions, setFilterOptions] = useState<any>();\n\tconst [recruiters, setRecruiters] = useState<Record<number, Recruiter>>({});\n\tconst [filterDialogIsOpen, setFilterDialogIsOpen] = useState<boolean>(false);\n\tconst [mobileTab, setMobileTab] = useState<string>(\"listTab\");\n\tconst [favorites, setFavorites] = useState<number[]>([]);\n\tconst [filterByFavorites, setFilterByFavorites] = useState<boolean>(false);\n\n\tconst setNewFilteredListings = (filteredListings: Listing[]) => {\n\t\tsetFilteredListings(filteredListings);\n\t};\n\n\n\n\tuseEffect(() => {\n\t\tif (!sortSetting) return;\n\t\tlocalStorage.setItem('sortSetting', JSON.stringify(sortSetting));\n\t\tsetNewFilteredListings(filteredListings);\n\t}, [sortSetting]);\n\n\tuseEffect(() => {\n\t\tconst loadedFavorites = JSON.parse(localStorage.getItem('favorites') || '[]');\n\t\tsetFavorites(loadedFavorites);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tsetStorageObject(\"commuteLocation\", commuteLocation);\n\t}, [commuteLocation]);\n\n\tuseEffect(() => {\n\t\tif (!commuteLocation) return;\n\n\t\tasync function fetchEntities() {\n\t\t\tconst distinctEntityIds = [\n\t\t\t\t...new Set(allListings.map(listing => listing.entityId ?? -1))\n\t\t\t];\n\t\t\ttry {\n\t\t\t\tconst fetchedEntities = await getListingEntities(\n\t\t\t\t\tdistinctEntityIds,\n\t\t\t\t\t`${commuteLocation.lat}, ${commuteLocation.lng}`\n\t\t\t\t);\n\t\t\t\tsetListingEntities(fetchedEntities);\n\t\t\t\tconst newFilteredListings: Listing[] = [...filteredListings] ?? [];\n\t\t\t\tfor (let i = 0; i < allListings.length; i++) {\n\t\t\t\t\tconst listing = newFilteredListings[i];\n\t\t\t\t\tif (\n\t\t\t\t\t\tlisting &&\n\t\t\t\t\t\tlisting.fields &&\n\t\t\t\t\t\tlisting.entityId !== undefined &&\n\t\t\t\t\t\tlisting.entityId !== -1\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst entityId = listing.entityId;\n\t\t\t\t\t\tconst travelTime = fetchedEntities[entityId]?.travelTime;\n\n\t\t\t\t\t\tif (travelTime !== undefined && listing.fields) {\n\t\t\t\t\t\t\tlisting.fields.travelTime = travelTime;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"Failed to fetch listing entities:\", error);\n\t\t\t}\n\t\t}\n\n\t\tfetchEntities();\n\t}, [commuteLocation, allListings, siteConfig.companyId]);\n\n\tuseEffect(() => {\n\t\tconst handleFetchListings = async () => {\n\t\t\tif (!getStorageObject('listings') ?? [].length) {\n\t\t\t\tsetLoading(true);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst {\n\t\t\t\t\tlistingsResult,\n\t\t\t\t\tfetchedRecruiters,\n\t\t\t\t\tfetchedEntities,\n\t\t\t\t\tdistinctItems\n\t\t\t\t} = await fetchListings(query ?? '', siteConfig, commuteLocation);\n\t\t\t\tsetAllListings(listingsResult);\n\t\t\t\tsetRecruiters(fetchedRecruiters);\n\t\t\t\tsetListingEntities(fetchedEntities);\n\t\t\t\tsetMapItems(distinctItems);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.log(error);\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t};\n\t\thandleFetchListings();\n\t}, [query, siteConfig]);\n\n\tuseEffect(() => {\n\t\tconst processListings = () => {\n\t\t\tlet filteredListings: Listing[];\n\t\t\tlet tempSelectedFilters = selectedFilters;\n\t\t\tlet tempQuery = query;\n\n\t\t\tconst { mapItems, filteredListings: tempFilteredListings } = applyFilters(\n\t\t\t\tallListings,\n\t\t\t\ttempSelectedFilters,\n\t\t\t\ttempQuery,\n\t\t\t\tlistingEntities,\n\t\t\t\tfavorites,\n\t\t\t\tsiteConfig\n\t\t\t);\n\t\t\tfilteredListings = tempFilteredListings;\n\n\t\t\tif (filterByFavorites) {\n\t\t\t\tfilteredListings = filteredListings.filter((x: Listing) => favorites.includes(x.id));\n\t\t\t}\n\t\t\tsetNewFilteredListings(filteredListings);\n\t\t\tif (firstLoad && tempSelectedFilters) {\n\t\t\t\t// Update URL with filters if needed\n\t\t\t} else if (Object.keys(tempSelectedFilters).length === 0 && !firstLoad) {\n\t\t\t\tlocalStorage.removeItem('selectedFilters');\n\t\t\t} else if (!firstLoad) {\n\t\t\t\tsetStorageObject('selectedFilters', tempSelectedFilters);\n\t\t\t}\n\t\t\tif(setFiltersUrl === true)\n\t\t\t{\n\t\t\t\tupdateURLWithFilters(tempSelectedFilters, window.location, tempQuery, handleUrlUpdate);\n\t\t\t}\n\t\t\ttempQuery != null ? localStorage.setItem('query', tempQuery) : localStorage.removeItem('query');\n\t\t\tsetMapItems(mapItems);\n\n\t\t\tif (tempSelectedFilters) {\n\t\t\t\tconst keys = Object.keys(tempSelectedFilters);\n\t\t\t\tconst lastKey = keys[keys.length - 1];\n\t\t\t\tconst options = generateFilterOptions(\n\t\t\t\t\tfirstLoad ? allListings : filteredListings,\n\t\t\t\t\tallListings,\n\t\t\t\t\tsiteConfig,\n\t\t\t\t\tfilterOptions,\n\t\t\t\t\tlastKey,\n\t\t\t\t\tfavorites,\n\t\t\t\t\ttempSelectedFilters\n\t\t\t\t);\n\t\t\t\tif (options) {\n\t\t\t\t\tsetFilterOptions(options);\n\t\t\t\t\tif (firstLoad) setFirstLoad(false);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tprocessListings();\n\t}, [selectedFilters, query, listingEntities, filterByFavorites, favorites]);\n\n\tconst handleFilterListingsByLocation = (selectedLocation: any) => {\n\t\tconst { filteredListings } = filterListingsByLocation(\n\t\t\tallListings,\n\t\t\tselectedLocation,\n\t\t\tlistingEntities\n\t\t);\n\t\tsetNewFilteredListings(filteredListings);\n\t};\n\n\tconst resetEntityFilter = () => {\n\t\tlet newFilters = {...selectedFilters};\n\t\tdelete newFilters.entityId;\n\t\tsetSelectedFilters(newFilters);\n\t}\n\n\tconst handleSettingFavorites = (newFavorites: number[] | null) => {\n\t\tif (newFavorites == null) {\n\t\t\tlocalStorage.removeItem('favorites');\n\t\t} else {\n\t\t\tsetFavorites(newFavorites);\n\t\t\tlocalStorage.setItem('favorites', JSON.stringify(newFavorites));\n\t\t}\n\t};\n\n\treturn (\n\t\t<MapListContext.Provider value={{\n\t\t\tloading,\n\t\t\tallListings,\n\t\t\tfilteredListings,\n\t\t\tmapItems,\n\t\t\tquery,\n\t\t\tsetNewFilteredListings,\n\t\t\tsetQuery,\n\t\t\tlistingEntities,\n\t\t\tselectedFilters,\n\t\t\tsetSelectedFilters,\n\t\t\tfilterOptions,\n\t\t\trecruiters,\n\t\t\thandleFilterListingsByLocation,\n\t\t\tfilterDialogIsOpen,\n\t\t\tsetFilterDialogIsOpen,\n\t\t\tsetMobileTab,\n\t\t\tmobileTab,\n\t\t\tsiteConfig,\n\t\t\tfavorites,\n\t\t\thandleSettingFavorites,\n\t\t\tresetEntityFilter,\n\t\t\tsetFilterByFavorites,\n\t\t\tfilterByFavorites,\n\t\t\tcommuteLocation,\n\t\t\tsetCommuteLocation,\n\t\t\tnavigateToDetails,\n\t\t\tnavigateToEasyApply,\n\t\t\tLink,\n\t\t\tlinkFormat,\n\t\t\tsortSetting,\n\t\t\tsetSortSetting,\n\t\t\ttrackEvent\n\t\t}}>\n\t\t\t{children}\n\t\t</MapListContext.Provider>\n\t);\n};\n"],"names":["React"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ export function getSpecialFeatureOptions(listings: any, filteredListings: any, s
|
|
|
6
6
|
name: string;
|
|
7
7
|
count: any;
|
|
8
8
|
}[];
|
|
9
|
-
export function generateFilterOptions(filteredListings: any, allListings: any, siteConfig: any, filterOptions: any, parentField: any, favorites: any): {
|
|
9
|
+
export function generateFilterOptions(filteredListings: any, allListings: any, siteConfig: any, filterOptions: any, parentField: any, favorites: any, selectedFilters: any): {
|
|
10
10
|
filters: any;
|
|
11
11
|
locations: any;
|
|
12
12
|
pointsOfInterest: {
|
package/dist/util/filterUtil.js
CHANGED
|
@@ -83,7 +83,7 @@ var getPointsOfInterestOptions = function getPointsOfInterestOptions(pointsOfInt
|
|
|
83
83
|
};
|
|
84
84
|
});
|
|
85
85
|
};
|
|
86
|
-
var generateFilterOptions = function generateFilterOptions(filteredListings, allListings, siteConfig, filterOptions, parentField, favorites) {
|
|
86
|
+
var generateFilterOptions = function generateFilterOptions(filteredListings, allListings, siteConfig, filterOptions, parentField, favorites, selectedFilters) {
|
|
87
87
|
if (allListings.length > 0) {
|
|
88
88
|
var dynamicFilters = siteConfig.fieldFiltersShown.map(function (fieldName) {
|
|
89
89
|
if (fieldName === parentField && filterOptions !== null && filterOptions !== void 0 && filterOptions.filters) {
|
|
@@ -135,6 +135,29 @@ var generateFilterOptions = function generateFilterOptions(filteredListings, all
|
|
|
135
135
|
items: getFilterOptions(allListings, filteredByLocation, fieldName, true)
|
|
136
136
|
};
|
|
137
137
|
}
|
|
138
|
+
if (fieldName == 'city') {
|
|
139
|
+
console.log(selectedFilters.state);
|
|
140
|
+
console.log(selectedFilters);
|
|
141
|
+
if (siteConfig.locationFiltersShown.includes('state') && selectedFilters.state) {
|
|
142
|
+
var stateMatches = _toConsumableArray(new Set(filteredListings.map(function (listing) {
|
|
143
|
+
return listing.fields.state;
|
|
144
|
+
})));
|
|
145
|
+
var _filteredByLocation = allListings.filter(function (listing) {
|
|
146
|
+
return stateMatches.includes(listing.fields.state);
|
|
147
|
+
});
|
|
148
|
+
return {
|
|
149
|
+
id: fieldName,
|
|
150
|
+
title: siteConfig.fieldNames[fieldName],
|
|
151
|
+
items: getFilterOptions(allListings, _filteredByLocation, fieldName, true)
|
|
152
|
+
};
|
|
153
|
+
} else {
|
|
154
|
+
return {
|
|
155
|
+
id: fieldName,
|
|
156
|
+
title: siteConfig.fieldNames[fieldName],
|
|
157
|
+
items: getFilterOptions(allListings, allListings, fieldName, true)
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
}
|
|
138
161
|
return {
|
|
139
162
|
id: fieldName,
|
|
140
163
|
title: siteConfig.fieldNames[fieldName],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterUtil.js","sources":["../../src/util/filterUtil.js"],"sourcesContent":["/* eslint-disable no-undef */\nimport { getDistinctItemsByProximity } from '~/util/mapUtil';\n\nimport Fuse from 'fuse.js';\n\nexport const getFilterOptions = (listings, filteredListings, field, excludeZeroCount = null) => {\n\tconst options = new Set();\n\tlistings.forEach(listing => {\n\t\tif (listing.fields[field]) {\n\t\t\toptions.add(listing.fields[field]);\n\t\t}\n\t});\n\n\tconst optionCounts = {};\n\toptions.forEach(option => {\n\t\toptionCounts[option] = 0;\n\t});\n\n\tfilteredListings.forEach(listing => {\n\t\tconst value = listing.fields[field];\n\t\tif (value && optionCounts.hasOwnProperty(value)) {\n\t\t\toptionCounts[value] += 1;\n\t\t}\n\t});\n\n\treturn Array.from(options)\n\t\t.sort()\n\t\t.map(option => ({\n\t\t\tname: option,\n\t\t\tcount: optionCounts[option] || 0\n\t\t}))\n\t\t.filter(option => !(excludeZeroCount === true && option.count === 0));\n};\n\nexport const getSpecialFeatureOptions = (listings, filteredListings, siteConfig, favorites) => {\n\tconst specialFeatures = siteConfig.specialFeatures;\n\tconst featureCounts = Object.keys(specialFeatures).sort().reduce((acc, key) => {\n\t\tacc[specialFeatures[key]] = 0;\n\t\treturn acc;\n\t}, {});\n\n\tfilteredListings.forEach(listing => {\n\t\tObject.entries(specialFeatures).forEach(([featureKey, featureName]) => {\n\t\t\tif (listing.fields[featureKey] == 1) {\n\t\t\t\tfeatureCounts[featureName] += 1;\n\t\t\t}\n\t\t});\n\t});\n\n\tconst specialFeatureOptions = Object.entries(featureCounts).map(([name, count]) => ({\n\t\tname,\n\t\tcount\n\t}));\n\n\tfor (let option of specialFeatureOptions) {\n\t\tif (option.name === 'Favorite') {\n\t\t\toption.count = filteredListings.filter(x => favorites.includes(x.id)).length;\n\t\t}\n\t}\n\n\treturn specialFeatureOptions;\n};\n\nconst getPointsOfInterestOptions = pointsOfInterestNames => {\n\treturn Object.entries(pointsOfInterestNames).sort().map(([key, name]) => ({\n\t\tkey,\n\t\tname\n\t}));\n};\n\nexport const generateFilterOptions = (\n\tfilteredListings,\n\tallListings,\n\tsiteConfig,\n\tfilterOptions,\n\tparentField,\n\tfavorites\n) => {\n\tif (allListings.length > 0) {\n\t\tconst dynamicFilters = siteConfig.fieldFiltersShown.map(fieldName => {\n\t\t\tif (fieldName === parentField && filterOptions?.filters) {\n\t\t\t\treturn filterOptions.filters.find(filter => filter.id === fieldName);\n\t\t\t}\n\t\t\tif (fieldName == \"specialFeatures\") {\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getSpecialFeatureOptions(allListings, filteredListings, siteConfig, favorites).sort()\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tid: fieldName,\n\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\titems: getFilterOptions(allListings, filteredListings, fieldName)\n\t\t\t};\n\t\t});\n\n\t\tconst locations =\n\t\t\tsiteConfig.locationFiltersShown.map((fieldName, index) => {\n\t\t\t\tif (index === 0 && filterOptions?.locations) {\n\t\t\t\t\treturn filterOptions.locations.find(filter => filter.id === fieldName);\n\t\t\t\t}\n\t\t\t\t if (fieldName === 'entityName' && filterOptions?.locations) {\n\t\t\t\t\tconst cityIncluded = siteConfig.locationFiltersShown.includes('city');\n\t\t\t\t\tconst stateIncluded = siteConfig.locationFiltersShown.includes('state');\n\t\t\t\t\tconst cityStateIncluded = siteConfig.locationFiltersShown.includes('cityState');\n\t\t\t\t\tconst uniqueCities = cityIncluded ? [...new Set(filteredListings.map(listing => listing.fields.city))] : [];\n\t\t\t\t\tconst uniqueStates = stateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.state))] : [];\n\t\t\t\t\tconst uniqueCityStates = cityStateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.cityState))] : [];\n\t\t\t\t\tconst filteredByLocation = allListings.filter(listing => {\n\t\t\t\t\t\tconst cityMatches = cityIncluded ? uniqueCities.includes(listing.fields.city) : true;\n\t\t\t\t\t\tconst stateMatches = stateIncluded ? uniqueStates.includes(listing.fields.state) : true;\n\t\t\t\t\t\tconst cityStateMatches = cityStateIncluded ? uniqueCityStates.includes(listing.fields.cityState) : true;\n\t\t\t\t\t\treturn cityMatches && stateMatches && cityStateMatches;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: fieldName,\n\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\t\titems: getFilterOptions(allListings, filteredByLocation, fieldName, true)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getFilterOptions(allListings, filteredListings, fieldName, true)\n\t\t\t\t};\n\t\t\t});\n\n\t\tconst pointsOfInterest = {\n\t\t\tid: \"pointsOfInterest\",\n\t\t\ttitle: siteConfig.pointsOfInterestConfig.title,\n\t\t\titems: getPointsOfInterestOptions(\n\t\t\t\tsiteConfig.pointsOfInterestConfig.pointsOfInterestNames\n\t\t\t)\n\t\t};\n\n\t\treturn {\n\t\t\tfilters: dynamicFilters,\n\t\t\tlocations: locations,\n\t\t\tpointsOfInterest: pointsOfInterest\n\t\t};\n\t}\n\n\treturn null;\n};\n\nexport const applyFilters = (\n\tallListings,\n\tselectedFilters,\n\tquery,\n\tlistingEntities,\n\tfavorites,\n\tsiteConfig\n) => {\n\tlet results = allListings;\n\tlet invertedSpecialFeaturesMap;\n\tif (siteConfig.specialFeatures) {\n\t\tinvertedSpecialFeaturesMap = Object.entries(siteConfig.specialFeatures).reduce((acc, [key, value]) => {\n\t\t\tacc[value] = key;\n\t\t\treturn acc;\n\t\t}, {});\n\n\t}\n\tconst hasFavorite = !!selectedFilters.specialFeatures && !!selectedFilters.specialFeatures.Favorite;\n\n\tif (hasFavorite && selectedFilters.specialFeatures.Favorite == true) {\n\t\tresults = results.filter(x => favorites.includes(x.id));\n\t}\n\tvar favorite;\n\tif (hasFavorite) {\n\t\tfavorite = selectedFilters.specialFeatures.Favorite;\n\t\tdelete selectedFilters.specialFeatures.Favorite;\n\t}\n\tfor (const [field, filterItems] of Object.entries(selectedFilters)) {\n\t\tconst formattedField = field;\n\t\tif (field === \"pointsOfInterest\") continue;\n\t\tif (field === \"specialFeatures\" && invertedSpecialFeaturesMap && Object.keys(filterItems).length > 0) {\n\t\t\tresults = results.filter(listing => {\n\t\t\t\treturn Object.entries(filterItems).some(([filterName, filterValue]) => {\n\t\t\t\t\tconst listingFieldName = invertedSpecialFeaturesMap[filterName];\n\t\t\t\t\treturn filterValue && listing.fields[listingFieldName] == 1;\n\t\t\t\t});\n\t\t\t});\n\t\t} else if (Object.keys(filterItems).length > 0) {\n\t\t\tresults = results.filter(listing =>\n\t\t\t\tfilterItems.hasOwnProperty(listing.fields[formattedField])\n\t\t\t);\n\t\t}\n\t}\n\tif (query) {\n\t\tresults = searchResults(results, query);\n\t}\n\tconst distinctItems = getDistinctItemsByProximity(results, listingEntities);\n\tif (hasFavorite) {\n\t\tselectedFilters.specialFeatures.Favorite = favorite;\n\t}\n\treturn { filteredListings: results, mapItems: distinctItems };\n};\n\nfunction searchResults(results, query) {\n\tconst fields = [\n\t\t'id',\n\t\t'fields.posted',\n\t\t'fields.subtitle',\n\t\t'fields.education',\n\t\t'fields.position',\n\t\t'fields.category',\n\t\t'fields.categoryclass',\n\t\t'fields.shift',\n\t\t'fields.citystate',\n\t\t'fields.city',\n\t\t'fields.state',\n\t\t'fields.schedule',\n\t\t'fields.customflag1',\n\t\t'fields.bonus',\n\t\t'fields.remote',\n\t\t'fields.useclientjoburl',\n\t\t'fields.datecreated',\n\t\t'fields.datelastedited'\n\t];\n\n\tconst options = {\n\t\tincludeScore: true,\n\t\tthreshold: 0.3,\n\t\tkeys: fields\n\t};\n\n\tconst fuse = new Fuse(results, options);\n\tconst lowerCaseQuery = query.toLowerCase();\n\tconst queryTerms = lowerCaseQuery.split(' ');\n\n\tconst exactIdMatch = results.find(result => result.id.toString() === query);\n\tif (exactIdMatch) {\n\t\treturn [exactIdMatch];\n\t}\n\n\tconst fuseQuery = queryTerms.map(term => ({\n\t\t$or: fields.map(field => ({ [field]: term }))\n\t}));\n\n\tconst fuseResults = fuse.search({ $and: fuseQuery });\n\n\treturn fuseResults.map(result => result.item);\n}\n\nexport const filterListingsByLocation = (\n\tallListings,\n\tselectedLocation,\n\tlistingEntities\n) => {\n\tlet results = allListings;\n\tif (selectedLocation !== null) {\n\t\tresults = results.filter(item =>\n\t\t\tselectedLocation.items.hasOwnProperty(item.id)\n\t\t);\n\t}\n\tconst mapItems = getDistinctItemsByProximity(results, listingEntities);\n\treturn { filteredListings: results, mapItems: mapItems };\n};\n"],"names":["getFilterOptions","listings","filteredListings","field","excludeZeroCount","arguments","length","undefined","options","Set","forEach","listing","fields","add","optionCounts","option","value","hasOwnProperty","Array","from","sort","map","name","count","filter","getSpecialFeatureOptions","siteConfig","favorites","specialFeatures","featureCounts","Object","keys","reduce","acc","key","entries","_ref","_ref2","_slicedToArray","featureKey","featureName","specialFeatureOptions","_ref3","_ref4","_iterator","_createForOfIteratorHelper","_step","s","n","done","x","includes","id","err","e","f","getPointsOfInterestOptions","pointsOfInterestNames","_ref5","_ref6","generateFilterOptions","allListings","filterOptions","parentField","dynamicFilters","fieldFiltersShown","fieldName","filters","find","title","fieldNames","items","locations","locationFiltersShown","index","cityIncluded","stateIncluded","cityStateIncluded","uniqueCities","_toConsumableArray","city","uniqueStates","state","uniqueCityStates","cityState","filteredByLocation","cityMatches","stateMatches","cityStateMatches","pointsOfInterest","pointsOfInterestConfig","applyFilters","selectedFilters","query","listingEntities","results","invertedSpecialFeaturesMap","_ref7","_ref8","hasFavorite","Favorite","favorite","_loop","_Object$entries$_i","_Object$entries","_i","filterItems","formattedField","some","_ref9","_ref10","filterName","filterValue","listingFieldName","searchResults","distinctItems","getDistinctItemsByProximity","mapItems","includeScore","threshold","fuse","Fuse","lowerCaseQuery","toLowerCase","queryTerms","split","exactIdMatch","result","toString","fuseQuery","term","$or","_defineProperty","fuseResults","search","$and","item","filterListingsByLocation","selectedLocation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filterUtil.js","sources":["../../src/util/filterUtil.js"],"sourcesContent":["/* eslint-disable no-undef */\nimport { getDistinctItemsByProximity } from '~/util/mapUtil';\n\nimport Fuse from 'fuse.js';\n\nexport const getFilterOptions = (listings, filteredListings, field, excludeZeroCount = null) => {\n\tconst options = new Set();\n\tlistings.forEach(listing => {\n\t\tif (listing.fields[field]) {\n\t\t\toptions.add(listing.fields[field]);\n\t\t}\n\t});\n\n\tconst optionCounts = {};\n\toptions.forEach(option => {\n\t\toptionCounts[option] = 0;\n\t});\n\n\tfilteredListings.forEach(listing => {\n\t\tconst value = listing.fields[field];\n\t\tif (value && optionCounts.hasOwnProperty(value)) {\n\t\t\toptionCounts[value] += 1;\n\t\t}\n\t});\n\n\treturn Array.from(options)\n\t\t.sort()\n\t\t.map(option => ({\n\t\t\tname: option,\n\t\t\tcount: optionCounts[option] || 0\n\t\t}))\n\t\t.filter(option => !(excludeZeroCount === true && option.count === 0));\n};\n\nexport const getSpecialFeatureOptions = (listings, filteredListings, siteConfig, favorites) => {\n\tconst specialFeatures = siteConfig.specialFeatures;\n\tconst featureCounts = Object.keys(specialFeatures).sort().reduce((acc, key) => {\n\t\tacc[specialFeatures[key]] = 0;\n\t\treturn acc;\n\t}, {});\n\n\tfilteredListings.forEach(listing => {\n\t\tObject.entries(specialFeatures).forEach(([featureKey, featureName]) => {\n\t\t\tif (listing.fields[featureKey] == 1) {\n\t\t\t\tfeatureCounts[featureName] += 1;\n\t\t\t}\n\t\t});\n\t});\n\n\tconst specialFeatureOptions = Object.entries(featureCounts).map(([name, count]) => ({\n\t\tname,\n\t\tcount\n\t}));\n\n\tfor (let option of specialFeatureOptions) {\n\t\tif (option.name === 'Favorite') {\n\t\t\toption.count = filteredListings.filter(x => favorites.includes(x.id)).length;\n\t\t}\n\t}\n\n\treturn specialFeatureOptions;\n};\n\nconst getPointsOfInterestOptions = pointsOfInterestNames => {\n\treturn Object.entries(pointsOfInterestNames).sort().map(([key, name]) => ({\n\t\tkey,\n\t\tname\n\t}));\n};\n\nexport const generateFilterOptions = (\n\tfilteredListings,\n\tallListings,\n\tsiteConfig,\n\tfilterOptions,\n\tparentField,\n\tfavorites,\n\tselectedFilters\n) => {\n\tif (allListings.length > 0) {\n\t\tconst dynamicFilters = siteConfig.fieldFiltersShown.map(fieldName => {\n\t\t\tif (fieldName === parentField && filterOptions?.filters) {\n\t\t\t\treturn filterOptions.filters.find(filter => filter.id === fieldName);\n\t\t\t}\n\t\t\tif (fieldName == \"specialFeatures\") {\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getSpecialFeatureOptions(allListings, filteredListings, siteConfig, favorites).sort()\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tid: fieldName,\n\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\titems: getFilterOptions(allListings, filteredListings, fieldName)\n\t\t\t};\n\t\t});\n\n\t\tconst locations =\n\t\t\tsiteConfig.locationFiltersShown.map((fieldName, index) => {\n\t\t\t\tif (index === 0 && filterOptions?.locations) {\n\t\t\t\t\treturn filterOptions.locations.find(filter => filter.id === fieldName);\n\t\t\t\t}\n\t\t\t\t if (fieldName === 'entityName' && filterOptions?.locations) {\n\t\t\t\t\tconst cityIncluded = siteConfig.locationFiltersShown.includes('city');\n\t\t\t\t\tconst stateIncluded = siteConfig.locationFiltersShown.includes('state');\n\t\t\t\t\tconst cityStateIncluded = siteConfig.locationFiltersShown.includes('cityState');\n\t\t\t\t\tconst uniqueCities = cityIncluded ? [...new Set(filteredListings.map(listing => listing.fields.city))] : [];\n\t\t\t\t\tconst uniqueStates = stateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.state))] : [];\n\t\t\t\t\tconst uniqueCityStates = cityStateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.cityState))] : [];\n\t\t\t\t\tconst filteredByLocation = allListings.filter(listing => {\n\t\t\t\t\t\tconst cityMatches = cityIncluded ? uniqueCities.includes(listing.fields.city) : true;\n\t\t\t\t\t\tconst stateMatches = stateIncluded ? uniqueStates.includes(listing.fields.state) : true;\n\t\t\t\t\t\tconst cityStateMatches = cityStateIncluded ? uniqueCityStates.includes(listing.fields.cityState) : true;\n\t\t\t\t\t\treturn cityMatches && stateMatches && cityStateMatches;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: fieldName,\n\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\t\titems: getFilterOptions(allListings, filteredByLocation, fieldName, true)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif(fieldName == 'city'){\n\t\t\t\t\tconsole.log(selectedFilters.state);\n\t\t\t\t\tconsole.log(selectedFilters);\n\t\t\t\t\tif(siteConfig.locationFiltersShown.includes('state') && selectedFilters.state){\n\t\t\t\t\t\tconst stateMatches = [...new Set(filteredListings.map(listing => listing.fields.state))];\n\t\t\t\t\t\tconst filteredByLocation = allListings.filter(listing => stateMatches.includes(listing.fields.state));\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: fieldName,\n\t\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\t\t\titems: getFilterOptions(allListings, filteredByLocation, fieldName, true)\n\t\t\t\t\t\t};\n\t\t\t\t\t}else{\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: fieldName,\n\t\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\t\t\titems: getFilterOptions(allListings, allListings, fieldName, true)\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getFilterOptions(allListings, filteredListings, fieldName, true)\n\t\t\t\t};\n\t\t\t});\n\n\t\tconst pointsOfInterest = {\n\t\t\tid: \"pointsOfInterest\",\n\t\t\ttitle: siteConfig.pointsOfInterestConfig.title,\n\t\t\titems: getPointsOfInterestOptions(\n\t\t\t\tsiteConfig.pointsOfInterestConfig.pointsOfInterestNames\n\t\t\t)\n\t\t};\n\n\t\treturn {\n\t\t\tfilters: dynamicFilters,\n\t\t\tlocations: locations,\n\t\t\tpointsOfInterest: pointsOfInterest\n\t\t};\n\t}\n\n\treturn null;\n};\n\nexport const applyFilters = (\n\tallListings,\n\tselectedFilters,\n\tquery,\n\tlistingEntities,\n\tfavorites,\n\tsiteConfig\n) => {\n\tlet results = allListings;\n\tlet invertedSpecialFeaturesMap;\n\tif (siteConfig.specialFeatures) {\n\t\tinvertedSpecialFeaturesMap = Object.entries(siteConfig.specialFeatures).reduce((acc, [key, value]) => {\n\t\t\tacc[value] = key;\n\t\t\treturn acc;\n\t\t}, {});\n\n\t}\n\tconst hasFavorite = !!selectedFilters.specialFeatures && !!selectedFilters.specialFeatures.Favorite;\n\n\tif (hasFavorite && selectedFilters.specialFeatures.Favorite == true) {\n\t\tresults = results.filter(x => favorites.includes(x.id));\n\t}\n\tvar favorite;\n\tif (hasFavorite) {\n\t\tfavorite = selectedFilters.specialFeatures.Favorite;\n\t\tdelete selectedFilters.specialFeatures.Favorite;\n\t}\n\tfor (const [field, filterItems] of Object.entries(selectedFilters)) {\n\t\tconst formattedField = field;\n\t\tif (field === \"pointsOfInterest\") continue;\n\t\tif (field === \"specialFeatures\" && invertedSpecialFeaturesMap && Object.keys(filterItems).length > 0) {\n\t\t\tresults = results.filter(listing => {\n\t\t\t\treturn Object.entries(filterItems).some(([filterName, filterValue]) => {\n\t\t\t\t\tconst listingFieldName = invertedSpecialFeaturesMap[filterName];\n\t\t\t\t\treturn filterValue && listing.fields[listingFieldName] == 1;\n\t\t\t\t});\n\t\t\t});\n\t\t} else if (Object.keys(filterItems).length > 0) {\n\t\t\tresults = results.filter(listing =>\n\t\t\t\tfilterItems.hasOwnProperty(listing.fields[formattedField])\n\t\t\t);\n\t\t}\n\t}\n\tif (query) {\n\t\tresults = searchResults(results, query);\n\t}\n\tconst distinctItems = getDistinctItemsByProximity(results, listingEntities);\n\tif (hasFavorite) {\n\t\tselectedFilters.specialFeatures.Favorite = favorite;\n\t}\n\treturn { filteredListings: results, mapItems: distinctItems };\n};\n\nfunction searchResults(results, query) {\n\tconst fields = [\n\t\t'id',\n\t\t'fields.posted',\n\t\t'fields.subtitle',\n\t\t'fields.education',\n\t\t'fields.position',\n\t\t'fields.category',\n\t\t'fields.categoryclass',\n\t\t'fields.shift',\n\t\t'fields.citystate',\n\t\t'fields.city',\n\t\t'fields.state',\n\t\t'fields.schedule',\n\t\t'fields.customflag1',\n\t\t'fields.bonus',\n\t\t'fields.remote',\n\t\t'fields.useclientjoburl',\n\t\t'fields.datecreated',\n\t\t'fields.datelastedited'\n\t];\n\n\tconst options = {\n\t\tincludeScore: true,\n\t\tthreshold: 0.3,\n\t\tkeys: fields\n\t};\n\n\tconst fuse = new Fuse(results, options);\n\tconst lowerCaseQuery = query.toLowerCase();\n\tconst queryTerms = lowerCaseQuery.split(' ');\n\n\tconst exactIdMatch = results.find(result => result.id.toString() === query);\n\tif (exactIdMatch) {\n\t\treturn [exactIdMatch];\n\t}\n\n\tconst fuseQuery = queryTerms.map(term => ({\n\t\t$or: fields.map(field => ({ [field]: term }))\n\t}));\n\n\tconst fuseResults = fuse.search({ $and: fuseQuery });\n\n\treturn fuseResults.map(result => result.item);\n}\n\nexport const filterListingsByLocation = (\n\tallListings,\n\tselectedLocation,\n\tlistingEntities\n) => {\n\tlet results = allListings;\n\tif (selectedLocation !== null) {\n\t\tresults = results.filter(item =>\n\t\t\tselectedLocation.items.hasOwnProperty(item.id)\n\t\t);\n\t}\n\tconst mapItems = getDistinctItemsByProximity(results, listingEntities);\n\treturn { filteredListings: results, mapItems: mapItems };\n};\n"],"names":["getFilterOptions","listings","filteredListings","field","excludeZeroCount","arguments","length","undefined","options","Set","forEach","listing","fields","add","optionCounts","option","value","hasOwnProperty","Array","from","sort","map","name","count","filter","getSpecialFeatureOptions","siteConfig","favorites","specialFeatures","featureCounts","Object","keys","reduce","acc","key","entries","_ref","_ref2","_slicedToArray","featureKey","featureName","specialFeatureOptions","_ref3","_ref4","_iterator","_createForOfIteratorHelper","_step","s","n","done","x","includes","id","err","e","f","getPointsOfInterestOptions","pointsOfInterestNames","_ref5","_ref6","generateFilterOptions","allListings","filterOptions","parentField","selectedFilters","dynamicFilters","fieldFiltersShown","fieldName","filters","find","title","fieldNames","items","locations","locationFiltersShown","index","cityIncluded","stateIncluded","cityStateIncluded","uniqueCities","_toConsumableArray","city","uniqueStates","state","uniqueCityStates","cityState","filteredByLocation","cityMatches","stateMatches","cityStateMatches","console","log","pointsOfInterest","pointsOfInterestConfig","applyFilters","query","listingEntities","results","invertedSpecialFeaturesMap","_ref7","_ref8","hasFavorite","Favorite","favorite","_loop","_Object$entries$_i","_Object$entries","_i","filterItems","formattedField","some","_ref9","_ref10","filterName","filterValue","listingFieldName","searchResults","distinctItems","getDistinctItemsByProximity","mapItems","includeScore","threshold","fuse","Fuse","lowerCaseQuery","toLowerCase","queryTerms","split","exactIdMatch","result","toString","fuseQuery","term","$or","_defineProperty","fuseResults","search","$and","item","filterListingsByLocation","selectedLocation"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -47,7 +47,7 @@ const InfoWindowContentContainer = ({
|
|
|
47
47
|
setSelectedFilters(newFilters);
|
|
48
48
|
};
|
|
49
49
|
|
|
50
|
-
return <InfoWindowContent items={items} fullAddress={fullAddress} applyFilters={applyFilters} />;
|
|
50
|
+
return <InfoWindowContent items={items} fullAddress={fullAddress} applyFilters={applyFilters} mapInfoWindowConfig={siteConfig.mapInfoWindowConfig}/>;
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
export default InfoWindowContentContainer;
|
|
@@ -1,36 +1,64 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
const InfoWindowContent = ({
|
|
4
|
-
items,
|
|
5
|
-
fullAddress,
|
|
6
|
-
applyFilters
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
const InfoWindowContent = ({
|
|
4
|
+
items,
|
|
5
|
+
fullAddress,
|
|
6
|
+
applyFilters,
|
|
7
|
+
mapInfoWindowConfig
|
|
8
|
+
}) => {
|
|
9
|
+
if (!items || items.length < 0) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
let mapDetails = items[0].mapDetails;
|
|
14
|
+
let entityDisplayName = mapDetails?.entityDisplayName;
|
|
15
|
+
let address = mapDetails?.address;
|
|
16
|
+
|
|
17
|
+
let displayHeader = entityDisplayName;
|
|
18
|
+
let displayAddress = fullAddress;
|
|
19
|
+
|
|
20
|
+
if (mapInfoWindowConfig) {
|
|
21
|
+
if (mapInfoWindowConfig.entityHeaderField && mapDetails[mapInfoWindowConfig.entityHeaderField]) {
|
|
22
|
+
displayHeader = mapDetails[mapInfoWindowConfig.entityHeaderField];
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (mapInfoWindowConfig.showEntityAddressFields) {
|
|
26
|
+
const addressFields = mapInfoWindowConfig.showEntityAddressFields
|
|
27
|
+
.map(field => address[field])
|
|
28
|
+
.filter(Boolean)
|
|
29
|
+
.join(', ');
|
|
30
|
+
displayAddress = addressFields;
|
|
31
|
+
}
|
|
32
|
+
} else {
|
|
33
|
+
if (!entityDisplayName.includes(address?.street) && !entityDisplayName.includes(address?.zip)) {
|
|
34
|
+
displayAddress = fullAddress;
|
|
35
|
+
} else {
|
|
36
|
+
displayAddress = '';
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return (
|
|
41
|
+
<div className="hc-flex-auto hc-p-2">
|
|
42
|
+
<div>
|
|
43
|
+
<div>
|
|
44
|
+
<h4 className="hc-text-lg hc-font-bold hc-leading-tight hc-mb-3">
|
|
45
|
+
{displayHeader}
|
|
46
|
+
</h4>
|
|
47
|
+
<p>{displayAddress}</p>
|
|
48
|
+
<div className="hc-pt-2">
|
|
49
|
+
<button
|
|
50
|
+
className="hc-cursor-pointer hover:hc-opacity-70 hc-text-primary"
|
|
51
|
+
onClick={applyFilters}
|
|
52
|
+
>
|
|
53
|
+
{items.length > 1
|
|
54
|
+
? `View All ${items.length} jobs at this location`
|
|
55
|
+
: `View job at this location`}
|
|
56
|
+
</button>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
);
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export default InfoWindowContent;
|
package/src/util/filterUtil.js
CHANGED
|
@@ -74,7 +74,8 @@ export const generateFilterOptions = (
|
|
|
74
74
|
siteConfig,
|
|
75
75
|
filterOptions,
|
|
76
76
|
parentField,
|
|
77
|
-
favorites
|
|
77
|
+
favorites,
|
|
78
|
+
selectedFilters
|
|
78
79
|
) => {
|
|
79
80
|
if (allListings.length > 0) {
|
|
80
81
|
const dynamicFilters = siteConfig.fieldFiltersShown.map(fieldName => {
|
|
@@ -119,6 +120,26 @@ export const generateFilterOptions = (
|
|
|
119
120
|
items: getFilterOptions(allListings, filteredByLocation, fieldName, true)
|
|
120
121
|
};
|
|
121
122
|
}
|
|
123
|
+
if(fieldName == 'city'){
|
|
124
|
+
console.log(selectedFilters.state);
|
|
125
|
+
console.log(selectedFilters);
|
|
126
|
+
if(siteConfig.locationFiltersShown.includes('state') && selectedFilters.state){
|
|
127
|
+
const stateMatches = [...new Set(filteredListings.map(listing => listing.fields.state))];
|
|
128
|
+
const filteredByLocation = allListings.filter(listing => stateMatches.includes(listing.fields.state));
|
|
129
|
+
return {
|
|
130
|
+
id: fieldName,
|
|
131
|
+
title: siteConfig.fieldNames[fieldName],
|
|
132
|
+
items: getFilterOptions(allListings, filteredByLocation, fieldName, true)
|
|
133
|
+
};
|
|
134
|
+
}else{
|
|
135
|
+
return {
|
|
136
|
+
id: fieldName,
|
|
137
|
+
title: siteConfig.fieldNames[fieldName],
|
|
138
|
+
items: getFilterOptions(allListings, allListings, fieldName, true)
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
122
143
|
return {
|
|
123
144
|
id: fieldName,
|
|
124
145
|
title: siteConfig.fieldNames[fieldName],
|