From 3511bedaec19779e81a902e1117d5943b645277a Mon Sep 17 00:00:00 2001 From: SebClem Date: Thu, 16 Jun 2022 12:23:36 +0200 Subject: [PATCH] :hammer: Redirect if guild is not available --- .vscode/settings.json | 4 +- src/stores/mutualGuilds.ts | 2 +- src/tools/GuildTools.ts | 20 +++++++++ src/views/GuildHomeView.vue | 83 ++++++++++++++++++++----------------- src/views/HomeView.vue | 28 +++++++------ 5 files changed, 86 insertions(+), 51 deletions(-) create mode 100644 src/tools/GuildTools.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index 0a2328e..ffab266 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,5 +13,7 @@ "javascript.inlayHints.propertyDeclarationTypes.enabled": true, "javascript.inlayHints.parameterNames.suppressWhenArgumentMatchesName": true, "javascript.inlayHints.parameterNames.enabled": "literals", - + "emmet.includeLanguages": { + "vue": "html" + } } diff --git a/src/stores/mutualGuilds.ts b/src/stores/mutualGuilds.ts index b543514..edc2440 100644 --- a/src/stores/mutualGuilds.ts +++ b/src/stores/mutualGuilds.ts @@ -6,7 +6,7 @@ export const useMutualGuildsStore = defineStore({ state: () => ({ guilds: [] as Array, loaded: false, - lastGuildId: "", + lastGuildId: undefined as string | undefined, }), getters: {}, actions: { diff --git a/src/tools/GuildTools.ts b/src/tools/GuildTools.ts new file mode 100644 index 0000000..78e257c --- /dev/null +++ b/src/tools/GuildTools.ts @@ -0,0 +1,20 @@ +import type { Guild } from "@/data/Guild"; +import { useMutualGuildsStore } from "@/stores/mutualGuilds"; +import type { Router } from "vue-router"; + +function redirectIfNoGuild(guild: Guild | undefined, router: Router) { + const guildStore = useMutualGuildsStore(); + if (!guild) { + guildStore.lastGuildId = guildStore.guilds[0]?.id; + if (guildStore.lastGuildId) { + router.push({ + name: "guildHome", + params: { guildId: guildStore.lastGuildId }, + }); + } else { + router.push({ name: "home" }); + } + } +} + +export { redirectIfNoGuild }; diff --git a/src/views/GuildHomeView.vue b/src/views/GuildHomeView.vue index 70cbde0..dc079a2 100644 --- a/src/views/GuildHomeView.vue +++ b/src/views/GuildHomeView.vue @@ -1,58 +1,67 @@ diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index 044edf7..f86f458 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -1,11 +1,13 @@