Merge pull request 'Fix #147 prevent double clicking submit button' (#154) from #147-Training-Report-Double-Posting into main
Reviewed-on: #154
This commit was merged in pull request #154.
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user