diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue index 7e017c7a98c4a73c587c1cf9e4c1b44f7a452e18..92cdf2cf49d669983c2b75add84c7663380ff284 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue @@ -69,7 +69,8 @@ :date="date" :docs="docs" :lastQuery="lastQuery" - :focus-on-mount="gotoDate.toMillis() === date.toMillis()" + :focus-on-mount="gotoDate && (gotoDate.toMillis() === date.toMillis())" + @init="transition" /> <date-select-footer :value="$route.hash.substring(1)" /> @@ -142,10 +143,8 @@ export default { groups: [], courses: [], incomplete: false, - // TODO: Start with false until main query finished ready: false, gotoDate: false, - // TODO: Who sets ready true & gotoDate false? }; }, apollo: { @@ -220,6 +219,10 @@ export default { this.resetDate(); // might skip query until both set = atomic }, + transition() { + this.gotoDate = false + this.ready = true + }, groupDocsByDay(docs) { // => {dt: {date: dt, docs: doc ...} ...} const docsByDay = docs.reduce((byDay, doc) => { diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookDay.vue b/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookDay.vue index 4c6171c8127cbdfd626e2de4147267cba2f52dbe..96f3d2dd379a0ee12b090a7add2d4dc38ea8cc97 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookDay.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/CoursebookDay.vue @@ -49,6 +49,7 @@ export default { default: false, }, }, + emits: ['init'], methods: { focus(how) { this.$el.scrollIntoView({ @@ -63,6 +64,7 @@ export default { if (this.focusOnMount) { this.$nextTick(this.focus("instant")); console.log('focused @', this.date.toISODate()); + this.$emit('init'); } }, };