11---
2- import { views } from ' @genspectrum/dashboard-components/util' ;
3-
4- import QuickstartLinks from ' ./QuickstartLinks.astro' ;
5- import { SelectVariant } from ' ./SelectVariant' ;
2+ import { GenericAnalyseSingleVariantDataDisplay } from ' ./GenericAnalyseSingleVariantDataDisplay' ;
63import { getDashboardsConfig } from ' ../../../config' ;
74import SingleVariantOrganismPageLayout from ' ../../../layouts/OrganismPage/SingleVariantOrganismPageLayout.astro' ;
85import { Organisms } from ' ../../../types/Organism' ;
9- import { chooseGranularityBasedOnDateRange } from ' ../../../util/chooseGranularityBasedOnDateRange' ;
106import { hasOnlyUndefinedValues } from ' ../../../util/hasOnlyUndefinedValues' ;
11- import { getLocationSubdivision } from ' ../../../views/locationHelpers' ;
127import { toDisplayName } from ' ../../../views/pageStateHandlers/PageStateHandler' ;
13- import { locationFieldsToFilterIdentifier } from ' ../../../views/pageStateHandlers/locationFilterFromToUrl' ;
148import { type OrganismViewKey , type OrganismWithViewKey } from ' ../../../views/routing' ;
159import { ServerSide } from ' ../../../views/serverSideRouting' ;
1610import { singleVariantViewKey } from ' ../../../views/viewKeys' ;
17- import ComponentsGrid from ' ../../ComponentsGrid.astro' ;
18- import GsAggregate from ' ../../genspectrum/GsAggregate.astro' ;
19- import GsMutations from ' ../../genspectrum/GsMutations.astro' ;
20- import GsMutationsOverTime from ' ../../genspectrum/GsMutationsOverTime.astro' ;
21- import GsPrevalenceOverTime from ' ../../genspectrum/GsPrevalenceOverTime.astro' ;
22- import GsStatistics from ' ../../genspectrum/GsStatistics.astro' ;
2311import { AnalyzeSingleVariantSelectorFallback } from ' ../../pageStateSelectors/FallbackElement' ;
2412import { SingleVariantPageStateSelector } from ' ../../pageStateSelectors/SingleVariantPageStateSelector' ;
2513import { sanitizeForFilename } from ' ../compareSideBySide/toDownloadLink' ;
@@ -36,19 +24,11 @@ const view = ServerSide.routing.getOrganismView(organismViewKey);
3624const pageState = view .pageStateHandler .parsePageStateFromUrl (Astro .url );
3725
3826const variantLapisFilter = view .pageStateHandler .toLapisFilter (pageState );
39- const datasetLapisFilter = view .pageStateHandler .toLapisFilterWithoutVariant (pageState );
40- const timeGranularity = chooseGranularityBasedOnDateRange ({
41- earliestDate: new Date (view .organismConstants .earliestDate ),
42- dateRange: pageState .datasetFilter .dateFilters [view .organismConstants .mainDateField ],
43- });
44-
45- const { label : subdivisionLabel, field : subdivisionField } = getLocationSubdivision (
46- view .organismConstants .locationFields ,
47- pageState .datasetFilter .locationFilters [locationFieldsToFilterIdentifier (view .organismConstants .locationFields )],
48- );
4927
5028const noVariantSelected = hasOnlyUndefinedValues (pageState .variantFilter );
5129
30+ const organismConfig = getDashboardsConfig ().dashboards .organisms ;
31+
5232const displayName = toDisplayName (pageState .variantFilter );
5333const downloadLinks = noVariantSelected
5434 ? []
@@ -65,82 +45,19 @@ const downloadLinks = noVariantSelected
6545 <SingleVariantPageStateSelector
6646 slot =' filters'
6747 organismViewKey ={ organismViewKey }
68- organismsConfig ={ getDashboardsConfig (). dashboards . organisms }
48+ organismsConfig ={ organismConfig }
6949 initialPageState ={ pageState }
7050 client:only =' react'
7151 >
7252 <AnalyzeSingleVariantSelectorFallback slot =' fallback' />
7353 </SingleVariantPageStateSelector >
7454
75- <div class =' mx-[8px] flex flex-col gap-y-6' slot =' dataDisplay' >
76- {
77- noVariantSelected && (
78- <SelectVariant >
79- <QuickstartLinks view = { view } />
80- </SelectVariant >
81- )
82- }
83- <GsStatistics numeratorFilter ={ variantLapisFilter } denominatorFilter ={ datasetLapisFilter } />
84- <ComponentsGrid >
85- <GsPrevalenceOverTime
86- numeratorFilters ={ [
87- {
88- displayName: ' ' ,
89- lapisFilter: variantLapisFilter ,
90- },
91- ]}
92- denominatorFilter ={ datasetLapisFilter }
93- lapisDateField ={ view .organismConstants .mainDateField }
94- granularity ={ timeGranularity }
95- pageSize ={ 10 }
96- />
97- <GsMutations
98- lapisFilter ={ variantLapisFilter }
99- baselineLapisFilter ={ datasetLapisFilter }
100- sequenceType =' nucleotide'
101- pageSize ={ 10 }
102- />
103- <GsMutations
104- lapisFilter ={ variantLapisFilter }
105- baselineLapisFilter ={ datasetLapisFilter }
106- sequenceType =' amino acid'
107- pageSize ={ 10 }
108- />
109- {
110- subdivisionField !== undefined && (
111- <GsAggregate
112- title = { subdivisionLabel }
113- fields = { [subdivisionField ]}
114- lapisFilter = { variantLapisFilter }
115- views = { [views .table , views .bar ]}
116- pageSize = { 10 }
117- />
118- )
119- }
120-
121- {
122- view .organismConstants .aggregatedVisualizations .singleVariant .map (({ label , fields , views }) => (
123- <GsAggregate
124- title = { label }
125- fields = { fields }
126- lapisFilter = { variantLapisFilter }
127- views = { views }
128- pageSize = { 10 }
129- />
130- ))
131- }
132- </ComponentsGrid >
133- <GsMutationsOverTime
134- lapisFilter ={ variantLapisFilter }
135- sequenceType =' nucleotide'
136- granularity ={ timeGranularity }
137- lapisDateField ={ view .organismConstants .mainDateField }
138- />
139- <GsMutationsOverTime
140- lapisFilter ={ variantLapisFilter }
141- sequenceType =' amino acid'
142- granularity ={ timeGranularity }
143- lapisDateField ={ view .organismConstants .mainDateField }
55+ <div slot =' dataDisplay' >
56+ <GenericAnalyseSingleVariantDataDisplay
57+ organismViewKey ={ organismViewKey }
58+ organismsConfig ={ organismConfig }
59+ pageState ={ pageState }
60+ client:load
14461 />
14562 </div >
14663</SingleVariantOrganismPageLayout >
0 commit comments