From b6f27430ce880e952c7993308a42fc5f62aee0d5 Mon Sep 17 00:00:00 2001 From: Michael Bauer <michael-bauer@posteo.de> Date: Thu, 21 Mar 2024 12:03:15 +0100 Subject: [PATCH] Make docsByDay an object from day to docs and listify it for display --- .../frontend/components/coursebook/Coursebook.vue | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue index 0028c3676..be2d1530f 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue @@ -18,7 +18,7 @@ </template> <template #default> <v-list-item - v-for="day in docsByDay" + v-for="day in listDocsByDay(docsByDay)" two-line :key="'day-' + day[0]" :id="'documentation_' + day[0].toISODate()" @@ -161,19 +161,21 @@ export default { }, }, methods: { - // => [[dt doc ...] ...] + // => {dt: [dt doc ...] ...} groupDocsByDay(docs) { - const byDay = docs.reduce((byDay, doc) => { + return docs.reduce((byDay, doc) => { // This works with dummy. Does actual doc have dateStart instead? const day = DateTime.fromISO(doc.datetimeStart).startOf("day"); byDay[day] ??= [day]; byDay[day].push(doc); return byDay; }, {}); - - return Object.keys(byDay) + }, + // => [[dt doc ...] ...] + listDocsByDay(docsByDay) { + return Object.keys(docsByDay) .sort() - .map((key) => byDay[key]); + .map((key) => docsByDay[key]); }, debounce(fn, delay) { let timer; -- GitLab