@abcagency/hc-ui-components 1.9.34 → 1.9.36
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/_virtual/jsx-runtime.js +4 -0
- package/dist/_virtual/jsx-runtime.js.map +1 -0
- package/dist/_virtual/react-jsx-runtime.production.min.js +4 -0
- package/dist/_virtual/react-jsx-runtime.production.min.js.map +1 -0
- package/dist/apis/hcApi.js +91 -0
- package/dist/apis/hcApi.js.map +1 -0
- package/dist/clientToken.js +10 -0
- package/dist/clientToken.js.map +1 -0
- package/dist/components/HireControlMap.js +175 -203
- package/dist/components/HireControlMap.js.map +1 -1
- package/dist/components/containers/accordions/filter-container.js +9 -22
- package/dist/components/containers/accordions/filter-container.js.map +1 -1
- package/dist/components/containers/accordions/filter-item-container.js +11 -16
- package/dist/components/containers/accordions/filter-item-container.js.map +1 -1
- package/dist/components/containers/accordions/map-accordion-item-container.js +12 -37
- package/dist/components/containers/accordions/map-accordion-item-container.js.map +1 -1
- package/dist/components/containers/filter/commute-container.js +7 -18
- package/dist/components/containers/filter/commute-container.js.map +1 -1
- package/dist/components/containers/filter/filter-container.js +16 -12
- package/dist/components/containers/filter/filter-container.js.map +1 -1
- package/dist/components/containers/filter/filter-item-container.js +28 -44
- package/dist/components/containers/filter/filter-item-container.js.map +1 -1
- package/dist/components/containers/filter/location-container.js +7 -15
- package/dist/components/containers/filter/location-container.js.map +1 -1
- package/dist/components/containers/filter/points-of-interest-container.js +8 -21
- package/dist/components/containers/filter/points-of-interest-container.js.map +1 -1
- package/dist/components/containers/filter/points-of-interest-radio-item-container.js +3 -6
- package/dist/components/containers/filter/points-of-interest-radio-item-container.js.map +1 -1
- package/dist/components/containers/filter/search-container.js +4 -11
- package/dist/components/containers/filter/search-container.js.map +1 -1
- package/dist/components/containers/jobListing/listing-details-container.js +5 -10
- package/dist/components/containers/jobListing/listing-details-container.js.map +1 -1
- package/dist/components/containers/list/item-list-container.js +15 -22
- package/dist/components/containers/list/item-list-container.js.map +1 -1
- package/dist/components/containers/list/list-item/list-item-container.js +5 -16
- package/dist/components/containers/list/list-item/list-item-container.js.map +1 -1
- package/dist/components/containers/maps/info-window-content-container.js +3 -6
- package/dist/components/containers/maps/info-window-content-container.js.map +1 -1
- package/dist/components/containers/maps/map-container.js +28 -106
- package/dist/components/containers/maps/map-container.js.map +1 -1
- package/dist/components/containers/maps/map-list-container.js +7 -35
- package/dist/components/containers/maps/map-list-container.js.map +1 -1
- package/dist/components/containers/maps/map-marker-container.js +8 -11
- package/dist/components/containers/maps/map-marker-container.js.map +1 -1
- package/dist/components/modules/accordions/MapAccordionItem.js +5 -5
- package/dist/components/modules/accordions/MapAccordionItem.js.map +1 -1
- package/dist/components/modules/accordions/default.js +15 -15
- package/dist/components/modules/accordions/default.js.map +1 -1
- package/dist/components/modules/accordions/filterItem.js +7 -12
- package/dist/components/modules/accordions/filterItem.js.map +1 -1
- package/dist/components/modules/accordions/filters.js +7 -17
- package/dist/components/modules/accordions/filters.js.map +1 -1
- package/dist/components/modules/buttons/button-group-apply.js +19 -20
- package/dist/components/modules/buttons/button-group-apply.js.map +1 -1
- package/dist/components/modules/buttons/default.js +9 -9
- package/dist/components/modules/buttons/default.js.map +1 -1
- package/dist/components/modules/buttons/items-pill.js +2 -2
- package/dist/components/modules/buttons/items-pill.js.map +1 -1
- package/dist/components/modules/buttons/pill-wrapper.js +3 -4
- package/dist/components/modules/buttons/pill-wrapper.js.map +1 -1
- package/dist/components/modules/buttons/show-all-button.js +3 -3
- package/dist/components/modules/buttons/show-all-button.js.map +1 -1
- package/dist/components/modules/cards/default.js +11 -11
- package/dist/components/modules/cards/default.js.map +1 -1
- package/dist/components/modules/cards/filter.js +5 -5
- package/dist/components/modules/cards/filter.js.map +1 -1
- package/dist/components/modules/dialogs/apply-dialog.js +19 -19
- package/dist/components/modules/dialogs/apply-dialog.js.map +1 -1
- package/dist/components/modules/filter/commute.js +20 -21
- package/dist/components/modules/filter/commute.js.map +1 -1
- package/dist/components/modules/filter/index.js +30 -122
- package/dist/components/modules/filter/index.js.map +1 -1
- package/dist/components/modules/filter/item.js +9 -15
- package/dist/components/modules/filter/item.js.map +1 -1
- package/dist/components/modules/filter/location.js +6 -6
- package/dist/components/modules/filter/location.js.map +1 -1
- package/dist/components/modules/filter/radio-item.js +6 -6
- package/dist/components/modules/filter/radio-item.js.map +1 -1
- package/dist/components/modules/filter/search.js +11 -16
- package/dist/components/modules/filter/search.js.map +1 -1
- package/dist/components/modules/filter/sort.js +28 -28
- package/dist/components/modules/filter/sort.js.map +1 -1
- package/dist/components/modules/grid.js +4 -4
- package/dist/components/modules/grid.js.map +1 -1
- package/dist/components/modules/icon.js +4 -4
- package/dist/components/modules/icon.js.map +1 -1
- package/dist/components/modules/jobListing/listing-details.js +5 -8
- package/dist/components/modules/jobListing/listing-details.js.map +1 -1
- package/dist/components/modules/list/field-mapper-desktop.js +14 -38
- package/dist/components/modules/list/field-mapper-desktop.js.map +1 -1
- package/dist/components/modules/list/field-mapper-mobile.js +63 -94
- package/dist/components/modules/list/field-mapper-mobile.js.map +1 -1
- package/dist/components/modules/list/header-item.js +7 -7
- package/dist/components/modules/list/header-item.js.map +1 -1
- package/dist/components/modules/list/header.js +5 -5
- package/dist/components/modules/list/header.js.map +1 -1
- package/dist/components/modules/list/item-expand-card/index.js +3 -3
- package/dist/components/modules/list/item-expand-card/index.js.map +1 -1
- package/dist/components/modules/list/item-list.js +18 -15
- package/dist/components/modules/list/item-list.js.map +1 -1
- package/dist/components/modules/list/list-item/list-item.js +18 -95
- package/dist/components/modules/list/list-item/list-item.js.map +1 -1
- package/dist/components/modules/maps/info-window-card.js +2 -2
- package/dist/components/modules/maps/info-window-card.js.map +1 -1
- package/dist/components/modules/maps/info-window-content.js +5 -5
- package/dist/components/modules/maps/info-window-content.js.map +1 -1
- package/dist/components/modules/maps/map-list.js +5 -5
- package/dist/components/modules/maps/map-list.js.map +1 -1
- package/dist/components/modules/maps/map-marker.js +3 -3
- package/dist/components/modules/maps/map-marker.js.map +1 -1
- package/dist/components/modules/maps/map.js +5 -17
- package/dist/components/modules/maps/map.js.map +1 -1
- package/dist/components/modules/maps/place-marker.js +5 -5
- package/dist/components/modules/maps/place-marker.js.map +1 -1
- package/dist/components/modules/maps/tabs.js +25 -25
- package/dist/components/modules/maps/tabs.js.map +1 -1
- package/dist/contexts/componentContext.js +68 -6
- package/dist/contexts/componentContext.js.map +1 -1
- package/dist/contexts/mapContext.js +20 -49
- package/dist/contexts/mapContext.js.map +1 -1
- package/dist/contexts/mapListContext.js +70 -218
- package/dist/contexts/mapListContext.js.map +1 -1
- package/dist/contexts/placesContext.js +5 -7
- package/dist/contexts/placesContext.js.map +1 -1
- package/dist/contexts/themeContext.js +5 -10
- package/dist/contexts/themeContext.js.map +1 -1
- package/dist/contexts/trackEventContext.js +2 -2
- package/dist/contexts/trackEventContext.js.map +1 -1
- package/dist/hc_react_map_npm/packages/hc-ui-components/node_modules/tslib/tslib.es6.js +45 -0
- package/dist/hc_react_map_npm/packages/hc-ui-components/node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/hooks/useList.js +1 -3
- package/dist/hooks/useList.js.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js +1 -0
- package/dist/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js.map +1 -1
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +802 -0
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -0
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +679 -0
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -0
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +343 -0
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +1 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +140 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +137 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/combobox/combobox.js +33 -0
- package/dist/node_modules/@headlessui/react/dist/components/combobox/combobox.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/keyboard.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/components/keyboard.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/transitions/transition.js +19 -0
- package/dist/node_modules/@headlessui/react/dist/components/transitions/transition.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/transitions/utils/transition.js +8 -0
- package/dist/node_modules/@headlessui/react/dist/components/transitions/utils/transition.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-computed.js +8 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-computed.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-controllable.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-controllable.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-disposables.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-disposables.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-document-event.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-document-event.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-event.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-event.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-flags.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-flags.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-id.js +9 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-id.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-is-mounted.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-is-mounted.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-latest-value.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-latest-value.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-outside-click.js +10 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-outside-click.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-owner.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-owner.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.js +6 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js +11 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js +8 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-watch.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-watch.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-window-event.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-window-event.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/internal/hidden.js +6 -0
- package/dist/node_modules/@headlessui/react/dist/internal/hidden.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/internal/open-closed.js +6 -0
- package/dist/node_modules/@headlessui/react/dist/internal/open-closed.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/active-element-history.js +6 -0
- package/dist/node_modules/@headlessui/react/dist/utils/active-element-history.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/bugs.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/bugs.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/calculate-active-index.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/calculate-active-index.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/class-names.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/class-names.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/disposables.js +6 -0
- package/dist/node_modules/@headlessui/react/dist/utils/disposables.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/document-ready.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/document-ready.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/env.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/env.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/focus-management.js +7 -0
- package/dist/node_modules/@headlessui/react/dist/utils/focus-management.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/form.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/form.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/match.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/match.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/micro-task.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/micro-task.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/once.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/once.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/owner.js +6 -0
- package/dist/node_modules/@headlessui/react/dist/utils/owner.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/platform.js +4 -0
- package/dist/node_modules/@headlessui/react/dist/utils/platform.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/render.js +11 -0
- package/dist/node_modules/@headlessui/react/dist/utils/render.js.map +1 -0
- package/dist/node_modules/@iconify/react/dist/iconify.js +1928 -0
- package/dist/node_modules/@iconify/react/dist/iconify.js.map +1 -0
- package/dist/node_modules/@radix-ui/number/dist/index.js +7 -0
- package/dist/node_modules/@radix-ui/number/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/primitive/dist/index.js +12 -0
- package/dist/node_modules/@radix-ui/primitive/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-accordion/dist/index.js +304 -0
- package/dist/node_modules/@radix-ui/react-accordion/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-arrow/dist/index.js +26 -0
- package/dist/node_modules/@radix-ui/react-arrow/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-collapsible/dist/index.js +145 -0
- package/dist/node_modules/@radix-ui/react-collapsible/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-collection/dist/index.js +69 -0
- package/dist/node_modules/@radix-ui/react-collection/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +19 -0
- package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-context/dist/index.js +80 -0
- package/dist/node_modules/@radix-ui/react-context/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-dialog/dist/index.js +320 -0
- package/dist/node_modules/@radix-ui/react-dialog/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-direction/dist/index.js +12 -0
- package/dist/node_modules/@radix-ui/react-direction/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +212 -0
- package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js +27 -0
- package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js +208 -0
- package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-id/dist/index.js +16 -0
- package/dist/node_modules/@radix-ui/react-id/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-popper/dist/index.js +279 -0
- package/dist/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-portal/dist/index.js +18 -0
- package/dist/node_modules/@radix-ui/react-portal/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-presence/dist/index.js +120 -0
- package/dist/node_modules/@radix-ui/react-presence/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +42 -0
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js +221 -0
- package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-select/dist/index.js +1109 -0
- package/dist/node_modules/@radix-ui/react-select/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-slot/dist/index.js +82 -0
- package/dist/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-tabs/dist/index.js +187 -0
- package/dist/node_modules/@radix-ui/react-tabs/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +13 -0
- package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +47 -0
- package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +19 -0
- package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +8 -0
- package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-use-previous/dist/index.js +16 -0
- package/dist/node_modules/@radix-ui/react-use-previous/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-use-size/dist/index.js +41 -0
- package/dist/node_modules/@radix-ui/react-use-size/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js +35 -0
- package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js.map +1 -0
- package/dist/node_modules/@react-google-maps/api/dist/esm.js +8515 -0
- package/dist/node_modules/@react-google-maps/api/dist/esm.js.map +1 -0
- package/dist/node_modules/@remix-run/router/dist/router.js +271 -0
- package/dist/node_modules/@remix-run/router/dist/router.js.map +1 -0
- package/dist/node_modules/@tanstack/react-virtual/dist/esm/index.js +43 -0
- package/dist/node_modules/@tanstack/react-virtual/dist/esm/index.js.map +1 -0
- package/dist/node_modules/@tanstack/virtual-core/dist/esm/index.js +669 -0
- package/dist/node_modules/@tanstack/virtual-core/dist/esm/index.js.map +1 -0
- package/dist/node_modules/@tanstack/virtual-core/dist/esm/utils.js +61 -0
- package/dist/node_modules/@tanstack/virtual-core/dist/esm/utils.js.map +1 -0
- package/dist/node_modules/aria-hidden/dist/es2015/index.js +137 -0
- package/dist/node_modules/aria-hidden/dist/es2015/index.js.map +1 -0
- package/dist/node_modules/fuse.js/dist/fuse.js +1779 -0
- package/dist/node_modules/fuse.js/dist/fuse.js.map +1 -0
- package/dist/node_modules/get-nonce/dist/es2015/index.js +9 -0
- package/dist/node_modules/get-nonce/dist/es2015/index.js.map +1 -0
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js +17 -0
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js.map +1 -0
- package/dist/node_modules/react/jsx-runtime.js +12 -0
- package/dist/node_modules/react/jsx-runtime.js.map +1 -0
- package/dist/node_modules/react-loader-spinner/dist/index.js +134 -83
- package/dist/node_modules/react-loader-spinner/dist/index.js.map +1 -1
- package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js +10 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +161 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js +39 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +22 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +107 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js +6 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js +8 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js.map +1 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js +57 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js.map +1 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +11 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js.map +1 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +32 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js.map +1 -0
- package/dist/node_modules/react-router/dist/index.js +280 -0
- package/dist/node_modules/react-router/dist/index.js.map +1 -0
- package/dist/node_modules/react-router-dom/dist/index.js +201 -0
- package/dist/node_modules/react-router-dom/dist/index.js.map +1 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/component.js +20 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/component.js.map +1 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/hook.js +26 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/hook.js.map +1 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js +52 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js.map +1 -0
- package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js +716 -4
- package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js.map +1 -1
- package/dist/node_modules/styled-components/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js +5 -7
- package/dist/node_modules/styled-components/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js.map +1 -1
- package/dist/node_modules/styled-components/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js.map +1 -1
- package/dist/node_modules/stylis/src/Enum.js +2 -2
- package/dist/node_modules/stylis/src/Enum.js.map +1 -1
- package/dist/node_modules/stylis/src/Middleware.js +59 -49
- package/dist/node_modules/stylis/src/Middleware.js.map +1 -1
- package/dist/node_modules/stylis/src/Parser.js +135 -137
- package/dist/node_modules/stylis/src/Parser.js.map +1 -1
- package/dist/node_modules/stylis/src/Prefixer.js +187 -135
- package/dist/node_modules/stylis/src/Prefixer.js.map +1 -1
- package/dist/node_modules/stylis/src/Serializer.js +21 -18
- package/dist/node_modules/stylis/src/Serializer.js.map +1 -1
- package/dist/node_modules/stylis/src/Tokenizer.js +121 -117
- package/dist/node_modules/stylis/src/Tokenizer.js.map +1 -1
- package/dist/node_modules/stylis/src/Utility.js +26 -24
- package/dist/node_modules/stylis/src/Utility.js.map +1 -1
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +2530 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
- package/dist/node_modules/tinycolor2/esm/tinycolor.js.map +1 -1
- package/dist/node_modules/tslib/tslib.es6.js +13 -1
- package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
- package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js +25 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js.map +1 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +49 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js.map +1 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js +43 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js.map +1 -0
- package/dist/node_modules/use-places-autocomplete/dist/index.esm.js +243 -0
- package/dist/node_modules/use-places-autocomplete/dist/index.esm.js.map +1 -0
- package/dist/node_modules/use-sidecar/dist/es2015/exports.js +22 -0
- package/dist/node_modules/use-sidecar/dist/es2015/exports.js.map +1 -0
- package/dist/node_modules/use-sidecar/dist/es2015/medium.js +78 -0
- package/dist/node_modules/use-sidecar/dist/es2015/medium.js.map +1 -0
- package/dist/services/configService.js +15 -0
- package/dist/services/configService.js.map +1 -0
- package/dist/services/listingAggregatorService.js +37 -0
- package/dist/services/listingAggregatorService.js.map +1 -0
- package/dist/services/listingEntityService.js +15 -0
- package/dist/services/listingEntityService.js.map +1 -0
- package/dist/services/listingService.js +30 -0
- package/dist/services/listingService.js.map +1 -0
- package/dist/styles/index.css +3 -1
- package/dist/types/components/containers/accordions/filter-container.d.ts +11 -0
- package/dist/types/components/containers/accordions/map-accordion-item-container.d.ts +1 -2
- package/dist/types/components/containers/filter/commute-container.d.ts +5 -0
- package/dist/types/components/containers/filter/filter-container.d.ts +7 -0
- package/dist/types/components/containers/filter/location-container.d.ts +10 -0
- package/dist/types/components/containers/filter/points-of-interest-container.d.ts +10 -0
- package/dist/types/components/containers/filter/points-of-interest-radio-item-container.d.ts +8 -0
- package/dist/types/components/containers/filter/search-container.d.ts +8 -0
- package/dist/types/components/containers/list/list-item/list-item-container.d.ts +1 -3
- package/dist/types/components/containers/maps/info-window-content-container.d.ts +5 -0
- package/dist/types/components/containers/maps/map-container.d.ts +7 -0
- package/dist/types/components/containers/maps/map-list-container.d.ts +15 -0
- package/dist/types/components/containers/maps/map-marker-container.d.ts +13 -0
- package/dist/types/components/modules/buttons/button-group-apply.d.ts +1 -2
- package/dist/types/components/modules/jobListing/listing-details.d.ts +1 -2
- package/dist/types/components/modules/list/field-mapper-desktop.d.ts +1 -2
- package/dist/types/components/modules/list/field-mapper-mobile.d.ts +1 -2
- package/dist/types/components/modules/list/list-item/list-item.d.ts +1 -1
- package/dist/types/constants/placeTypes.d.ts +8 -0
- package/dist/types/contexts/mapContext.d.ts +0 -1
- package/dist/types/contexts/mapListContext.d.ts +2 -54
- package/dist/types/contexts/placesContext.d.ts +10 -0
- package/dist/types/hooks/useList.d.ts +3 -3
- package/dist/types/services/configService.d.ts +6 -0
- package/dist/types/services/listingAggregatorService.d.ts +9 -0
- package/dist/types/services/listingEntityService.d.ts +6 -0
- package/dist/types/services/listingService.d.ts +9 -0
- package/dist/types/services/recruiterService.d.ts +6 -0
- package/dist/types/types/GetListingParams.d.ts +1 -1
- package/dist/types/types/ListingEntity.d.ts +1 -2
- package/dist/types/types/ListingFields.d.ts +2 -4
- package/dist/types/types/Listings.d.ts +1 -0
- package/dist/types/types/config/Colors.d.ts +0 -1
- package/dist/types/types/config/MapConfig.d.ts +0 -4
- package/dist/types/types/config/PointsOfInterestConfig.d.ts +0 -1
- package/dist/types/util/filterUtil.d.ts +8 -12
- package/dist/types/util/mapIconUtil.d.ts +24 -0
- package/dist/types/util/mapUtil.d.ts +3 -3
- package/dist/types/util/urlFilterUtil.d.ts +0 -1
- package/dist/util/filterUtil.js +122 -413
- package/dist/util/filterUtil.js.map +1 -1
- package/dist/util/loading.js +3 -3
- package/dist/util/loading.js.map +1 -1
- package/dist/util/mapUtil.js +25 -43
- package/dist/util/mapUtil.js.map +1 -1
- package/dist/util/urlFilterUtil.js +1 -5
- package/dist/util/urlFilterUtil.js.map +1 -1
- package/package.json +17 -66
- package/src/apis/hcApi.ts +2 -9
- package/src/components/HireControlMap.js +95 -160
- package/src/components/containers/accordions/filter-container.js +4 -14
- package/src/components/containers/accordions/filter-item-container.js +5 -7
- package/src/components/containers/accordions/map-accordion-item-container.js +7 -28
- package/src/components/containers/filter/commute-container.js +4 -15
- package/src/components/containers/filter/filter-container.js +13 -8
- package/src/components/containers/filter/filter-item-container.js +25 -39
- package/src/components/containers/filter/location-container.js +4 -9
- package/src/components/containers/filter/points-of-interest-container.js +3 -14
- package/src/components/containers/filter/points-of-interest-radio-item-container.js +1 -4
- package/src/components/containers/filter/search-container.js +2 -8
- package/src/components/containers/jobListing/listing-details-container.js +2 -6
- package/src/components/containers/list/item-list-container.tsx +13 -22
- package/src/components/containers/list/list-item/list-item-container.js +2 -11
- package/src/components/containers/maps/info-window-content-container.js +2 -5
- package/src/components/containers/maps/map-container.js +14 -92
- package/src/components/containers/maps/map-list-container.js +5 -33
- package/src/components/containers/maps/map-marker-container.js +2 -4
- package/src/components/modules/accordions/filterItem.js +3 -16
- package/src/components/modules/accordions/filters.js +4 -19
- package/src/components/modules/buttons/button-group-apply.js +9 -14
- package/src/components/modules/buttons/pill-wrapper.js +1 -2
- package/src/components/modules/dialogs/apply-dialog.js +2 -2
- package/src/components/modules/filter/commute.js +5 -7
- package/src/components/modules/filter/index.js +50 -137
- package/src/components/modules/filter/item.js +3 -16
- package/src/components/modules/filter/search.js +1 -7
- package/src/components/modules/jobListing/listing-details.js +3 -5
- package/src/components/modules/list/field-mapper-desktop.jsx +13 -32
- package/src/components/modules/list/field-mapper-mobile.jsx +80 -92
- package/src/components/modules/list/header-item.js +1 -1
- package/src/components/modules/list/item-list.tsx +5 -2
- package/src/components/modules/list/list-item/list-item.jsx +11 -85
- package/src/components/modules/maps/map-list.js +1 -1
- package/src/components/modules/maps/map.js +18 -30
- package/src/components/modules/maps/tabs.js +5 -5
- package/src/contexts/mapContext.tsx +18 -45
- package/src/contexts/mapListContext.tsx +86 -308
- package/src/contexts/placesContext.js +3 -3
- package/src/contexts/themeContext.js +3 -8
- package/src/hooks/useList.js +1 -3
- package/src/index.js +0 -9
- package/src/services/configService.ts +16 -0
- package/src/services/listingAggregatorService.ts +58 -0
- package/src/services/listingEntityService.ts +16 -0
- package/src/services/listingService.ts +40 -0
- package/src/services/recruiterService.ts +18 -0
- package/src/styles/bundle.css +1 -3
- package/src/styles/index.css +2 -4
- package/src/types/GetListingParams.ts +1 -1
- package/src/types/ListingEntity.ts +1 -2
- package/src/types/ListingFields.ts +2 -4
- package/src/types/Listings.ts +1 -0
- package/src/types/config/Colors.ts +0 -1
- package/src/types/config/MapConfig.ts +0 -2
- package/src/types/config/PointsOfInterestConfig.ts +0 -1
- package/src/util/fieldMapper.js +2 -6
- package/src/util/filterUtil.js +55 -261
- package/src/util/mapUtil.js +41 -59
- package/src/util/urlFilterUtil.js +1 -4
- package/README.md +0 -323
- package/src/components/modules/maps/map.js.bak +0 -67
- package/src/components/modules/maps/map.js.bak2 +0 -67
- package/src/contexts/componentContext.tsx +0 -213
- package/src/styles/components.css +0 -30
- package/src/util/algoliaSearchUtil.js +0 -151
- package/src/util/twMerge.js +0 -6
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
2
|
import { useTrackEvent } from '~/contexts/trackEventContext';
|
|
3
|
-
import
|
|
3
|
+
import FilterItem from '~/components/modules/filter/item';
|
|
4
4
|
import { useMapList } from '~/contexts/mapListContext';
|
|
5
|
-
import { twMerge } from '~/util/twMerge';
|
|
6
5
|
|
|
7
6
|
const FilterItemContainer = ({
|
|
8
7
|
className,
|
|
@@ -18,38 +17,18 @@ const FilterItemContainer = ({
|
|
|
18
17
|
subcategoryRequireCategory = false,
|
|
19
18
|
...rest
|
|
20
19
|
}) => {
|
|
21
|
-
// All hooks MUST be called before any early returns
|
|
22
|
-
const { FilterItem } = useComponents();
|
|
23
20
|
const { trackEvent, eventTypes } = useTrackEvent();
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const itemName = item?.name ? item.name : item;
|
|
28
|
-
const safeItemKey = itemKey === null ? itemName : itemKey;
|
|
29
|
-
const isActive = selectedFilters != undefined && !!selectedFilters[field]?.[safeItemKey];
|
|
21
|
+
const itemName = item.name ? item.name : item;
|
|
22
|
+
itemKey = itemKey === null ? itemName : itemKey;
|
|
23
|
+
const isActive = selectedFilters != undefined && !!selectedFilters[field]?.[itemKey];
|
|
30
24
|
const [activeItem, setActiveItem] = useState(isActive);
|
|
31
25
|
|
|
32
26
|
useEffect(() => {
|
|
33
27
|
if (!selectedFilters || isExternalLink) return;
|
|
34
|
-
setActiveItem(!!selectedFilters[field]?.[
|
|
35
|
-
}, [selectedFilters, field,
|
|
36
|
-
|
|
37
|
-
useEffect(() => {
|
|
38
|
-
if (selectedFilters && selectedFilters[field] && Object.keys(selectedFilters[field])?.length > 0) return;
|
|
39
|
-
else if (activeItem === true) {
|
|
40
|
-
setActiveItem(false);
|
|
41
|
-
}
|
|
42
|
-
}, [selectedFilters, activeItem, field]);
|
|
43
|
-
|
|
44
|
-
// NOW we can do the guard check after all hooks
|
|
45
|
-
if (!item) {
|
|
46
|
-
console.warn('FilterItemContainer received undefined item for field:', field);
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// Re-assign itemKey for the rest of the component
|
|
51
|
-
itemKey = safeItemKey;
|
|
28
|
+
setActiveItem(!!selectedFilters[field]?.[itemKey]);
|
|
29
|
+
}, [selectedFilters, field, itemKey]);
|
|
52
30
|
|
|
31
|
+
const { filteredListings } = useMapList();
|
|
53
32
|
const changeHandler = () => {
|
|
54
33
|
if (!isActive || isExternalLink) {
|
|
55
34
|
trackEvent(eventTypes.FILTER_APPLIED, { filterType: field, filterChecked: itemKey });
|
|
@@ -76,30 +55,30 @@ const FilterItemContainer = ({
|
|
|
76
55
|
delete updatedFilters[field];
|
|
77
56
|
}
|
|
78
57
|
|
|
79
|
-
if (field === '
|
|
58
|
+
if (field === 'categoryClass' && subcategoryRequireCategory) {
|
|
80
59
|
const activeCategoryClass = itemKey;
|
|
81
60
|
const categoriesToConsiderForRemoval = new Set(
|
|
82
61
|
filteredListings
|
|
83
|
-
.filter(listing => listing.fields.
|
|
84
|
-
.flatMap(listing => listing.fields.
|
|
62
|
+
.filter(listing => listing.fields.categoryClass === activeCategoryClass)
|
|
63
|
+
.flatMap(listing => listing.fields.category || [])
|
|
85
64
|
);
|
|
86
65
|
|
|
87
66
|
const categoriesToRetain = new Set(
|
|
88
67
|
filteredListings
|
|
89
|
-
.filter(listing => listing.fields.
|
|
90
|
-
.flatMap(listing => listing.fields.
|
|
68
|
+
.filter(listing => listing.fields.categoryClass !== activeCategoryClass)
|
|
69
|
+
.flatMap(listing => listing.fields.category || [])
|
|
91
70
|
.filter(category => categoriesToConsiderForRemoval.has(category))
|
|
92
71
|
);
|
|
93
72
|
|
|
94
|
-
if (updatedFilters['
|
|
95
|
-
Object.keys(updatedFilters['
|
|
73
|
+
if (updatedFilters['category']) {
|
|
74
|
+
Object.keys(updatedFilters['category']).forEach(categoryKey => {
|
|
96
75
|
if (categoriesToConsiderForRemoval.has(categoryKey) && !categoriesToRetain.has(categoryKey)) {
|
|
97
|
-
delete updatedFilters['
|
|
76
|
+
delete updatedFilters['category'][categoryKey];
|
|
98
77
|
}
|
|
99
78
|
});
|
|
100
79
|
|
|
101
|
-
if (Object.keys(updatedFilters['
|
|
102
|
-
delete updatedFilters['
|
|
80
|
+
if (Object.keys(updatedFilters['category']).length === 0) {
|
|
81
|
+
delete updatedFilters['category'];
|
|
103
82
|
}
|
|
104
83
|
}
|
|
105
84
|
}
|
|
@@ -108,9 +87,16 @@ const FilterItemContainer = ({
|
|
|
108
87
|
});
|
|
109
88
|
};
|
|
110
89
|
|
|
90
|
+
useEffect(() => {
|
|
91
|
+
if (selectedFilters && selectedFilters[field] && Object.keys(selectedFilters[field])?.length > 0) return;
|
|
92
|
+
else if (activeItem === true) {
|
|
93
|
+
setActiveItem(false);
|
|
94
|
+
}
|
|
95
|
+
}, [selectedFilters]);
|
|
96
|
+
|
|
111
97
|
return (
|
|
112
98
|
<FilterItem
|
|
113
|
-
className={
|
|
99
|
+
className={className}
|
|
114
100
|
item={item}
|
|
115
101
|
type={type}
|
|
116
102
|
itemKey={itemKey}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
2
|
+
import FilterLocation from '~/components/modules/filter/location';
|
|
3
3
|
import FilterCommute from '~/components/containers/filter/commute-container';
|
|
4
4
|
import FilterPointsOfInterest from '~/components/containers/filter/points-of-interest-container';
|
|
5
5
|
import { useMapList } from '~/contexts/mapListContext';
|
|
@@ -12,14 +12,10 @@ const FilterLocationContainer = ({
|
|
|
12
12
|
setLocation,
|
|
13
13
|
setSelectedListItem
|
|
14
14
|
}) => {
|
|
15
|
-
|
|
16
|
-
const { FilterLocation } = useComponents();
|
|
17
|
-
|
|
18
|
-
const { setSelectedFilters, selectedFilters, filterOptions, noEntities, siteConfig } = useMapList();
|
|
15
|
+
const { setSelectedFilters, selectedFilters, filterOptions } = useMapList();
|
|
19
16
|
|
|
20
17
|
const locations = filterOptions?.locations;
|
|
21
18
|
const pointsOfInterest = filterOptions?.pointsOfInterest;
|
|
22
|
-
const showAtZoomLevel = siteConfig?.pointsOfInterestConfig?.showAtZoomLevel ?? 12;
|
|
23
19
|
|
|
24
20
|
return (
|
|
25
21
|
<FilterLocation
|
|
@@ -33,14 +29,13 @@ const FilterLocationContainer = ({
|
|
|
33
29
|
setSelectedFilters={setSelectedFilters}
|
|
34
30
|
selectedFilters={selectedFilters}
|
|
35
31
|
>
|
|
36
|
-
{showMap &&
|
|
37
|
-
{showMap &&
|
|
32
|
+
{showMap && <FilterCommute className="hc-mt-6" />}
|
|
33
|
+
{showMap && (
|
|
38
34
|
<FilterPointsOfInterest
|
|
39
35
|
className="hc-mt-4"
|
|
40
36
|
pointsOfInterest={pointsOfInterest}
|
|
41
37
|
setDefaultValue={setDefaultValue}
|
|
42
38
|
defaultValue={defaultValue}
|
|
43
|
-
showAtZoomLevel={showAtZoomLevel}
|
|
44
39
|
/>
|
|
45
40
|
)}
|
|
46
41
|
</FilterLocation>
|
|
@@ -1,26 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
2
|
+
import Accordion from '~/components/modules/accordions/default';
|
|
3
|
+
import AccordionFilterItem from '~/components/modules/accordions/filterItem';
|
|
3
4
|
import RadioItemContainer from '~/components/containers/filter/points-of-interest-radio-item-container';
|
|
4
|
-
import { usePlaces } from '~/contexts/placesContext';
|
|
5
5
|
|
|
6
6
|
const FilterPointsOfInterestContainer = ({
|
|
7
7
|
title = "Points of interest",
|
|
8
8
|
pointsOfInterest,
|
|
9
9
|
setDefaultValue,
|
|
10
10
|
className,
|
|
11
|
-
defaultValue
|
|
12
|
-
showAtZoomLevel = 12
|
|
11
|
+
defaultValue
|
|
13
12
|
}) => {
|
|
14
|
-
// Get injected components from context
|
|
15
|
-
const { Accordion, FilterItemAccordion: AccordionFilterItem } = useComponents();
|
|
16
|
-
|
|
17
|
-
const { currentZoom } = usePlaces();
|
|
18
|
-
|
|
19
|
-
// Don't render if zoom level is below threshold
|
|
20
|
-
if (currentZoom < showAtZoomLevel) {
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
13
|
const renderRadioItem = (item, index) => (
|
|
25
14
|
<RadioItemContainer key={item.key + index} item={item} field={item.id} />
|
|
26
15
|
);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
2
|
+
import RadioItem from '~/components/modules/filter/radio-item';
|
|
3
3
|
import { useMap } from '~/contexts/mapContext';
|
|
4
4
|
import { useTrackEvent } from '~/contexts/trackEventContext';
|
|
5
5
|
|
|
@@ -9,9 +9,6 @@ const RadioItemContainer = ({
|
|
|
9
9
|
field,
|
|
10
10
|
...rest
|
|
11
11
|
}) => {
|
|
12
|
-
// Get injected FilterRadioItem component from context
|
|
13
|
-
const { FilterRadioItem: RadioItem } = useComponents();
|
|
14
|
-
|
|
15
12
|
const { trackEvent, eventTypes } = useTrackEvent();
|
|
16
13
|
const { selectedPlaces, setSelectedPlaces } = useMap();
|
|
17
14
|
const chosenPlace = item.key.toLowerCase();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useRef, useState, useEffect } from 'react';
|
|
2
2
|
import { useMapList } from '~/contexts/mapListContext';
|
|
3
|
-
import
|
|
3
|
+
import Search from '~/components/modules/filter/search';
|
|
4
4
|
|
|
5
5
|
const SearchContainer = ({
|
|
6
6
|
inputPlaceholder = "Keywords",
|
|
@@ -8,9 +8,6 @@ const SearchContainer = ({
|
|
|
8
8
|
className,
|
|
9
9
|
labelClassName
|
|
10
10
|
}) => {
|
|
11
|
-
// Get injected FilterSearch component from context
|
|
12
|
-
const { FilterSearch: Search } = useComponents();
|
|
13
|
-
|
|
14
11
|
const { query, setQuery, siteConfig } = useMapList();
|
|
15
12
|
const [inputValue, setInputValue] = useState(query != null ? query : "");
|
|
16
13
|
const debounceTimer = useRef(null);
|
|
@@ -40,11 +37,8 @@ const SearchContainer = ({
|
|
|
40
37
|
setQuery("");
|
|
41
38
|
};
|
|
42
39
|
|
|
43
|
-
// Update input value when query changes from context (e.g., loaded from URL or localStorage)
|
|
44
40
|
useEffect(() => {
|
|
45
|
-
if (query
|
|
46
|
-
setInputValue(query);
|
|
47
|
-
} else if (query === null || query === "") {
|
|
41
|
+
if (query == null) {
|
|
48
42
|
setInputValue("");
|
|
49
43
|
}
|
|
50
44
|
}, [query]);
|
|
@@ -2,15 +2,12 @@ import React from 'react';
|
|
|
2
2
|
import { useMap } from '~/contexts/mapContext';
|
|
3
3
|
import { useMapList } from '~/contexts/mapListContext';
|
|
4
4
|
import { useTrackEvent } from '~/contexts/trackEventContext';
|
|
5
|
-
import
|
|
5
|
+
import ListingDetails from '~/components/modules/jobListing/listing-details';
|
|
6
6
|
|
|
7
7
|
const ListingDetailsContainer = ({ item, recruiter }) => {
|
|
8
|
-
// Get injected ListingDetails component from context
|
|
9
|
-
const { ListingDetails } = useComponents();
|
|
10
|
-
|
|
11
8
|
const { trackEvent, eventTypes } = useTrackEvent();
|
|
12
9
|
const { travelTime } = useMap();
|
|
13
|
-
const { siteConfig, navigateToDetails, navigateToEasyApply, Link, linkFormat, easyApplyUrl, easyApplyText, isIframe
|
|
10
|
+
const { siteConfig, navigateToDetails, navigateToEasyApply, Link, linkFormat, easyApplyUrl, easyApplyText, isIframe } = useMapList();
|
|
14
11
|
|
|
15
12
|
const {
|
|
16
13
|
useDetailsPostMessage,
|
|
@@ -39,7 +36,6 @@ const ListingDetailsContainer = ({ item, recruiter }) => {
|
|
|
39
36
|
jobsDomain={jobsDomain}
|
|
40
37
|
trackEvent={trackEvent}
|
|
41
38
|
eventTypes={eventTypes}
|
|
42
|
-
mobileDetailsCallback={mobileDetailsCallback}
|
|
43
39
|
/>
|
|
44
40
|
);
|
|
45
41
|
};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import useListLogic from '~/hooks/useList';
|
|
3
3
|
import { useMap } from '~/contexts/mapContext';
|
|
4
4
|
import { useMapList } from '~/contexts/mapListContext';
|
|
5
5
|
import { useTrackEvent } from '~/contexts/trackEventContext';
|
|
6
|
-
import
|
|
6
|
+
import ItemsList from '~/components/modules/list/item-list';
|
|
7
|
+
import Accordion from '~/components/modules/accordions/default';
|
|
7
8
|
import MapAccordionItemContainer from '~/components/containers/accordions/map-accordion-item-container';
|
|
8
9
|
import { dynamicSort } from '~/util/sortUtil';
|
|
9
10
|
import { Listing } from '~/types/Listings';
|
|
@@ -22,28 +23,19 @@ const ItemsListContainer: React.FC<ItemsListContainerProps> = ({
|
|
|
22
23
|
fieldsShown,
|
|
23
24
|
specialFeatures
|
|
24
25
|
}) => {
|
|
25
|
-
|
|
26
|
-
const { ItemsList, Accordion } = useComponents();
|
|
27
|
-
|
|
28
|
-
const { filteredListings, loading, commuteLocation, sortSetting, setSortSetting, ExpandListComponent, favorites, noEntities } = useMapList();
|
|
26
|
+
const { filteredListings, loading, commuteLocation, sortSetting, setSortSetting, ExpandListComponent, favorites } = useMapList();
|
|
29
27
|
const { itemLimit, loader, scrollContainerRef, itemRefs } = useListLogic(filteredListings as any);
|
|
30
28
|
const { selectedListItem } = useMap();
|
|
31
29
|
const { trackEvent, eventTypes } = useTrackEvent() as any;
|
|
32
30
|
const itemExpandedContent = (item: any, recruiter: any) =>
|
|
33
31
|
item ? (ExpandListComponent ? <ExpandListComponent listing={item} /> : <ListingDetailsContainer item={item} recruiter={recruiter} />) : null;
|
|
34
32
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
fieldNames['travelTime'] = 'Commute';
|
|
42
|
-
} else if (fields.includes('travelTime') && (!commuteLocation || noEntities)) {
|
|
43
|
-
return fields.filter(x => x !== 'travelTime');
|
|
44
|
-
}
|
|
45
|
-
return fields;
|
|
46
|
-
}, [fieldsShown, commuteLocation, noEntities, fieldNames]);
|
|
33
|
+
if (!fieldsShown.includes('travelTime') && commuteLocation != null && Object.entries(commuteLocation).length > 0) {
|
|
34
|
+
fieldsShown.push('travelTime');
|
|
35
|
+
fieldNames['travelTime'] = 'Commute';
|
|
36
|
+
} else if (fieldsShown.includes('travelTime') && !commuteLocation) {
|
|
37
|
+
fieldsShown = fieldsShown.filter(x => x !== 'travelTime');
|
|
38
|
+
}
|
|
47
39
|
|
|
48
40
|
const setTrackedSortSetting = (sortSetting: { field: string; type: string }) => {
|
|
49
41
|
trackEvent(eventTypes.LIST_SORTED, sortSetting);
|
|
@@ -55,7 +47,7 @@ const ItemsListContainer: React.FC<ItemsListContainerProps> = ({
|
|
|
55
47
|
<ItemsList
|
|
56
48
|
fieldNames={fieldNames}
|
|
57
49
|
showMap={showMap}
|
|
58
|
-
fieldsShown={
|
|
50
|
+
fieldsShown={fieldsShown}
|
|
59
51
|
filteredListings={filteredListings}
|
|
60
52
|
loading={loading}
|
|
61
53
|
sortSetting={sortSetting}
|
|
@@ -67,16 +59,15 @@ const ItemsListContainer: React.FC<ItemsListContainerProps> = ({
|
|
|
67
59
|
selectedListItem={selectedListItem}
|
|
68
60
|
includeFavorite={true}
|
|
69
61
|
>
|
|
70
|
-
<Accordion className="hc-divide-y
|
|
62
|
+
<Accordion className="hc-divide-y hc-divide-uiAccent/10 hc-z-[1000] hc-h-[100%]" defaultValue={selectedListItem?.id}>
|
|
71
63
|
{(sortSetting ? dynamicSort(filteredListings, sortSetting.field, sortSetting.type, favorites as any) : filteredListings)
|
|
72
64
|
.slice(0, itemLimit)
|
|
73
65
|
.map((item: Listing, index: number) => (
|
|
74
66
|
<MapAccordionItemContainer
|
|
75
67
|
key={item.id}
|
|
76
|
-
showMap={showMap}
|
|
77
68
|
item={item}
|
|
78
69
|
itemRefs={itemRefs}
|
|
79
|
-
fieldsShown={
|
|
70
|
+
fieldsShown={fieldsShown}
|
|
80
71
|
itemExpandedContent={itemExpandedContent}
|
|
81
72
|
specialFeatures={specialFeatures}
|
|
82
73
|
isActive={selectedListItem?.id === item.id}
|
|
@@ -1,27 +1,21 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { useMapList } from '~/contexts/mapListContext';
|
|
3
|
-
import
|
|
3
|
+
import ListItem from '~/components/modules/list/list-item/list-item';
|
|
4
4
|
|
|
5
5
|
const ListItemContainer = ({
|
|
6
6
|
isActive,
|
|
7
|
-
showMap,
|
|
8
7
|
item,
|
|
9
8
|
fieldsShown,
|
|
10
9
|
specialFeatures,
|
|
11
10
|
bodyClassName,
|
|
12
11
|
onItemSelected,
|
|
13
|
-
index,
|
|
14
12
|
...props
|
|
15
13
|
}) => {
|
|
16
|
-
|
|
17
|
-
const { ListItem } = useComponents();
|
|
18
|
-
|
|
19
|
-
const { siteConfig, googleMapsApiKey, favorites, handleSettingFavorites, setMobileTab } = useMapList();
|
|
14
|
+
const { favorites, handleSettingFavorites, setMobileTab } = useMapList();
|
|
20
15
|
|
|
21
16
|
return (
|
|
22
17
|
<ListItem
|
|
23
18
|
isActive={isActive}
|
|
24
|
-
showMap={showMap}
|
|
25
19
|
item={item}
|
|
26
20
|
fieldsShown={fieldsShown}
|
|
27
21
|
specialFeatures={specialFeatures}
|
|
@@ -29,11 +23,8 @@ const ListItemContainer = ({
|
|
|
29
23
|
bodyClassName={bodyClassName}
|
|
30
24
|
onItemSelected={onItemSelected}
|
|
31
25
|
setMobileTab={setMobileTab}
|
|
32
|
-
siteConfig={siteConfig}
|
|
33
|
-
googleMapsApiKey={googleMapsApiKey}
|
|
34
26
|
favorites={favorites}
|
|
35
27
|
handleSettingFavorites={handleSettingFavorites}
|
|
36
|
-
index={index}
|
|
37
28
|
{...props}
|
|
38
29
|
/>
|
|
39
30
|
);
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
2
|
+
import InfoWindowContent from '~/components/modules/maps/info-window-content';
|
|
3
3
|
import { useMapList } from '~/contexts/mapListContext';
|
|
4
4
|
import { useTrackEvent } from '~/contexts/trackEventContext';
|
|
5
5
|
|
|
6
6
|
const InfoWindowContentContainer = ({
|
|
7
7
|
item
|
|
8
8
|
}) => {
|
|
9
|
-
// Get injected InfoWindowContent component from context
|
|
10
|
-
const { InfoWindowContent } = useComponents();
|
|
11
|
-
|
|
12
9
|
const { trackEvent, eventTypes } = useTrackEvent();
|
|
13
10
|
const { setSelectedFilters, setMobileTab, selectedFilters, siteConfig } = useMapList();
|
|
14
11
|
const fieldsShown = siteConfig.locationFiltersShown;
|
|
@@ -60,7 +57,7 @@ const InfoWindowContentContainer = ({
|
|
|
60
57
|
newFilters.state = { [items[0].fields.state]: true };
|
|
61
58
|
filters.push({ filterType: 'state', filterChecked: items[0].fields.state });
|
|
62
59
|
}
|
|
63
|
-
|
|
60
|
+
|
|
64
61
|
newFilters.entityName = { [items[0].fields.entityName]: true };
|
|
65
62
|
filters.push({ filterType: 'entityName', filterChecked: items[0].fields.entityName });
|
|
66
63
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import React, { useEffect, useRef, useState } from "react";
|
|
4
4
|
|
|
5
5
|
import MapMarker from "~/components/containers/maps/map-marker-container";
|
|
6
|
-
import
|
|
6
|
+
import PlaceMarker from "~/components/modules/maps/place-marker";
|
|
7
7
|
|
|
8
8
|
import { usePlaces } from "~/contexts/placesContext";
|
|
9
9
|
import { useMap } from "~/contexts/mapContext";
|
|
@@ -11,44 +11,11 @@ import { useMapList } from "~/contexts/mapListContext";
|
|
|
11
11
|
|
|
12
12
|
import { markerIconSelected, markerIcon, pinIcon } from "~/util/mapIconUtil";
|
|
13
13
|
|
|
14
|
+
import Map from "~/components/modules/maps/map";
|
|
14
15
|
import { MarkerClustererF, Marker } from "@react-google-maps/api";
|
|
15
16
|
import { clusterOptions } from "~/util/mapUtil";
|
|
16
|
-
import { BallTriangle } from 'react-loader-spinner';
|
|
17
17
|
|
|
18
18
|
const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }) => {
|
|
19
|
-
// Get injected components from context
|
|
20
|
-
const { Map, PlaceMarker } = useComponents();
|
|
21
|
-
|
|
22
|
-
const [isGoogleMapsReady, setIsGoogleMapsReady] = useState(false);
|
|
23
|
-
|
|
24
|
-
// Check if Google Maps is loaded
|
|
25
|
-
useEffect(() => {
|
|
26
|
-
if (typeof window !== 'undefined' && window.google && window.google.maps && window.google.maps.Map) {
|
|
27
|
-
console.log('Google Maps already loaded');
|
|
28
|
-
setIsGoogleMapsReady(true);
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
console.log('Waiting for Google Maps to load...');
|
|
33
|
-
let attempts = 0;
|
|
34
|
-
const maxAttempts = 50; // 5 seconds max
|
|
35
|
-
|
|
36
|
-
// Poll for Google Maps to become available
|
|
37
|
-
const checkInterval = setInterval(() => {
|
|
38
|
-
attempts++;
|
|
39
|
-
if (typeof window !== 'undefined' && window.google && window.google.maps && window.google.maps.Map) {
|
|
40
|
-
console.log('Google Maps loaded after', attempts * 100, 'ms');
|
|
41
|
-
setIsGoogleMapsReady(true);
|
|
42
|
-
clearInterval(checkInterval);
|
|
43
|
-
} else if (attempts >= maxAttempts) {
|
|
44
|
-
console.error('Google Maps failed to load after 5 seconds');
|
|
45
|
-
clearInterval(checkInterval);
|
|
46
|
-
}
|
|
47
|
-
}, 100);
|
|
48
|
-
|
|
49
|
-
return () => clearInterval(checkInterval);
|
|
50
|
-
}, []);
|
|
51
|
-
|
|
52
19
|
const {
|
|
53
20
|
location,
|
|
54
21
|
zoom,
|
|
@@ -66,8 +33,7 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
|
|
|
66
33
|
selectedFilters,
|
|
67
34
|
setSelectedFilters,
|
|
68
35
|
setQuery,
|
|
69
|
-
siteConfig
|
|
70
|
-
setMapBounds
|
|
36
|
+
siteConfig
|
|
71
37
|
} = useMapList();
|
|
72
38
|
const [mapItems, setMapItems] = useState(null);
|
|
73
39
|
const [markersToHideFromBounds, setMarkersToHideFromBounds] = useState([]);
|
|
@@ -97,12 +63,6 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
|
|
|
97
63
|
if (newZoom !== currentZoom) {
|
|
98
64
|
setCurrentZoom(newZoom);
|
|
99
65
|
}
|
|
100
|
-
|
|
101
|
-
// Update map bounds for viewport filtering
|
|
102
|
-
if (mapRef.current && setMapBounds) {
|
|
103
|
-
const bounds = mapRef.current.getBounds();
|
|
104
|
-
setMapBounds(bounds);
|
|
105
|
-
}
|
|
106
66
|
};
|
|
107
67
|
|
|
108
68
|
useEffect(() => {
|
|
@@ -168,26 +128,23 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
|
|
|
168
128
|
fitBounds(mapRef.current, true);
|
|
169
129
|
}
|
|
170
130
|
if (mapRef.current && !mapInteracted) {
|
|
171
|
-
const jobPinZoomLevel = siteConfig?.jobPinZoomLevel ?? 12;
|
|
172
131
|
const currZoom = mapRef.current.zoom;
|
|
173
|
-
const setZoomVal = currZoom <
|
|
132
|
+
const setZoomVal = currZoom < 13 ? currZoom : 12;
|
|
174
133
|
mapRef.current.setZoom(setZoomVal);
|
|
175
134
|
}
|
|
176
|
-
}, [filteredListings
|
|
135
|
+
}, [filteredListings]);
|
|
177
136
|
|
|
178
137
|
useEffect(() => {
|
|
179
138
|
if (!mapRef.current || !location || mapInteracted) return;
|
|
180
|
-
const jobPinZoomLevel = siteConfig?.jobPinZoomLevel ?? 12;
|
|
181
139
|
mapRef.current.panTo(new google.maps.LatLng(location.latitude, location.longitude));
|
|
182
140
|
if (mapRef.current) {
|
|
183
|
-
const setZoomVal = zoom <
|
|
141
|
+
const setZoomVal = zoom < 13 ? zoom : 12;
|
|
184
142
|
mapRef.current.setZoom(setZoomVal);
|
|
185
143
|
}
|
|
186
|
-
}, [location, zoom,
|
|
144
|
+
}, [location, zoom, mapRef.current]);
|
|
187
145
|
|
|
188
146
|
const fitBounds = (map, overload = false) => {
|
|
189
147
|
if ((mapInteracted === false || overload) && mapItems != null) {
|
|
190
|
-
if (typeof window === 'undefined' || !window.google) return;
|
|
191
148
|
const bounds = new window.google.maps.LatLngBounds();
|
|
192
149
|
|
|
193
150
|
mapItems.forEach(item => {
|
|
@@ -229,15 +186,6 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
|
|
|
229
186
|
setMapInteracted(true);
|
|
230
187
|
setMarkersToHideFromBounds([]);
|
|
231
188
|
selectLocationEntity(mapLocation);
|
|
232
|
-
const jobPinZoomLevel = siteConfig?.jobPinZoomLevel;
|
|
233
|
-
if (jobPinZoomLevel !== undefined && mapRef.current) {
|
|
234
|
-
setTimeout(() => {
|
|
235
|
-
if (mapRef.current) {
|
|
236
|
-
mapRef.current.panTo(new google.maps.LatLng(mapLocation.latitude, mapLocation.longitude));
|
|
237
|
-
mapRef.current.setZoom(jobPinZoomLevel);
|
|
238
|
-
}
|
|
239
|
-
}, 300);
|
|
240
|
-
}
|
|
241
189
|
};
|
|
242
190
|
|
|
243
191
|
const onLoad = map => {
|
|
@@ -281,7 +229,6 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
|
|
|
281
229
|
}
|
|
282
230
|
|
|
283
231
|
setTimeout(() => {
|
|
284
|
-
if (typeof window === 'undefined' || !window.google) return;
|
|
285
232
|
const bounds = new window.google.maps.LatLngBounds();
|
|
286
233
|
|
|
287
234
|
markers.forEach(marker => {
|
|
@@ -306,37 +253,12 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
|
|
|
306
253
|
}
|
|
307
254
|
}, 300);
|
|
308
255
|
};
|
|
309
|
-
if (!
|
|
310
|
-
return
|
|
311
|
-
<div className="hc-w-full hc-h-full hc-bg-gray-100 hc-flex hc-items-center hc-justify-center hc-min-h-[400px]">
|
|
312
|
-
<BallTriangle
|
|
313
|
-
height={80}
|
|
314
|
-
width={80}
|
|
315
|
-
radius={5}
|
|
316
|
-
color="#2563eb"
|
|
317
|
-
ariaLabel="ball-triangle-loading"
|
|
318
|
-
wrapperStyle={{}}
|
|
319
|
-
wrapperClass=""
|
|
320
|
-
visible={true}
|
|
321
|
-
/>
|
|
322
|
-
</div>
|
|
323
|
-
);
|
|
256
|
+
if (!mapItems) {
|
|
257
|
+
return null;
|
|
324
258
|
}
|
|
259
|
+
const mapItemsKey = mapItems.map(item => item.id).join("-");
|
|
325
260
|
|
|
326
|
-
|
|
327
|
-
const mapItemsArray = Array.isArray(mapItems) ? mapItems : [];
|
|
328
|
-
|
|
329
|
-
if (!mapItemsArray || mapItemsArray.length === 0) {
|
|
330
|
-
return (
|
|
331
|
-
<div className="hc-w-full hc-h-full hc-bg-gray-100 hc-flex hc-items-center hc-justify-center">
|
|
332
|
-
<div className="hc-text-gray-600">No locations to display</div>
|
|
333
|
-
</div>
|
|
334
|
-
);
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
const mapItemsKey = mapItemsArray.map(item => item.id).join("-");
|
|
338
|
-
|
|
339
|
-
|
|
261
|
+
console.log(location);
|
|
340
262
|
return (
|
|
341
263
|
<Map
|
|
342
264
|
zoom={zoom}
|
|
@@ -370,7 +292,7 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
|
|
|
370
292
|
>
|
|
371
293
|
{clusterer => (
|
|
372
294
|
<>
|
|
373
|
-
{
|
|
295
|
+
{mapItems.map(item => {
|
|
374
296
|
const markerCount = Object.values(item.items).length;
|
|
375
297
|
return (
|
|
376
298
|
<MapMarker
|
|
@@ -395,7 +317,7 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
|
|
|
395
317
|
currentZoom >= marker.minZoom &&
|
|
396
318
|
currentZoom <= marker.maxZoom && (
|
|
397
319
|
<Marker
|
|
398
|
-
key={`
|
|
320
|
+
key={`marker-${marker.title}-${index}`}
|
|
399
321
|
position={marker.position}
|
|
400
322
|
title={marker.title}
|
|
401
323
|
icon={{
|
|
@@ -409,7 +331,7 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
|
|
|
409
331
|
{poiMarkers &&
|
|
410
332
|
poiMarkers.markers.map((marker, index) => (
|
|
411
333
|
<PlaceMarker
|
|
412
|
-
key={`
|
|
334
|
+
key={`marker-${marker.title}-${index}`}
|
|
413
335
|
marker={marker}
|
|
414
336
|
index={index}
|
|
415
337
|
selectedPlaceMarker={selectedPlaceMarker}
|
|
@@ -1,28 +1,9 @@
|
|
|
1
|
-
import React
|
|
2
|
-
import { BallTriangle } from 'react-loader-spinner';
|
|
1
|
+
import React from 'react';
|
|
3
2
|
|
|
4
3
|
import List from '~/components/containers/list/item-list-container';
|
|
4
|
+
import Map from '~/components/containers/maps/map-container';
|
|
5
5
|
import Filter from '~/components/containers/filter/filter-container';
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
// Dynamically import the Map container (Google Maps is heavy)
|
|
9
|
-
const Map = lazy(() => import('~/components/containers/maps/map-container'));
|
|
10
|
-
|
|
11
|
-
// Loading placeholder that maintains layout
|
|
12
|
-
const MapLoadingPlaceholder = () => (
|
|
13
|
-
<div className="hc-w-full hc-h-full hc-bg-gray-100 hc-flex hc-items-center hc-justify-center hc-min-h-[400px]">
|
|
14
|
-
<BallTriangle
|
|
15
|
-
height={80}
|
|
16
|
-
width={80}
|
|
17
|
-
radius={5}
|
|
18
|
-
color="#2563eb"
|
|
19
|
-
ariaLabel="ball-triangle-loading"
|
|
20
|
-
wrapperStyle={{}}
|
|
21
|
-
wrapperClass=""
|
|
22
|
-
visible={true}
|
|
23
|
-
/>
|
|
24
|
-
</div>
|
|
25
|
-
);
|
|
6
|
+
import MapList from '~/components/modules/maps/map-list';
|
|
26
7
|
|
|
27
8
|
const MapListContainer = ({
|
|
28
9
|
loading = false,
|
|
@@ -37,9 +18,7 @@ const MapListContainer = ({
|
|
|
37
18
|
placeMappings,
|
|
38
19
|
mapPosition
|
|
39
20
|
}) => {
|
|
40
|
-
|
|
41
|
-
const { MapList } = useComponents();
|
|
42
|
-
|
|
21
|
+
|
|
43
22
|
const listProps = {
|
|
44
23
|
fieldsShown,
|
|
45
24
|
fieldNames,
|
|
@@ -57,20 +36,13 @@ const MapListContainer = ({
|
|
|
57
36
|
showMap
|
|
58
37
|
};
|
|
59
38
|
|
|
60
|
-
// Always render map immediately - it handles its own loading state
|
|
61
|
-
const mapComponent = showMap ? (
|
|
62
|
-
<Suspense fallback={<MapLoadingPlaceholder />}>
|
|
63
|
-
<Map {...mapProps} />
|
|
64
|
-
</Suspense>
|
|
65
|
-
) : null;
|
|
66
|
-
|
|
67
39
|
return (
|
|
68
40
|
<MapList
|
|
69
41
|
showMap={showMap}
|
|
70
42
|
containerStyle={containerStyle}
|
|
71
43
|
loading={loading}
|
|
72
44
|
list={<List {...listProps} />}
|
|
73
|
-
map={
|
|
45
|
+
map={<Map {...mapProps} />}
|
|
74
46
|
filter={<Filter showMap={showMap} className="md:hc-hidden" />}
|
|
75
47
|
mapPosition={mapPosition}
|
|
76
48
|
/>
|