From 4069b7274dce4f1a6292f138f2233f965d654e5c Mon Sep 17 00:00:00 2001 From: ajdj100 Date: Mon, 19 Jan 2026 19:04:45 -0500 Subject: [PATCH] added submit guard to manage groups --- ui/src/components/roles/addMember.vue | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ui/src/components/roles/addMember.vue b/ui/src/components/roles/addMember.vue index 2294c3e..d127408 100644 --- a/ui/src/components/roles/addMember.vue +++ b/ui/src/components/roles/addMember.vue @@ -13,6 +13,7 @@ import Button from '../ui/button/Button.vue'; import InputGroup from '../ui/input-group/InputGroup.vue'; import InputGroupAddon from '../ui/input-group/InputGroupAddon.vue'; import { SearchIcon } from 'lucide-vue-next'; +import Spinner from '../ui/spinner/Spinner.vue'; const props = defineProps<{ allMembers: MemberLight[], @@ -43,8 +44,11 @@ function openDialog() { showAddMemberDialog.value = true; } - +const submitting = ref(false); async function handleAddMember() { + //catch double submit + if (submitting.value) return; + submitting.value = true; //guard if (memberToAdd.value == null) return; @@ -52,6 +56,7 @@ async function handleAddMember() { await addMemberToRole(memberToAdd.value.id, props.role.id); emit('submit'); showAddMemberDialog.value = false; + submitting.value = false; } @@ -94,8 +99,11 @@ async function handleAddMember() { -