From f5704536d1542b96dfd57ccc7cf5b8a13e0e4a54 Mon Sep 17 00:00:00 2001 From: Khafid Prayoga Date: Tue, 25 Nov 2025 21:12:18 +0700 Subject: [PATCH] feat(treatment-report): add error handling and toast notification Implement error handling in treatment report form submission and display toast notifications when errors occur. The form now emits error events and prevents default form submission behavior. --- .../app/treatment-report/entry-form.vue | 15 +++++++++++++-- app/components/content/treatment-report/add.vue | 13 ++++++++++++- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/app/components/app/treatment-report/entry-form.vue b/app/components/app/treatment-report/entry-form.vue index 77367f97..8e19cc64 100644 --- a/app/components/app/treatment-report/entry-form.vue +++ b/app/components/app/treatment-report/entry-form.vue @@ -35,7 +35,9 @@ interface Props { const props = defineProps() const emit = defineEmits<{ (e: 'submit', payload: FormData): void + (e: 'error', errors: Error): void }>() + const { isLoading, mode = 'create' } = props const isReadonly = computed(() => { if (isLoading) { @@ -48,6 +50,7 @@ const isReadonly = computed(() => { return false }) + const formSchema = toTypedSchema(TreatmentReportSchema) const { handleSubmit, values, resetForm, setFieldValue, setValues, validate } = useForm({ @@ -75,12 +78,20 @@ defineExpose({ // #endregion region // #region Utilities & event handlers -const onSubmit = handleSubmit((formValues: FormData) => emit('submit', formValues)) +// const onSubmit = handleSubmit((formValues: FormData) => emit('submit', formValues)) +const onSubmit = handleSubmit( + (values) => { + emit('submit', values) + }, + (errors) => { + emit('error', new Error('Silahkan lengkapi form terlebih dahulu')) + }, +) // #endregion