From 902518f9b1fbcd1065cff8a03e8d7f9d8499bc01 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Mon, 19 May 2025 17:44:47 +0200 Subject: [PATCH] feat: snackbar message opdrachten lijst --- .../src/views/assignments/UserAssignments.vue | 40 +++++++++++++++---- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/frontend/src/views/assignments/UserAssignments.vue b/frontend/src/views/assignments/UserAssignments.vue index e2fc03c0..caf16026 100644 --- a/frontend/src/views/assignments/UserAssignments.vue +++ b/frontend/src/views/assignments/UserAssignments.vue @@ -83,16 +83,35 @@ await router.push(`/assignment/${clsId}/${id}`); } - const { mutate, data, isSuccess } = useDeleteAssignmentMutation(); - - watch([isSuccess, data], async ([success, oldData]) => { - if (success && oldData?.assignment) { - window.location.reload(); - } + const snackbar = ref({ + visible: false, + message: "", + color: "success", }); + 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 { - 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 { @@ -208,6 +227,13 @@ + + {{ snackbar.message }} +