{variants.map((variant) => {
- const href = view.pageStateHandler.toUrl({
- datasetFilter: datasetFilter,
- variantFilter: variant,
- });
+ const applyFilters = () => {
+ setPageState({
+ datasetFilter: datasetFilter,
+ variantFilter: variant,
+ });
+ };
+
+ const displayName = toDisplayName(variant);
return (
-
- {toDisplayName(variant)}
+
+ {displayName}
);
})}
diff --git a/website/src/components/views/compareSideBySide/GenericCompareSideBySideDataDisplay.tsx b/website/src/components/views/compareSideBySide/GenericCompareSideBySideDataDisplay.tsx
index 53921b47..76e5da97 100644
--- a/website/src/components/views/compareSideBySide/GenericCompareSideBySideDataDisplay.tsx
+++ b/website/src/components/views/compareSideBySide/GenericCompareSideBySideDataDisplay.tsx
@@ -1,36 +1,28 @@
-import { type FC, useMemo } from 'react';
+import { type FC } from 'react';
-import type { OrganismsConfig } from '../../../config.ts';
import { Organisms } from '../../../types/Organism.ts';
import { chooseGranularityBasedOnDateRange } from '../../../util/chooseGranularityBasedOnDateRange.ts';
-import { ComponentHeight } from '../../../views/OrganismConstants.ts';
-import type { DatasetAndVariantData } from '../../../views/View.ts';
+import { BaseView } from '../../../views/BaseView.ts';
+import { ComponentHeight, type OrganismConstants } from '../../../views/OrganismConstants.ts';
+import type { CompareSideBySideData, DatasetAndVariantData } from '../../../views/View.ts';
+import { CompareSideBySideStateHandler } from '../../../views/pageStateHandlers/CompareSideBySidePageStateHandler.ts';
import { toLapisFilterWithoutVariant } from '../../../views/pageStateHandlers/toLapisFilterWithoutVariant.ts';
-import { type OrganismWithViewKey, Routing } from '../../../views/routing.ts';
-import { compareSideBySideViewKey } from '../../../views/viewKeys.ts';
import { GsAggregate } from '../../genspectrum/GsAggregate.tsx';
import { GsMutations } from '../../genspectrum/GsMutations.tsx';
import { GsPrevalenceOverTime } from '../../genspectrum/GsPrevalenceOverTime.tsx';
import { GsRelativeGrowthAdvantage } from '../../genspectrum/GsRelativeGrowthAdvantage.tsx';
export type GenericCompareSideBySideDataDisplayProps = {
- organismViewKey: `${OrganismWithViewKey
}.${typeof compareSideBySideViewKey}`;
- organismsConfig: OrganismsConfig;
+ view: BaseView;
datasetAndVariantData: DatasetAndVariantData;
hideMutationComponents?: boolean;
};
export const GenericCompareSideBySideDataDisplay: FC = ({
- organismViewKey,
- organismsConfig,
+ view,
datasetAndVariantData,
hideMutationComponents,
}) => {
- const view = useMemo(
- () => new Routing(organismsConfig).getOrganismView(organismViewKey),
- [organismsConfig, organismViewKey],
- );
-
const { datasetFilter, variantFilter } = datasetAndVariantData;
const datasetLapisFilter = toLapisFilterWithoutVariant(datasetFilter, view.organismConstants.additionalFilters);
diff --git a/website/src/components/views/compareSideBySide/GenericCompareSideBySideReactPage.tsx b/website/src/components/views/compareSideBySide/GenericCompareSideBySideReactPage.tsx
index 20e72eed..e4f3b5a2 100644
--- a/website/src/components/views/compareSideBySide/GenericCompareSideBySideReactPage.tsx
+++ b/website/src/components/views/compareSideBySide/GenericCompareSideBySideReactPage.tsx
@@ -7,6 +7,7 @@ import { OrganismViewPageLayout } from '../../../layouts/OrganismPage/OrganismVi
import { type OrganismViewKey, type OrganismWithViewKey, Routing } from '../../../views/routing';
import { compareSideBySideViewKey } from '../../../views/viewKeys';
import { CompareSideBySidePageStateSelector } from '../../pageStateSelectors/CompareSideBySidePageStateSelector';
+import { usePageState } from '../usePageState.ts';
export type GenericCompareSideBySideReactPageProps = {
organism: OrganismWithViewKey;
@@ -28,7 +29,7 @@ export const GenericCompareSideBySideReactPage: FC
)}