diff options
| author | Leonardo Bishop <me@leonardobishop.com> | 2025-08-23 22:29:28 +0100 |
|---|---|---|
| committer | Leonardo Bishop <me@leonardobishop.com> | 2025-08-23 22:29:28 +0100 |
| commit | ecc6a55aba7bb35fc778e7a53848396b88214151 (patch) | |
| tree | 1b37a2dc5f4594155114da1ae0c4529d20a4c548 /web/pages/tracks | |
| parent | 8f7dec8ba6b2f9bde01afd0a110596ebbd43e0ed (diff) | |
Add multiple conferences feature
Diffstat (limited to 'web/pages/tracks')
| -rw-r--r-- | web/pages/tracks/[slug].vue | 9 | ||||
| -rw-r--r-- | web/pages/tracks/index.vue | 12 |
2 files changed, 19 insertions, 2 deletions
diff --git a/web/pages/tracks/[slug].vue b/web/pages/tracks/[slug].vue index 27fb97d..9e1881d 100644 --- a/web/pages/tracks/[slug].vue +++ b/web/pages/tracks/[slug].vue @@ -2,6 +2,10 @@ import { TrainTrack } from 'lucide-vue-next'; import { useScheduleStore } from '~/stores/schedule'; +definePageMeta({ + middleware: ['logged-in', 'conference-selected'] +}) + const route = useRoute(); const scheduleStore = useScheduleStore(); @@ -9,6 +13,11 @@ const track = scheduleStore.schedule?.tracks.find((track) => track.slug === rout </script> <template> + <div v-if="scheduleStore.status === 'pending'" class="loading"> + <span class="loading-text"> + <Spinner color="var(--color-text-muted)" />Updating schedule... + </span> + </div> <Panel v-if="track" :title="track.name" :breadcrumbs="[{ text: 'Tracks', to: '/tracks' }]" :icon="TrainTrack"> <ul class="events-list"> <li diff --git a/web/pages/tracks/index.vue b/web/pages/tracks/index.vue index 8d7534e..c3ec883 100644 --- a/web/pages/tracks/index.vue +++ b/web/pages/tracks/index.vue @@ -2,14 +2,22 @@ import { TrainTrack } from 'lucide-vue-next'; import Panel from '~/components/Panel.vue'; +definePageMeta({ + middleware: ['logged-in', 'conference-selected'] +}) const scheduleStore = useScheduleStore(); </script> <template> - <Panel v-if="scheduleStore.schedule" title="Tracks" :icon="TrainTrack"> + <div v-if="scheduleStore.status === 'pending'" class="loading"> + <span class="loading-text"> + <Spinner color="var(--color-text-muted)" />Updating schedule... + </span> + </div> + <Panel v-else title="Tracks" :icon="TrainTrack"> <ul class="tracks-list"> <li - v-for="track in scheduleStore.schedule.tracks" + v-for="track in scheduleStore.schedule?.tracks" :key="track.name" class="tracks-item" > |
