@@ -78,7 +78,7 @@ switch (statusCode) {
{{ $t(titleKey) }}
-
+
{{ $t(descriptionKey) }}
{{ $t(subDescriptionKey) }}
diff --git a/i18n.config.ts b/i18n.config.ts
index 6aa8d35..4c6cab2 100644
--- a/i18n.config.ts
+++ b/i18n.config.ts
@@ -108,6 +108,8 @@ export default defineI18nConfig(() => ({
world: {
nameSingular: "World",
namePlural: "Worlds",
+ backToMy: "Back to my universe",
+ backToSingle: "Back to {world}",
addSingle: "Add a world",
addSingleFirst: "Add your first world !",
editSingle: "Edit world",
@@ -283,6 +285,10 @@ export default defineI18nConfig(() => ({
explore: {
menuLabel: "Explore",
title: "Explore worlds",
+ },
+ profile: {
+ title: "{user} — My universe",
+ metaTitle: "My universe",
}
}
},
@@ -391,6 +397,8 @@ export default defineI18nConfig(() => ({
world: {
nameSingular: "Monde",
namePlural: "Mondes",
+ backToMy: "Retourner à mon univers",
+ backToSingle: "Retourner sur {world}",
addSingle: "Ajouter un monde",
addSingleFirst: "Ajouter votre premier monde !",
editSingle: "Modifier le monde",
@@ -570,6 +578,10 @@ export default defineI18nConfig(() => ({
explore: {
menuLabel: "Explorer",
title: "Explorer les mondes",
+ },
+ profile: {
+ title: "{user} — Mon univers",
+ metaTitle: "Mon univers",
}
}
}
diff --git a/middleware/resetMenu.ts b/middleware/resetMenu.ts
new file mode 100644
index 0000000..6046f8b
--- /dev/null
+++ b/middleware/resetMenu.ts
@@ -0,0 +1,4 @@
+export default defineNuxtRouteMiddleware(() => {
+ const { resetMenu } = useUiStore()
+ resetMenu()
+})
diff --git a/pages/index.vue b/pages/index.vue
index 8e579e3..a1e58b2 100644
--- a/pages/index.vue
+++ b/pages/index.vue
@@ -2,6 +2,10 @@
useHead({
titleTemplate: null
})
+
+definePageMeta({
+ middleware: ["reset-menu"]
+})
diff --git a/pages/my/calendars/[id].vue b/pages/my/calendars/[id].vue
index 99facd0..9d76305 100644
--- a/pages/my/calendars/[id].vue
+++ b/pages/my/calendars/[id].vue
@@ -40,6 +40,24 @@ const {
)
const isLoading = computed(() => calendarStatus.value === "pending" || categoriesStatus.value === "pending")
+
+// Set custom menu
+const { t } = useI18n()
+const { setCurrentMenu } = useUiStore()
+
+setCurrentMenu([
+ {
+ tooltip: t("entity.world.backToMy"),
+ to: "/my",
+ phIcon: "universe",
+ phIconWeight: "regular"
+ },
+ {
+ tooltip: t("entity.world.backToSingle", { world: calendar.value?.data.world?.name }),
+ to: `/my/worlds/${calendar.value?.data.world?.id}`,
+ phIcon: "world"
+ },
+])
diff --git a/pages/my/index.vue b/pages/my/index.vue
index 0ea9b66..cac05f0 100644
--- a/pages/my/index.vue
+++ b/pages/my/index.vue
@@ -6,7 +6,7 @@ const supabase = useSupabaseClient()
const user = useSupabaseUser()
definePageMeta({
- middleware: ["auth-guard"]
+ middleware: ["auth-guard", "reset-menu"]
})
const { data: worlds } = await useLazyFetch<{ data: World[] }>("/api/worlds/query", { query: { gmId: user?.value!.id } })
@@ -31,7 +31,6 @@ function hideCreateDialog() {
/** Active world channel */
let worldChannel: RealtimeChannel
-
/** Handles world insertion realtime events */
function handleInsertedWorld(newWorld: WorldChannelPayload) {
if (!worlds.value?.data) return
@@ -121,10 +120,12 @@ function hideEditModal() {
- {{ $t("entity.world.namePlural") }}
+ {{ $t("pages.profile.metaTitle") }}
- {{ user?.user_metadata.full_name }}
+
+ {{ $t("pages.profile.title", { user: user?.user_metadata.full_name }) }}
+
diff --git a/pages/my/worlds/[id].vue b/pages/my/worlds/[id].vue
index 0ba9ada..920f127 100644
--- a/pages/my/worlds/[id].vue
+++ b/pages/my/worlds/[id].vue
@@ -4,6 +4,8 @@ import type { World } from "~/models/World";
import type { Calendar, CalendarChannelPayload } from "~/models/CalendarConfig";
import { PhArrowBendDoubleUpLeft, PhGlobeHemisphereWest, PhPencil } from "@phosphor-icons/vue";
+const { t } = useI18n()
+
const supabase = useSupabaseClient()
const route = useRoute()
const id = route.params.id
@@ -24,6 +26,18 @@ watch(user, (n) => {
}
})
+// Set custom menu
+const { setCurrentMenu } = useUiStore()
+
+setCurrentMenu([
+ {
+ tooltip: t("entity.world.backToMy"),
+ to: "/my",
+ phIcon: "universe",
+ highlight: true
+ },
+])
+
/**
* === Subscriptions ===
*/
diff --git a/stores/UiStore.ts b/stores/UiStore.ts
index 43dbda6..6fea08c 100644
--- a/stores/UiStore.ts
+++ b/stores/UiStore.ts
@@ -7,8 +7,13 @@ export const useUiStore = defineStore("ui", () => {
currentMenu.value = items
}
+ function resetMenu() {
+ currentMenu.value = []
+ }
+
return {
currentMenu,
- setCurrentMenu
+ setCurrentMenu,
+ resetMenu
}
})