Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | import { LngLatLike } from "maplibre-gl"; import { GeocodeResult } from "utils/hooks"; import { FilterOptions } from "../SearchPage"; import { useMapSearchDispatch } from "../state/mapSearchContext"; import { mapSearchActionTypes, MapSearchState, } from "../state/mapSearchReducers"; import { Coordinates } from "../utils/constants"; function useMapSearchActions() { const dispatch = useMapSearchDispatch(); const setMapQueryArea = ( bbox: MapSearchState["search"]["bbox"], zoom?: MapSearchState["uiOnly"]["zoom"], ) => { dispatch({ type: mapSearchActionTypes.SET_MAP_QUERY_AREA, payload: { bbox, zoom }, }); }; const clearKeywordInputValue = () => { dispatch({ type: mapSearchActionTypes.CLEAR_KEYWORD_INPUT_VALUE, }); }; const setKeywordInputValue = (keyword: string) => { dispatch({ type: mapSearchActionTypes.SET_KEYWORD_INPUT_VALUE, payload: { keyword }, }); }; const setLocationInputValue = ({ location, center, zoom, }: { location: GeocodeResult | undefined; center: LngLatLike | undefined; zoom: number | undefined; }) => { dispatch({ type: mapSearchActionTypes.SET_SEARCH_INPUT_VALUE, payload: { location, center, zoom }, }); }; const setSearchFilters = (newFilters: FilterOptions) => { dispatch({ type: mapSearchActionTypes.SET_FILTERS, payload: newFilters, }); }; const clearSearchInputValue = (bbox: Coordinates | undefined) => { dispatch({ type: mapSearchActionTypes.CLEAR_SEARCH_INPUT_VALUE, payload: { bbox }, }); }; const setMoveMapUIOnly = ({ bbox, center, zoom, }: { bbox?: MapSearchState["uiOnly"]["bbox"]; center?: MapSearchState["uiOnly"]["center"]; zoom?: MapSearchState["uiOnly"]["zoom"]; }) => { dispatch({ type: mapSearchActionTypes.SET_MOVE_MAP_UI_ONLY, payload: { bbox, center, zoom }, }); }; const setSelectedUserId = (userId: number | undefined) => { dispatch({ type: mapSearchActionTypes.SET_SELECTED_USER_ID, payload: { userId }, }); document .getElementById(`search-result-${userId}`) ?.scrollIntoView({ behavior: "smooth" }); }; const clearSearchFilters = () => { dispatch({ type: mapSearchActionTypes.RESET_FILTERS }); }; const setPageNumber = (pageNumber: number) => { dispatch({ type: mapSearchActionTypes.SET_PAGE_NUMBER, payload: { pageNumber }, }); }; const setShowSearchThisAreaButton = (showSearchThisAreaButton: boolean) => { dispatch({ type: mapSearchActionTypes.SET_SHOW_SEARCH_THIS_AREA_BUTTON, payload: { showSearchThisAreaButton }, }); }; return { clearKeywordInputValue, clearSearchFilters, clearSearchInputValue, setKeywordInputValue, setMoveMapUIOnly, setPageNumber, setLocationInputValue, setMapQueryArea, setSearchFilters, setSelectedUserId, setShowSearchThisAreaButton, }; } export { useMapSearchActions }; |