diff --git a/projects/mercury/src/metadata/views/MetadataView.js b/projects/mercury/src/metadata/views/MetadataView.js index 7a8d384df..ef9e3b329 100644 --- a/projects/mercury/src/metadata/views/MetadataView.js +++ b/projects/mercury/src/metadata/views/MetadataView.js @@ -13,7 +13,7 @@ import MetadataViewContext from "./MetadataViewContext"; import BreadcrumbsContext from "../../common/contexts/BreadcrumbsContext"; import {getLocationContextFromString, getMetadataViewNameFromString} from "../../search/searchUtils"; import type {MetadataViewEntity} from "./metadataViewUtils"; -import {getMetadataViewsPath, ofBooleanValueType, ofRangeValueType, RESOURCES_VIEW} from "./metadataViewUtils"; +import {getMetadataViewsPath, getMetadataViewsPathContext, ofBooleanValueType, ofRangeValueType, RESOURCES_VIEW} from "./metadataViewUtils"; import MetadataViewActiveFacetFilters from "./MetadataViewActiveFacetFilters"; import MetadataViewInformationDrawer from "./MetadataViewInformationDrawer"; import {useSingleSelection} from "../../file/UseSelection"; @@ -356,7 +356,11 @@ export const ContextualMetadataView = (props: ContextualMetadataViewProperties) const handleViewChangeRedirect = (viewName) => { if (viewName) { - history.push(getMetadataViewsPath(viewName)); + if (locationContext) { + history.push(getMetadataViewsPathContext(viewName, locationContext)); + } else { + history.push(getMetadataViewsPath(viewName)); + } } }; diff --git a/projects/mercury/src/metadata/views/metadataViewUtils.js b/projects/mercury/src/metadata/views/metadataViewUtils.js index 350b05f43..c04d966c4 100644 --- a/projects/mercury/src/metadata/views/metadataViewUtils.js +++ b/projects/mercury/src/metadata/views/metadataViewUtils.js @@ -19,5 +19,13 @@ export const getMetadataViewsPath = (viewName: string) => { return path; }; +export const getMetadataViewsPathContext = (viewName: string, conText: string) => { + let path = '/metadata-views'; + if (viewName) { + path += `?context=${encodeURIComponent(conText)}&view=${viewName}`; + } + return path; +}; + export const ofRangeValueType: boolean = (type: ValueType) => type === 'Number' || type === 'Date'; export const ofBooleanValueType: boolean = (type: ValueType) => type === 'Boolean';