From b2da20d065da717ad8dda9924e5a12294d72de26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Or=C5=82=C3=B3w?= <adrian.orlow@fishbrain.com> Date: Wed, 29 Nov 2023 13:55:57 +0100 Subject: [PATCH] fix: pr rfc changes --- .../TopBar/SearchBar/SearchBar.component.tsx | 8 +++----- .../utils/listeners/mapSingleClick/handleDataReset.ts | 5 +++++ src/redux/search/search.constants.ts | 1 - src/redux/search/search.mock.ts | 1 - src/redux/search/search.reducers.test.ts | 1 - src/redux/search/search.reducers.ts | 11 +---------- src/redux/search/search.selectors.ts | 2 -- src/redux/search/search.slice.ts | 4 +--- src/redux/search/search.types.ts | 4 ---- 9 files changed, 10 insertions(+), 27 deletions(-) diff --git a/src/components/FunctionalArea/TopBar/SearchBar/SearchBar.component.tsx b/src/components/FunctionalArea/TopBar/SearchBar/SearchBar.component.tsx index cecb6612..f7e15f5e 100644 --- a/src/components/FunctionalArea/TopBar/SearchBar/SearchBar.component.tsx +++ b/src/components/FunctionalArea/TopBar/SearchBar/SearchBar.component.tsx @@ -5,22 +5,20 @@ import { useAppDispatch } from '@/redux/hooks/useAppDispatch'; import { isPendingSearchStatusSelector, perfectMatchSelector, - searchInputSelector, } from '@/redux/search/search.selectors'; -import { setSearchInput } from '@/redux/search/search.slice'; import { getSearchData } from '@/redux/search/search.thunks'; import Image from 'next/image'; -import { ChangeEvent, KeyboardEvent } from 'react'; +import { ChangeEvent, KeyboardEvent, useState } from 'react'; import { useSelector } from 'react-redux'; import { getDefaultSearchTab, getSearchValuesArrayAndTrimToSeven } from './SearchBar.utils'; const ENTER_KEY_CODE = 'Enter'; export const SearchBar = (): JSX.Element => { + const [searchValue, setSearchValue] = useState<string>(''); const isPendingSearchStatus = useSelector(isPendingSearchStatusSelector); const isDrawerOpen = useSelector(isDrawerOpenSelector); const isPerfectMatch = useSelector(perfectMatchSelector); - const searchValue = useSelector(searchInputSelector); const dispatch = useAppDispatch(); const openSearchDrawerIfClosed = (defaultSearchTab: string): void => { @@ -30,7 +28,7 @@ export const SearchBar = (): JSX.Element => { }; const onSearchChange = (event: ChangeEvent<HTMLInputElement>): void => { - dispatch(setSearchInput(event.target.value)); + setSearchValue(event.target.value); }; const onSearchClick = (): void => { diff --git a/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleDataReset.ts b/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleDataReset.ts index 1bc13bd1..3e52a725 100644 --- a/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleDataReset.ts +++ b/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleDataReset.ts @@ -5,8 +5,13 @@ import { clearSearchData } from '@/redux/search/search.slice'; import { AppDispatch } from '@/redux/store'; export const handleDataReset = (dispatch: AppDispatch): void => { + // Reset reactions list to prevent keeping the old selected reaction rendered dispatch(resetReactionsData()); + + // Reset search data to prevent invalid filtering of the click-search () dispatch(clearSearchData()); + + // Reset old pins data dispatch(clearDrugsData()); dispatch(clearChemicalsData()); }; diff --git a/src/redux/search/search.constants.ts b/src/redux/search/search.constants.ts index 9a7afe4d..96277846 100644 --- a/src/redux/search/search.constants.ts +++ b/src/redux/search/search.constants.ts @@ -1,7 +1,6 @@ import { SearchState } from './search.types'; export const SEARCH_INITIAL_STATE: SearchState = { - searchInput: '', searchValue: [''], perfectMatch: false, loading: 'idle', diff --git a/src/redux/search/search.mock.ts b/src/redux/search/search.mock.ts index d5e7cc4a..16f5498f 100644 --- a/src/redux/search/search.mock.ts +++ b/src/redux/search/search.mock.ts @@ -1,7 +1,6 @@ import { SearchState } from './search.types'; export const SEARCH_STATE_INITIAL_MOCK: SearchState = { - searchInput: '', searchValue: [''], perfectMatch: false, loading: 'idle', diff --git a/src/redux/search/search.reducers.test.ts b/src/redux/search/search.reducers.test.ts index 76a76b3c..51bab3d5 100644 --- a/src/redux/search/search.reducers.test.ts +++ b/src/redux/search/search.reducers.test.ts @@ -9,7 +9,6 @@ import searchReducer, { setPerfectMatch } from './search.slice'; const SEARCH_QUERY = ['Corticosterone']; const INITIAL_STATE: SearchState = { - searchInput: '', searchValue: [''], perfectMatch: false, loading: 'idle', diff --git a/src/redux/search/search.reducers.ts b/src/redux/search/search.reducers.ts index 48353721..1a08e168 100644 --- a/src/redux/search/search.reducers.ts +++ b/src/redux/search/search.reducers.ts @@ -1,16 +1,11 @@ // updating state import { getSearchData } from '@/redux/search/search.thunks'; -import { - SearchState, - SetPerfectMatchAction, - SetSearchInputAction, -} from '@/redux/search/search.types'; +import { SearchState, SetPerfectMatchAction } from '@/redux/search/search.types'; import { ActionReducerMapBuilder } from '@reduxjs/toolkit'; import { SEARCH_INITIAL_STATE } from './search.constants'; export const getSearchDataReducer = (builder: ActionReducerMapBuilder<SearchState>): void => { builder.addCase(getSearchData.pending, (state, action) => { - state.searchInput = action.meta.arg.searchQueries.join(';'); state.searchValue = action.meta.arg.searchQueries; state.perfectMatch = action.meta.arg.isPerfectMatch; state.loading = 'pending'; @@ -28,10 +23,6 @@ export const setPerfectMatchReducer = (state: SearchState, action: SetPerfectMat state.perfectMatch = action.payload; }; -export const setSearchInputReducer = (state: SearchState, action: SetSearchInputAction): void => { - state.searchInput = action.payload; -}; - export const clearSearchDataReducer = (state: SearchState): void => { state.searchValue = SEARCH_INITIAL_STATE.searchValue; state.loading = SEARCH_INITIAL_STATE.loading; diff --git a/src/redux/search/search.selectors.ts b/src/redux/search/search.selectors.ts index 0add08e0..f2c3b256 100644 --- a/src/redux/search/search.selectors.ts +++ b/src/redux/search/search.selectors.ts @@ -15,5 +15,3 @@ export const isPendingSearchStatusSelector = createSelector( ); export const perfectMatchSelector = createSelector(searchSelector, state => state.perfectMatch); - -export const searchInputSelector = createSelector(searchSelector, state => state.searchInput); diff --git a/src/redux/search/search.slice.ts b/src/redux/search/search.slice.ts index f746f06e..8856ebfb 100644 --- a/src/redux/search/search.slice.ts +++ b/src/redux/search/search.slice.ts @@ -2,7 +2,6 @@ import { clearSearchDataReducer, getSearchDataReducer, setPerfectMatchReducer, - setSearchInputReducer, } from '@/redux/search/search.reducers'; import { createSlice } from '@reduxjs/toolkit'; import { SEARCH_INITIAL_STATE } from './search.constants'; @@ -12,7 +11,6 @@ export const searchSlice = createSlice({ initialState: SEARCH_INITIAL_STATE, reducers: { setPerfectMatch: setPerfectMatchReducer, - setSearchInput: setSearchInputReducer, clearSearchData: clearSearchDataReducer, }, extraReducers(builder) { @@ -20,6 +18,6 @@ export const searchSlice = createSlice({ }, }); -export const { setPerfectMatch, setSearchInput, clearSearchData } = searchSlice.actions; +export const { setPerfectMatch, clearSearchData } = searchSlice.actions; export default searchSlice.reducer; diff --git a/src/redux/search/search.types.ts b/src/redux/search/search.types.ts index dfb86854..9525aa08 100644 --- a/src/redux/search/search.types.ts +++ b/src/redux/search/search.types.ts @@ -2,7 +2,6 @@ import { Loading } from '@/types/loadingState'; import { PayloadAction } from '@reduxjs/toolkit'; export interface SearchState { - searchInput: string; searchValue: string[]; perfectMatch: boolean; loading: Loading; @@ -10,6 +9,3 @@ export interface SearchState { export type SetPerfectMatchPayload = boolean; export type SetPerfectMatchAction = PayloadAction<SetPerfectMatchPayload>; - -export type SetSearchInputPayload = string; -export type SetSearchInputAction = PayloadAction<SetSearchInputPayload>; -- GitLab