2025-11-06 15:09:40 +03:00

71 lines
2.3 KiB
Vue

<template>
<add-thanatopractitioner-presentation
:employees="employeeStore.employees"
:loading="thanatopractitionerStore.isLoading"
:validation-errors="validationErrors"
:success="showSuccess"
@create-thanatopractitioner="handleCreateThanatopractitioner"
/>
</template>
<script setup>
import AddThanatopractitionerPresentation from "@/components/Organism/Thanatopractitioner/AddThanatopractitionerPresentation.vue";
import { useThanatopractitionerStore } from "@/stores/thanatopractitionerStore";
import { useEmployeeStore } from "@/stores/employeeStore";
import { useNotificationStore } from "@/stores/notification";
import { ref, onMounted } from "vue";
import { useRouter } from "vue-router";
const router = useRouter();
const thanatopractitionerStore = useThanatopractitionerStore();
const employeeStore = useEmployeeStore();
const notificationStore = useNotificationStore();
const validationErrors = ref({});
const showSuccess = ref(false);
onMounted(async () => {
// Fetch active employees for selection
await employeeStore.fetchEmployees();
});
const handleCreateThanatopractitioner = async (form) => {
try {
// Clear previous errors
validationErrors.value = {};
showSuccess.value = false;
// Call the store to create thanatopractitioner
const thanatopractitioner = await thanatopractitionerStore.createThanatopractitioner(
form
);
// Show success notification
notificationStore.created("Thanatopractitioner");
showSuccess.value = true;
// Redirect after 2 seconds
setTimeout(() => {
router.push({ name: "Gestion thanatopractitioners" });
}, 2000);
} catch (error) {
console.error("Error creating thanatopractitioner:", error);
// Handle validation errors from Laravel
if (error.response && error.response.status === 422) {
validationErrors.value = error.response.data.errors || {};
notificationStore.error(
"Erreur de validation",
"Veuillez corriger les erreurs dans le formulaire"
);
} else if (error.response && error.response.data) {
// Handle other API errors
const errorMessage =
error.response.data.message || "Une erreur est survenue";
notificationStore.error("Erreur", errorMessage);
} else {
notificationStore.error("Erreur", "Une erreur inattendue s'est produite");
}
}
};
</script>