Fix #147 prevent double clicking submit button

This commit is contained in:
2026-01-17 11:14:31 -05:00
parent 7fff220053
commit 52bea200c8

View File

@@ -26,6 +26,7 @@ import PopoverTrigger from "@/components/ui/popover/PopoverTrigger.vue";
import PopoverContent from "@/components/ui/popover/PopoverContent.vue";
import Combobox from '../ui/combobox/Combobox.vue'
import Tooltip from '../tooltip/Tooltip.vue'
import Spinner from '../ui/spinner/Spinner.vue'
const { handleSubmit, resetForm, errors, values, setFieldValue } = useForm({
@@ -67,19 +68,24 @@ function toMySQLDateTime(date: Date): string {
.replace("T", " ") + "000"; // becomes → 2025-11-19 00:00:00.000000
}
function onSubmit(vals) {
const submitting = ref(false);
async function onSubmit(vals) {
//catch double submit
if (submitting.value) return;
submitting.value = true;
try {
const clean: CourseEventDetails = {
...vals,
event_date: new Date(vals.event_date),
}
postTrainingReport(clean).then((newID) => {
await postTrainingReport(clean).then((newID) => {
emit("submit", newID);
});
} catch (err) {
console.error("There was an error submitting the training report", err);
} finally {
submitting.value = false;
}
}
@@ -402,7 +408,12 @@ const filteredMembers = computed(() => {
</FieldGroup>
<div class="flex gap-3 justify-end">
<Button type="button" variant="outline" @click="resetForm">Reset</Button>
<Button type="submit" form="trainingForm">Submit</Button>
<Button type="submit" form="trainingForm" :disabled="submitting" class="w-35">
<span class="flex items-center gap-2" v-if="submitting">
<Spinner></Spinner> Submitting
</span>
<span v-else>Submit</span>
</Button>
</div>
</form>
</template>