From af21347b67a5663b46c41d9c91f7e0ef4ef0b920 Mon Sep 17 00:00:00 2001 From: Matthew Holloway Date: Sat, 24 Aug 2024 10:50:31 +1200 Subject: [PATCH 1/6] fix: Dark mode bug, pinia store reset across Vite entry points (#7851) --- client/embedded.js | 4 ++-- client/main.js | 4 ++-- client/shared/create-pinia-singleton.js | 6 ++++++ 3 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 client/shared/create-pinia-singleton.js diff --git a/client/embedded.js b/client/embedded.js index 3b104650c..0509c0aec 100644 --- a/client/embedded.js +++ b/client/embedded.js @@ -1,11 +1,11 @@ import { createApp } from 'vue' -import { createPinia } from 'pinia' import piniaPersist from 'pinia-plugin-persist' import Embedded from './Embedded.vue' +import { createPiniaSingleton } from './shared/create-pinia-singleton' // Initialize store (Pinia) -const pinia = createPinia() +const pinia = createPiniaSingleton() pinia.use(piniaPersist) // Mount App diff --git a/client/main.js b/client/main.js index 0dc5cf32e..3fbad907b 100644 --- a/client/main.js +++ b/client/main.js @@ -1,14 +1,14 @@ import { createApp } from 'vue' -import { createPinia } from 'pinia' import piniaPersist from 'pinia-plugin-persist' import App from './App.vue' import router from './router' +import { createPiniaSingleton } from './shared/create-pinia-singleton' const app = createApp(App, {}) // Initialize store (Pinia) -const pinia = createPinia() +const pinia = createPiniaSingleton() pinia.use(piniaPersist) app.use(pinia) diff --git a/client/shared/create-pinia-singleton.js b/client/shared/create-pinia-singleton.js new file mode 100644 index 000000000..f0013245a --- /dev/null +++ b/client/shared/create-pinia-singleton.js @@ -0,0 +1,6 @@ +import { createPinia } from 'pinia' + +export function createPiniaSingleton(){ + window.pinia = window.pinia ?? createPinia() + return window.pinia +} From bece8fd71bb58e214acf1c02ba1ccbe000d23dd6 Mon Sep 17 00:00:00 2001 From: Matthew Holloway Date: Tue, 27 Aug 2024 01:03:15 +1200 Subject: [PATCH 2/6] feat: Agenda URL #hash scrolls to 'now' or specific day (#7772) * feat: Agenda URL #now scroll to current event * fix: agendaData date offset for dev purposes * feat: scroll to day * fix: Showing correct hostname in agenda modify log * feat: mobile menu scroll to hash and general bug fixes * fix: agenda mobile menu formatting and Playwright selectors * fix: removing spurious ? mark * chore: removing redundant agenda time setter in favour of agenda settings panel for debugging * style: Update AgendaMobileBar.vue * style: Update AgendaScheduleList.vue --------- Co-authored-by: Nicolas Giard --- client/agenda/Agenda.vue | 2 +- client/agenda/AgendaMobileBar.vue | 54 +++++++++++++++++++++---- client/agenda/AgendaQuickAccess.vue | 10 ++--- client/agenda/AgendaScheduleList.vue | 29 ++++++++++++- client/agenda/store.js | 7 +++- playwright/tests/meeting/agenda.spec.js | 2 +- 6 files changed, 85 insertions(+), 19 deletions(-) diff --git a/client/agenda/Agenda.vue b/client/agenda/Agenda.vue index 40dae008a..99a46f4fe 100644 --- a/client/agenda/Agenda.vue +++ b/client/agenda/Agenda.vue @@ -434,7 +434,7 @@ function reconnectScrollObservers () { scrollObserver.disconnect() visibleDays.length = 0 for (const mDay of agendaStore.meetingDays) { - const el = document.getElementById(`agenda-day-${mDay.slug}`) + const el = document.getElementById(mDay.slug) el.dataset.dayId = mDay.slug.toString() el.dataset.dayTs = mDay.ts scrollObserver.observe(el) diff --git a/client/agenda/AgendaMobileBar.vue b/client/agenda/AgendaMobileBar.vue index 5d15e9e69..78af96e25 100644 --- a/client/agenda/AgendaMobileBar.vue +++ b/client/agenda/AgendaMobileBar.vue @@ -29,7 +29,6 @@