Skip to content

Commit

Permalink
Fix behavior of starred dandisets page
Browse files Browse the repository at this point in the history
  • Loading branch information
jjnesbitt committed Dec 30, 2024
1 parent bb14cbf commit c50f705
Showing 1 changed file with 2 additions and 71 deletions.
73 changes: 2 additions & 71 deletions web/src/views/StarredDandisetsView/StarredDandisetsView.vue
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
<template>
<DandisetsPage
title="Starred Dandisets"
:dandisets="dandisets"
:loading="loading"
:total="total"
:page="page"
:page-size="pageSize"
@page-change="handlePageChange"
starred
>
<template #empty>
<v-alert
Expand All @@ -19,70 +14,6 @@
</DandisetsPage>
</template>

<script lang="ts">
import { defineComponent, ref, onMounted } from 'vue';
import { useRoute } from 'vue-router/composables';
<script setup lang="ts">
import DandisetsPage from '@/components/DandisetsPage.vue';
import { dandiRest } from '@/rest';
import type { Version, Dandiset } from '@/types';
import { DANDISETS_PER_PAGE } from '@/utils/constants';
export default defineComponent({
name: 'StarredDandisetsView',
components: {
DandisetsPage,
},
setup() {
const route = useRoute();
const dandisets = ref<Version[]>([]);
const loading = ref(true);
const total = ref(0);
const page = ref(Number(route.query.page || 1));
const pageSize = ref(DANDISETS_PER_PAGE);
async function fetchDandisets() {
loading.value = true;
try {
const { data } = await dandiRest.getStarredDandisets({
page: page.value,
page_size: pageSize.value,
});
const processedDandisets = data.results
.map((dandiset: Dandiset) => {
const version = dandiset.most_recent_published_version || dandiset.draft_version;
if (!version) return null;
return {
...version,
dandiset,
};
})
.filter((item): item is NonNullable<typeof item> => item !== null);
dandisets.value = processedDandisets;
total.value = data.count;
} catch (error) {
console.error('Error fetching starred Dandisets:', error);
} finally {
loading.value = false;
}
}
function handlePageChange(newPage: number) {
page.value = newPage;
fetchDandisets();
}
onMounted(() => {
fetchDandisets();
});
return {
dandisets,
loading,
total,
page,
pageSize,
handlePageChange,
};
},
});
</script>

0 comments on commit c50f705

Please sign in to comment.