Skip to content
Snippets Groups Projects
Commit b2da20d0 authored by Adrian Orłów's avatar Adrian Orłów
Browse files

fix: pr rfc changes

parent 1fe5426b
No related branches found
No related tags found
2 merge requests!223reset the pin numbers before search results are fetch (so the results will be...,!63feat: add category pins rendering and global search input
Pipeline #82274 passed
......@@ -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 => {
......
......@@ -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());
};
import { SearchState } from './search.types';
export const SEARCH_INITIAL_STATE: SearchState = {
searchInput: '',
searchValue: [''],
perfectMatch: false,
loading: 'idle',
......
import { SearchState } from './search.types';
export const SEARCH_STATE_INITIAL_MOCK: SearchState = {
searchInput: '',
searchValue: [''],
perfectMatch: false,
loading: 'idle',
......
......@@ -9,7 +9,6 @@ import searchReducer, { setPerfectMatch } from './search.slice';
const SEARCH_QUERY = ['Corticosterone'];
const INITIAL_STATE: SearchState = {
searchInput: '',
searchValue: [''],
perfectMatch: false,
loading: 'idle',
......
// 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;
......
......@@ -15,5 +15,3 @@ export const isPendingSearchStatusSelector = createSelector(
);
export const perfectMatchSelector = createSelector(searchSelector, state => state.perfectMatch);
export const searchInputSelector = createSelector(searchSelector, state => state.searchInput);
......@@ -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;
......@@ -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>;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment