Toast helpers
authorAdam Dullage <redacted>
Wed, 1 May 2024 11:24:22 +0000 (12:24 +0100)
committerAdam Dullage <redacted>
Wed, 1 May 2024 11:24:22 +0000 (12:24 +0100)
client/App.vue
client/helpers.js [new file with mode: 0644]
client/views/LogIn.vue

index b9083d1e8bbcb0aff2b7067378b20060766fbdb5..f1ef6be3108c40212b006ad19685e990a2290af8 100644 (file)
@@ -9,25 +9,25 @@
 <script setup>\r
 import { computed } from "vue";\r
 import { RouterView, useRoute } from "vue-router";\r
+import { useToast } from "primevue/usetoast";\r
 \r
 import { getConfig } from "./api.js";\r
 import { useGlobalStore } from "./globalStore.js";\r
 import NavBar from "./partials/NavBar.vue";\r
 import { loadStoredToken } from "./tokenStorage.js";\r
 import PrimeToast from "./components/PrimeToast.vue";\r
+import { getUnknownServerErrorToastOptions } from "./helpers.js";\r
 \r
 const globalStore = useGlobalStore();\r
 const route = useRoute();\r
+const toast = useToast();\r
 \r
 getConfig()\r
   .then((data) => {\r
     globalStore.authType = data.authType;\r
   })\r
-  .catch(function (error) {\r
-    if (!error.handled) {\r
-      // TODO: Trigger unknown error toast\r
-      console.error(error);\r
-    }\r
+  .catch(() => {\r
+    toast.add(getUnknownServerErrorToastOptions());\r
   });\r
 loadStoredToken();\r
 \r
diff --git a/client/helpers.js b/client/helpers.js
new file mode 100644 (file)
index 0000000..1f711fe
--- /dev/null
@@ -0,0 +1,17 @@
+export function getToastOptions(title, description, isFailure = false) {
+  return {
+    summary: title,
+    detail: description,
+    severity: isFailure ? "error" : "success",
+    closable: false,
+    life: 5000,
+  };
+}
+
+export function getUnknownServerErrorToastOptions() {
+  return getToastOptions(
+    "Unknown Error",
+    "Unknown error communicating with the server. Please try again.",
+    true,
+  );
+}
index b22c778706bf98381bd04f464e5f6d49bda2e1be..0ca2070b0d61a98f2f976e871845a462e4c9f2cc 100644 (file)
@@ -49,12 +49,15 @@ import TextInput from "../components/TextInput.vue";
 import { authTypes } from "../constants.js";
 import { useGlobalStore } from "../globalStore.js";
 import { storeToken } from "../tokenStorage.js";
+import {
+  getToastOptions,
+  getUnknownServerErrorToastOptions,
+} from "../helpers.js";
 
 const props = defineProps({ redirect: String });
 
 const globalStore = useGlobalStore();
 const router = useRouter();
-const route = useRoute();
 const toast = useToast();
 
 const username = ref("");
@@ -78,14 +81,15 @@ function logIn() {
       totp.value = "";
 
       if (response.response?.status === 401) {
-        toast.add({
-          summary: "Login Failed",
-          detail: "Please check your credentials and try again.",
-          severity: "error",
-          closable: false,
-          life: 5000,
-        });
-        // TODO: Trigger unknown error toast
+        toast.add(
+          getToastOptions(
+            "Login Failed",
+            "Please check your credentials and try again.",
+            true,
+          ),
+        );
+      } else {
+        toast.add(getUnknownServerErrorToastOptions());
       }
     });
 }
git clone https://git.99rst.org/PROJECT