diff --git a/web/src/components/DLP/OverviewTab.vue b/web/src/components/DLP/OverviewTab.vue index 985f3a605..383ef52ea 100644 --- a/web/src/components/DLP/OverviewTab.vue +++ b/web/src/components/DLP/OverviewTab.vue @@ -109,11 +109,20 @@ - + + mdi-clipboard-list Assets Summary @@ -122,8 +131,21 @@ :style="`column-count: ${assetSummaryColumnCount};`" class="px-3 ml-2" > +
+ The assets summary is being computed, please wait. +
+
+ This Dandiset does not contain any assets. +
getCurrentInstance()?.proxy.$vuetify); + const store = useDandisetStore(); + const currentDandiset = computed(() => store.dandiset); + const contributors = computed( () => props.meta.contributor?.filter( (contributor) => !!(contributor.includeInCitation) && !!(contributor.schemaKey === 'Person'), @@ -290,12 +316,25 @@ export default defineComponent({ : Math.min(Object.keys(assetSummary.value).length, 3)), ); + const assetSummaryBeingComputed = computed(() => currentDandiset.value?.status === 'Pending'); + const contactPeople = computed( () => new Set(contributors.value .filter((contributor) => contributor.roleName?.includes('dcite:ContactPerson')) .map((contributor) => contributor.name)), ); + onMounted(() => { + setInterval(async () => { + if (!currentDandiset.value || !assetSummaryBeingComputed.value) { + return; + } + const { identifier } = currentDandiset.value.dandiset; + const { version } = currentDandiset.value; + await store.fetchDandiset({ identifier, version }); + }, 5000); + }); + return { contributors, fundingInformation, @@ -303,6 +342,7 @@ export default defineComponent({ associatedProjects, assetSummary, assetSummaryColumnCount, + assetSummaryBeingComputed, contactPeople, isURL, };