Skip to content
Snippets Groups Projects
Commit b6f27430 authored by permcu's avatar permcu
Browse files

Make docsByDay an object from day to docs and listify it for display

parent 19c7465e
No related branches found
No related tags found
2 merge requests!355Implement infinite scrolling and by date navigation for coursebook,!350Resolve "Add simple course book list"
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</template> </template>
<template #default> <template #default>
<v-list-item <v-list-item
v-for="day in docsByDay" v-for="day in listDocsByDay(docsByDay)"
two-line two-line
:key="'day-' + day[0]" :key="'day-' + day[0]"
:id="'documentation_' + day[0].toISODate()" :id="'documentation_' + day[0].toISODate()"
...@@ -161,19 +161,21 @@ export default { ...@@ -161,19 +161,21 @@ export default {
}, },
}, },
methods: { methods: {
// => [[dt doc ...] ...] // => {dt: [dt doc ...] ...}
groupDocsByDay(docs) { groupDocsByDay(docs) {
const byDay = docs.reduce((byDay, doc) => { return docs.reduce((byDay, doc) => {
// This works with dummy. Does actual doc have dateStart instead? // This works with dummy. Does actual doc have dateStart instead?
const day = DateTime.fromISO(doc.datetimeStart).startOf("day"); const day = DateTime.fromISO(doc.datetimeStart).startOf("day");
byDay[day] ??= [day]; byDay[day] ??= [day];
byDay[day].push(doc); byDay[day].push(doc);
return byDay; return byDay;
}, {}); }, {});
},
return Object.keys(byDay) // => [[dt doc ...] ...]
listDocsByDay(docsByDay) {
return Object.keys(docsByDay)
.sort() .sort()
.map((key) => byDay[key]); .map((key) => docsByDay[key]);
}, },
debounce(fn, delay) { debounce(fn, delay) {
let timer; let timer;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment