diff --git a/client/src/pages/learningMentor/MentorManagementPage.vue b/client/src/pages/learningMentor/MentorManagementPage.vue index 7d4740a5..1c6b3484 100644 --- a/client/src/pages/learningMentor/MentorManagementPage.vue +++ b/client/src/pages/learningMentor/MentorManagementPage.vue @@ -7,6 +7,7 @@ import { useCSRFFetch } from "@/fetchHelpers"; const courseSession = useCurrentCourseSession(); const showInvitationModal = ref(false); +const inviteeEmail = ref(""); const { execute: refreshMentors, data: mentors } = useCSRFFetch( `/api/mentor/${courseSession.value.course.id}/mentors` @@ -23,6 +24,11 @@ const hasMentors = computed(() => { ); }); +const validEmail = computed(() => { + const emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/; + return emailRegex.test(inviteeEmail.value); +}); + const removeInvitation = async (invitationId: string) => { await useCSRFFetch( `/api/mentor/${courseSession.value.course.id}/invitations/${invitationId}/delete` @@ -36,6 +42,17 @@ const removeMentor = async (mentorId: string) => { ).delete(); await refreshMentors(); }; + +const inviteMentor = async () => { + await useCSRFFetch( + `/api/mentor/${courseSession.value.course.id}/invitations/create` + ).post({ + email: inviteeEmail.value, + }); + await refreshInvitations(); + showInvitationModal.value = false; + inviteeEmail.value = ""; +};