Move push notification setting to separate page

Set up a dedicated Account Setttings page to hold account specific
settings such as the push notifications.
This commit is contained in:
Hornwitser 2025-03-07 18:43:24 +01:00
parent d4cbbcbc2d
commit ca51c07065
4 changed files with 38 additions and 4 deletions

View file

@ -11,6 +11,7 @@
{{ session.account.name || "anonymous" }}
(s:{{ session.id }} a:{{ session.account.id }}{{ session.push ? " push" : null }})
{{ session.account.type }}
<NuxtLink to="/account/settings">Settings</NuxtLink>
<button type="button" @click="logOut">Log out</button>
</template>
<template v-else>

View file

@ -0,0 +1,8 @@
export default defineNuxtRouteMiddleware((to, from) => {
const { data: session } = useAccountSession();
if (!session.value) {
console.log("Not logged in, redirecting to /login");
return navigateTo("/login");
}
})

View file

@ -0,0 +1,22 @@
<template>
<main>
<h1>Account Settings</h1>
<p>Name: {{ session?.account.name }}</p>
<p>Access: {{ session?.account.type }}</p>
<p>
<PushNotification />
</p>
</main>
</template>
<script lang="ts" setup>
definePageMeta({
middleware: ["authenticated"],
});
const { data: session } = useAccountSession();
</script>
<style>
</style>

View file

@ -4,10 +4,12 @@
<p>
Study carefully, we only hold these events once a year.
</p>
<p>
Get notified about updates
<p v-if="!session">
<NuxtLink to="/login">Login</NuxtLink> to get notified about updates to the schedule.
</p>
<p>
Check out your <NuxtLink to="/account/settings">Account Setting</NuxtLink> to set up notifications for changes to schedule.
</p>
<PushNotification />
<h2>Schedule</h2>
<Timetable />
<EventsEdit />
@ -25,11 +27,12 @@
<script setup lang="ts">
import type { Schedule } from '~/shared/types/schedule';
const { data: session } = useAccountSession();
const schedule = useSchedule();
await callOnce(async () => {
schedule.value = await $fetch("/api/schedule")
schedule.value = await $fetch("/api/schedule");
})
const source = ref<EventSource | null>(null);