From 7cda6e6fd46eaf60a141ffaed89f9cfd874da70d Mon Sep 17 00:00:00 2001 From: Michael Bauer <michael-bauer@posteo.de> Date: Wed, 17 Apr 2024 19:33:33 +0200 Subject: [PATCH] Parameterize coursebook loading component --- .../components/coursebook/Coursebook.vue | 7 ++++++- .../components/coursebook/CoursebookLoader.vue | 16 ++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue index 9c4ee9244..de8afbe8d 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue @@ -45,6 +45,9 @@ </template> <template #loading> <coursebook-loader + :number-of-days="10" + :number-of-docs="5" + /> </template> <template #no-data> @@ -220,7 +223,9 @@ export default { }); }, setDate(date) { - this.$router.replace({ hash: date }) + if (!(this.$route.hash.substring(1) === date)) { + this.$router.replace({ hash: date }) + } }, fixScrollPos(height, top) { console.log('fix @', top, document.documentElement.scrollTop, height, document.documentElement.scrollHeight); diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookLoader.vue b/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookLoader.vue index a99df0588..dfcfe81a6 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookLoader.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookLoader.vue @@ -1,12 +1,12 @@ <template> <div> - <v-list-item v-for="i in 10" :key="'i-' + i"> + <v-list-item v-for="i in numberOfDays" :key="'i-' + i"> <v-list-item-content> <v-list-item-title> <v-skeleton-loader type="heading" /> </v-list-item-title> <v-list max-width="100%"> - <v-list-item v-for="j in 5" :key="'j-' + j"> + <v-list-item v-for="j in numberOfDocs" :key="'j-' + j"> <DocumentationLoader /> </v-list-item> </v-list> @@ -20,5 +20,17 @@ import DocumentationLoader from "./documentation/DocumentationLoader.vue"; export default { name: "CoursebookLoader", components: { DocumentationLoader }, + props: { + numberOfDays: { + type: Number, + required: false, + default: 1 + }, + numberOfDocs: { + type: Number, + required: false, + default: 1 + }, + }, }; </script> -- GitLab