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