diff options
Diffstat (limited to 'src/pages/Entry.vue')
-rw-r--r-- | src/pages/Entry.vue | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/pages/Entry.vue b/src/pages/Entry.vue new file mode 100644 index 0000000..6b0e08f --- /dev/null +++ b/src/pages/Entry.vue @@ -0,0 +1,54 @@ +<template> + <div> + <StatusPage v-if="statusPageSlug" :override-slug="statusPageSlug" /> + </div> +</template> + +<script> +import axios from "axios"; +import StatusPage from "./StatusPage.vue"; + +export default { + components: { + StatusPage, + }, + data() { + return { + statusPageSlug: null, + }; + }, + async mounted() { + + // There are only 3 cases that could come in here. + // 1. Matched status Page domain name + // 2. Vue Frontend Dev + // 3. Vue Frontend Dev (not setup database yet) + let res; + try { + res = (await axios.get("/api/entry-page")).data; + + if (res.type === "statusPageMatchedDomain") { + this.statusPageSlug = res.statusPageSlug; + this.$root.forceStatusPageTheme = true; + + } else if (res.type === "entryPage") { // Dev only. For production, the logic is in the server side + const entryPage = res.entryPage; + if (entryPage?.startsWith("statusPage-")) { + this.$router.push("/status/" + entryPage.replace("statusPage-", "")); + } else { + // should the old setting style still exist here? + this.$router.push("/dashboard"); + } + } else if (res.type === "setup-database") { + this.$router.push("/setup-database"); + } else { + this.$router.push("/dashboard"); + } + } catch (e) { + alert("Cannot connect to the backend server. Did you start the backend server? (npm run start-server-dev)"); + } + + }, + +}; +</script> |