feat: snackbar message opdrachten lijst

This commit is contained in:
Gabriellvl 2025-05-19 17:44:47 +02:00
parent 2ac1b8187c
commit 902518f9b1

View file

@ -83,16 +83,35 @@
await router.push(`/assignment/${clsId}/${id}`); await router.push(`/assignment/${clsId}/${id}`);
} }
const { mutate, data, isSuccess } = useDeleteAssignmentMutation(); const snackbar = ref({
visible: false,
watch([isSuccess, data], async ([success, oldData]) => { message: "",
if (success && oldData?.assignment) { color: "success",
window.location.reload();
}
}); });
function showSnackbar(message: string, color: string): void {
snackbar.value.message = message;
snackbar.value.color = color;
snackbar.value.visible = true;
}
const deleteAssignmentMutation = useDeleteAssignmentMutation();
async function goToDeleteAssignment(num: number, clsId: string): Promise<void> { async function goToDeleteAssignment(num: number, clsId: string): Promise<void> {
mutate({ cid: clsId, an: num }); deleteAssignmentMutation.mutate(
{ cid: clsId, an: num },
{
onSuccess: (data) => {
if (data?.assignment){
window.location.reload();
}
showSnackbar(t("success") ,"success");
},
onError: (e) => {
showSnackbar(t("failed") + ": " + e.response.data.error || e.message, "error");
},
}
);
} }
function formatDate(date?: string | Date): string { function formatDate(date?: string | Date): string {
@ -208,6 +227,13 @@
</v-col> </v-col>
</v-row> </v-row>
</v-container> </v-container>
<v-snackbar
v-model="snackbar.visible"
:color="snackbar.color"
timeout="3000"
>
{{ snackbar.message }}
</v-snackbar>
</using-query-result> </using-query-result>
</div> </div>
</template> </template>