From e527fec615bd46ec3bc40b33e9cb2ba46eea13db Mon Sep 17 00:00:00 2001 From: MiniDigger | Martin Date: Sun, 19 Mar 2023 21:21:16 +0100 Subject: [PATCH] feat: add validation to platform version edit modal --- .../components/modals/PlatformVersionEditModal.vue | 13 +++++++++++-- frontend/src/types/generated/icons.d.ts | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/modals/PlatformVersionEditModal.vue b/frontend/src/components/modals/PlatformVersionEditModal.vue index b869be4e7..15dcf01f2 100644 --- a/frontend/src/components/modals/PlatformVersionEditModal.vue +++ b/frontend/src/components/modals/PlatformVersionEditModal.vue @@ -3,12 +3,14 @@ import { useI18n } from "vue-i18n"; import { HangarProject, HangarVersion, IPlatform } from "hangar-internal"; import { computed, ref } from "vue"; import { useRoute, useRouter } from "vue-router"; +import { useVuelidate } from "@vuelidate/core"; import Button from "~/lib/components/design/Button.vue"; import Modal from "~/lib/components/modals/Modal.vue"; import { Platform } from "~/types/enums"; import { handleRequestError } from "~/composables/useErrorHandling"; import { useInternalApi } from "~/composables/useApi"; import VersionSelector from "~/components/VersionSelector.vue"; +import { minLength, required } from "~/lib/composables/useValidationHelpers"; const props = defineProps<{ project: HangarProject; @@ -26,8 +28,10 @@ const projectVersion = computed(() => { const loading = ref(false); const selectedVersions = ref(projectVersion.value?.platformDependencies[props.platform.name.toUpperCase() as Platform]); +const v = useVuelidate(); -function save() { +async function save() { + if (!(await v.value.$validate())) return; loading.value = true; useInternalApi(`versions/version/${props.project.id}/${projectVersion.value?.id}/savePlatformVersions`, "post", { platform: props.platform.name.toUpperCase(), @@ -46,7 +50,12 @@ function save() {