Skip to content

Commit

Permalink
fix(nuxt3-ssr): Fix cohort only landing page (#4299)
Browse files Browse the repository at this point in the history
- filter sections if cohort only is set
- remove unneeded async data wrapper
- fix ts types issues
- fix and update sub-cohort/popiulation/card
  • Loading branch information
connoratrug authored Oct 3, 2024
1 parent 0d21289 commit 3f1943a
Showing 1 changed file with 51 additions and 42 deletions.
93 changes: 51 additions & 42 deletions apps/nuxt3-ssr/pages/[schema]/ssr-catalogue/[catalogue]/index.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script setup lang="ts">
import type { IMgError } from "~~/interfaces/types";
import type { ISetting } from "../../../../../metadata-utils/src/types";
const route = useRoute();
const config = useRuntimeConfig();
Expand Down Expand Up @@ -65,8 +65,8 @@ const query = `query CataloguePage($networksFilter:ResourcesFilter,$variablesFil
"CATALOGUE_LANDING_SAMPLES_TEXT"
"CATALOGUE_LANDING_DESIGN_LABEL"
"CATALOGUE_LANDING_DESIGN_TEXT"
"CATALOGUE_LANDING_SUBCOHORTS_LABEL"
"CATALOGUE_LANDING_SUBCOHORTS_TEXT"
"CATALOGUE_LANDING_SUBPOPULATIONS_LABEL"
"CATALOGUE_LANDING_SUBPOPULATIONS_TEXT"
]){
key
value
Expand All @@ -90,42 +90,38 @@ const resourceFilter = scoped
}
: undefined;
const { data, error } = await useAsyncData<any, IMgError>(
`lading-page-${catalogueRouteParam}`,
async () => {
const variablesFilter = scoped
? {
_or: [
{ resource: { id: { equals: catalogueRouteParam } } },
//also include network of networks
{
resource: {
type: { name: { equals: "Network" } },
partOfResources: { id: { equals: catalogueRouteParam } },
const { data, error } = await useFetch(`/${route.params.schema}/graphql`, {
method: "POST",
key: `lading-page-${catalogueRouteParam}`,
body: {
query,
variables: {
networksFilter,
resourceFilter,
variablesFilter: scoped
? {
_or: [
{ resource: { id: { equals: catalogueRouteParam } } },
//also include network of networks
{
resource: {
type: { name: { equals: "Network" } },
partOfResources: { id: { equals: catalogueRouteParam } },
},
},
},
],
}
: //should only include harmonised variables
{ resource: { type: { name: { equals: "Network" } } } };
return $fetch(`/${route.params.schema}/graphql`, {
method: "POST",
body: {
query,
variables: {
networksFilter,
variablesFilter,
resourceFilter,
},
},
});
}
);
],
}
: //should only include harmonised variables
{ resource: { type: { name: { equals: "Network" } } } },
},
},
});
if (error.value) {
const contextMsg = "Error on landing-page data fetch";
logError(error.value, contextMsg);
if (error.value.data) {
logError(error.value.data, contextMsg);
}
throw new Error(contextMsg);
}
Expand Down Expand Up @@ -175,6 +171,17 @@ const description = computed(() => {
});
const aboutLink = `/${route.params.schema}/ssr-catalogue/${catalogueRouteParam}/networks/${catalogueRouteParam}`;
const resources = computed(() => {
if (cohortOnly.value) {
return data.value.data.Resources_groupBy.filter(
(resource: { type: { name: string } }) =>
resource.type.name === "Cohort study"
);
} else {
return data.value.data.Resources_groupBy;
}
});
</script>

<template>
Expand All @@ -194,7 +201,7 @@ const aboutLink = `/${route.params.schema}/ssr-catalogue/${catalogueRouteParam}/
</PageHeader>
<LandingPrimary>
<LandingCardPrimary
v-for="resource in data.data.Resources_groupBy"
v-for="resource in resources"
:image="
getResourceMetadataForType(resource.type.name).image || 'image-link'
"
Expand Down Expand Up @@ -232,7 +239,7 @@ const aboutLink = `/${route.params.schema}/ssr-catalogue/${catalogueRouteParam}/
/>
<LandingCardPrimary
v-if="network.id === 'FORCE-NEN collections'"
v-if="!cohortOnly && network.id === 'FORCE-NEN collections'"
image="image-data-warehouse"
title="Aggregates"
callToAction="Aggregates"
Expand Down Expand Up @@ -308,19 +315,21 @@ const aboutLink = `/${route.params.schema}/ssr-catalogue/${catalogueRouteParam}/
<LandingCardSecondary
icon="viewTable"
v-if="data.data.Subpopulations?.count"
v-if="data.data.Subpopulations_agg"
>
<b>
{{ data.data.Subpopulations_agg.count }}
{{
getSettingValue("CATALOGUE_LANDING_COHORTS_LABEL", settings) ||
"Cohorts"
getSettingValue(
"CATALOGUE_LANDING_SUBPOPULATIONS_LABEL",
settings
) || "Subpopulations"
}}
</b>
<br />
{{
getSettingValue("CATALOGUE_LANDING_COHORTS_TEXT", settings) ||
"The total number of cohorts included"
getSettingValue("CATALOGUE_LANDING_SUBPOPULATIONS_TEXT", settings) ||
"The total number of subpopulations included"
}}
</LandingCardSecondary>
</LandingSecondary>
Expand Down

0 comments on commit 3f1943a

Please sign in to comment.