From b6a56c7969054fd6e55d2f1e4d6e2d54006acb85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mi=C5=82osz=20Grocholewski?= <m.grocholewski@atcomp.pl> Date: Wed, 27 Nov 2024 14:39:52 +0100 Subject: [PATCH] fix(data overlays): prevent clearing submapConnections by adding new reducer --- CHANGELOG | 6 ++++++ .../ClearAnchorsButton.component.test.tsx | 4 ++-- .../ClearAnchorsButton/ClearAnchorsButton.component.tsx | 4 ++-- .../listeners/mapSingleClick/handleAliasResults.test.ts | 4 ++-- .../utils/listeners/mapSingleClick/handleAliasResults.ts | 4 ++-- .../listeners/mapSingleClick/handleReactionResults.test.ts | 4 ++-- .../mapSingleClick/handleReactionSearchClickFailure.ts | 4 ++-- src/redux/bioEntity/bioEntity.reducers.ts | 4 +--- src/redux/bioEntity/bioEntity.slice.ts | 6 +++--- src/redux/search/search.thunks.ts | 3 --- src/services/pluginsManager/bioEntities/clearAllElements.ts | 4 ++-- 11 files changed, 24 insertions(+), 23 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 62ff5d3a..164d4397 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +minerva-front (18.0.5) stable; urgency=medium + * Bug fix: anchor overlays were disappearing after clicking on anchor and + outside of the anchor (#319) + + -- Piotr Gawron <piotr.gawron@uni.lu> Wed, 27 Nov 2024 13:00:00 +0200 + minerva-front (18.0.4) stable; urgency=medium * Bug fix: link to search result from overview image caused map not to load (#318) diff --git a/src/components/FunctionalArea/TopBar/ClearAnchorsButton/ClearAnchorsButton.component.test.tsx b/src/components/FunctionalArea/TopBar/ClearAnchorsButton/ClearAnchorsButton.component.test.tsx index 0180c8a6..b8bc885a 100644 --- a/src/components/FunctionalArea/TopBar/ClearAnchorsButton/ClearAnchorsButton.component.test.tsx +++ b/src/components/FunctionalArea/TopBar/ClearAnchorsButton/ClearAnchorsButton.component.test.tsx @@ -49,7 +49,7 @@ describe('ClearAnchorsButton - component', () => { { payload: undefined, type: 'contextMenu/closeContextMenu' }, { payload: undefined, type: 'reactions/resetReactionsData' }, { payload: undefined, type: 'search/clearSearchData' }, - { payload: undefined, type: 'bioEntityContents/clearBioEntitiesData' }, + { payload: undefined, type: 'bioEntityContents/clearBioEntities' }, { payload: undefined, type: 'drugs/clearDrugsData' }, { payload: undefined, type: 'chemicals/clearChemicalsData' }, ]); @@ -75,7 +75,7 @@ describe('ClearAnchorsButton - component', () => { { payload: undefined, type: 'contextMenu/closeContextMenu' }, { payload: undefined, type: 'reactions/resetReactionsData' }, { payload: undefined, type: 'search/clearSearchData' }, - { payload: undefined, type: 'bioEntityContents/clearBioEntitiesData' }, + { payload: undefined, type: 'bioEntityContents/clearBioEntities' }, { payload: undefined, type: 'drugs/clearDrugsData' }, { payload: undefined, type: 'chemicals/clearChemicalsData' }, ]); diff --git a/src/components/FunctionalArea/TopBar/ClearAnchorsButton/ClearAnchorsButton.component.tsx b/src/components/FunctionalArea/TopBar/ClearAnchorsButton/ClearAnchorsButton.component.tsx index 3be4a770..0cb34178 100644 --- a/src/components/FunctionalArea/TopBar/ClearAnchorsButton/ClearAnchorsButton.component.tsx +++ b/src/components/FunctionalArea/TopBar/ClearAnchorsButton/ClearAnchorsButton.component.tsx @@ -1,4 +1,4 @@ -import { clearBioEntitiesData } from '@/redux/bioEntity/bioEntity.slice'; +import { clearBioEntities } from '@/redux/bioEntity/bioEntity.slice'; import { clearChemicalsData } from '@/redux/chemicals/chemicals.slice'; import { closeContextMenu } from '@/redux/contextMenu/contextMenu.slice'; import { resultDrawerOpen } from '@/redux/drawer/drawer.selectors'; @@ -31,7 +31,7 @@ export const ClearAnchorsButton = (): React.ReactNode => { dispatch(clearSearchData()); // Reset old pins data - dispatch(clearBioEntitiesData()); + dispatch(clearBioEntities()); dispatch(clearDrugsData()); dispatch(clearChemicalsData()); }; diff --git a/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleAliasResults.test.ts b/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleAliasResults.test.ts index aae76f61..85fc7dc1 100644 --- a/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleAliasResults.test.ts +++ b/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleAliasResults.test.ts @@ -79,7 +79,7 @@ describe('handleAliasResults - util', () => { 'project/getBioEntityById/fulfilled', 'entityNumber/addNumbersToEntityNumberData', 'project/getMultiBioEntity/fulfilled', - 'bioEntityContents/clearBioEntitiesData', + 'bioEntityContents/clearBioEntities', ]); }); }); @@ -120,7 +120,7 @@ describe('handleAliasResults - util', () => { 'entityNumber/addNumbersToEntityNumberData', 'project/getMultiBioEntity/fulfilled', 'drawer/closeDrawer', - 'bioEntityContents/clearBioEntitiesData', + 'bioEntityContents/clearBioEntities', ]); }); }); diff --git a/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleAliasResults.ts b/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleAliasResults.ts index 02c8312e..c3d05aba 100644 --- a/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleAliasResults.ts +++ b/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleAliasResults.ts @@ -3,7 +3,7 @@ import { AppDispatch } from '@/redux/store'; import { searchFitBounds } from '@/services/pluginsManager/map/triggerSearch/searchFitBounds'; import { ElementSearchResult } from '@/types/models'; import { PluginsEventBus } from '@/services/pluginsManager/pluginsEventBus'; -import { clearBioEntitiesData } from '@/redux/bioEntity/bioEntity.slice'; +import { clearBioEntities } from '@/redux/bioEntity/bioEntity.slice'; import { Point } from '@/types/map'; import { getMultiBioEntityByIds } from '@/redux/bioEntity/thunks/getMultiBioEntity'; import { findClosestBioEntityPoint } from './findClosestBioEntityPoint'; @@ -37,7 +37,7 @@ export const handleAliasResults = dispatch(closeDrawer()); } - dispatch(clearBioEntitiesData()); + dispatch(clearBioEntities()); return; } } diff --git a/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleReactionResults.test.ts b/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleReactionResults.test.ts index cdd0e68d..6fef43df 100644 --- a/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleReactionResults.test.ts +++ b/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleReactionResults.test.ts @@ -212,7 +212,7 @@ describe('handleReactionResults - util', () => { 'reactions/getByIds/fulfilled', 'drawer/closeDrawer', 'reactions/resetReactionsData', - 'bioEntityContents/clearBioEntitiesData', + 'bioEntityContents/clearBioEntities', ]); }); @@ -235,7 +235,7 @@ describe('handleReactionResults - util', () => { expect(dispatchSpy).toHaveBeenCalledWith({ payload: undefined, - type: 'bioEntityContents/clearBioEntitiesData', + type: 'bioEntityContents/clearBioEntities', }); }); }); diff --git a/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleReactionSearchClickFailure.ts b/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleReactionSearchClickFailure.ts index 7368bb18..30c6178f 100644 --- a/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleReactionSearchClickFailure.ts +++ b/src/components/Map/MapViewer/utils/listeners/mapSingleClick/handleReactionSearchClickFailure.ts @@ -1,7 +1,7 @@ import { AppDispatch } from '@/redux/store'; import { closeDrawer } from '@/redux/drawer/drawer.slice'; import { resetReactionsData } from '@/redux/reactions/reactions.slice'; -import { clearBioEntitiesData } from '@/redux/bioEntity/bioEntity.slice'; +import { clearBioEntities } from '@/redux/bioEntity/bioEntity.slice'; export const handleReactionSearchClickFailure = ( dispatch: AppDispatch, @@ -11,5 +11,5 @@ export const handleReactionSearchClickFailure = ( dispatch(closeDrawer()); } dispatch(resetReactionsData()); - dispatch(clearBioEntitiesData()); + dispatch(clearBioEntities()); }; diff --git a/src/redux/bioEntity/bioEntity.reducers.ts b/src/redux/bioEntity/bioEntity.reducers.ts index 3f68a154..681595c0 100644 --- a/src/redux/bioEntity/bioEntity.reducers.ts +++ b/src/redux/bioEntity/bioEntity.reducers.ts @@ -107,11 +107,9 @@ export const getSubmapConnectionsBioEntityReducer = ( }); }; -export const clearBioEntitiesDataReducer = (state: BioEntityContentsState): void => { +export const clearBioEntitiesReducer = (state: BioEntityContentsState): void => { state.data = []; state.loading = 'idle'; - - state.submapConnections = BIOENTITY_SUBMAP_CONNECTIONS_INITIAL_STATE; }; export const toggleIsContentTabOpenedReducer = ( diff --git a/src/redux/bioEntity/bioEntity.slice.ts b/src/redux/bioEntity/bioEntity.slice.ts index 728467a9..6ccf3f2f 100644 --- a/src/redux/bioEntity/bioEntity.slice.ts +++ b/src/redux/bioEntity/bioEntity.slice.ts @@ -1,7 +1,7 @@ import { createSlice } from '@reduxjs/toolkit'; import { BIOENTITY_INITIAL_STATE } from './bioEntity.constants'; import { - clearBioEntitiesDataReducer, + clearBioEntitiesReducer, getBioEntityContentsReducer, getMultiBioEntityContentsReducer, getSubmapConnectionsBioEntityReducer, @@ -12,7 +12,7 @@ export const bioEntityContentsSlice = createSlice({ name: 'bioEntityContents', initialState: BIOENTITY_INITIAL_STATE, reducers: { - clearBioEntitiesData: clearBioEntitiesDataReducer, + clearBioEntities: clearBioEntitiesReducer, toggleIsContentTabOpened: toggleIsContentTabOpenedReducer, }, extraReducers: builder => { @@ -22,6 +22,6 @@ export const bioEntityContentsSlice = createSlice({ }, }); -export const { clearBioEntitiesData, toggleIsContentTabOpened } = bioEntityContentsSlice.actions; +export const { clearBioEntities, toggleIsContentTabOpened } = bioEntityContentsSlice.actions; export default bioEntityContentsSlice.reducer; diff --git a/src/redux/search/search.thunks.ts b/src/redux/search/search.thunks.ts index 5d1e36e8..b95730d2 100644 --- a/src/redux/search/search.thunks.ts +++ b/src/redux/search/search.thunks.ts @@ -9,7 +9,6 @@ import { resetReactionsData } from '../reactions/reactions.slice'; import type { RootState } from '../store'; import { DATA_SEARCHING_ERROR_PREFIX } from './search.constants'; import { dispatchPluginsEvents } from './search.thunks.utils'; -import { getSubmapConnectionsBioEntity } from '../bioEntity/thunks/getSubmapConnectionsBioEntity'; type GetSearchDataProps = PerfectMultiSearchParams; @@ -34,13 +33,11 @@ export const getSearchData = createAsyncThunk< dispatch(getMultiBioEntity({ searchQueries, isPerfectMatch })), dispatch(getMultiDrugs(searchQueries)), dispatch(getMultiChemicals(searchQueries)), - dispatch(getSubmapConnectionsBioEntity()), ]); } else { await Promise.all([ dispatch(getMultiBioEntity({ searchQueries, isPerfectMatch })), dispatch(getMultiDrugs(searchQueries)), - dispatch(getSubmapConnectionsBioEntity()), ]); } diff --git a/src/services/pluginsManager/bioEntities/clearAllElements.ts b/src/services/pluginsManager/bioEntities/clearAllElements.ts index 9177d501..ce8a4ee7 100644 --- a/src/services/pluginsManager/bioEntities/clearAllElements.ts +++ b/src/services/pluginsManager/bioEntities/clearAllElements.ts @@ -1,4 +1,4 @@ -import { clearBioEntitiesData } from '@/redux/bioEntity/bioEntity.slice'; +import { clearBioEntities } from '@/redux/bioEntity/bioEntity.slice'; import { clearChemicalsData } from '@/redux/chemicals/chemicals.slice'; import { clearDrugsData } from '@/redux/drugs/drugs.slice'; import { setMarkersData } from '@/redux/markers/markers.slice'; @@ -10,7 +10,7 @@ export const clearAllElements = (elements: ElementName[]): void => { const { dispatch } = store; if (elements.includes('content')) { - dispatch(clearBioEntitiesData()); + dispatch(clearBioEntities()); } if (elements.includes('chemicals')) { -- GitLab