Implement null term validation in SearchInput
authorAdam Dullage <redacted>
Wed, 1 May 2024 20:03:50 +0000 (21:03 +0100)
committerAdam Dullage <redacted>
Wed, 1 May 2024 20:03:50 +0000 (21:03 +0100)
client/partials/SearchInput.vue

index b8107978187a1479081e6f84b79d957ca69986c1..4fa4ddf98c7acd986a88e58cf33030333a6892cf 100644 (file)
@@ -1,6 +1,10 @@
 <template>
   <form class="flex w-full max-w-[500px]" @submit.prevent="search">
-    <TextInput v-model="searchTerm" placeholder="Search" class="rounded-r-none" />
+    <TextInput
+      v-model="searchTerm"
+      placeholder="Search"
+      class="rounded-r-none"
+    />
     <CustomButton
       :iconPath="mdilMagnify"
       iconSize="1.75em"
 
 <script setup>
 import { mdilMagnify } from "@mdi/light-js";
-import { useRouter } from "vue-router";
+import { useToast } from "primevue/usetoast";
 import { ref } from "vue";
+import { useRouter } from "vue-router";
 import * as constants from "../constants";
 
 import CustomButton from "../components/CustomButton.vue";
 import TextInput from "../components/TextInput.vue";
+import { getToastOptions } from "../helpers.js";
 
 const router = useRouter();
 const searchTerm = ref("");
+const toast = useToast();
 
 function search() {
-  router.push({
-    name: "search",
-    query: { [constants.params.searchTerm]: searchTerm.value },
-  });
+  if (searchTerm.value) {
+    router.push({
+      name: "search",
+      query: { [constants.params.searchTerm]: searchTerm.value },
+    });
+  } else {
+    toast.add(getToastOptions("Error", "Please enter a search term", true));
+  }
 }
 </script>
git clone https://git.99rst.org/PROJECT