diff --git a/apps/web/components/Dashboard/Pages/Users/OrgAccess/OrgAccess.tsx b/apps/web/components/Dashboard/Pages/Users/OrgAccess/OrgAccess.tsx index ae14fe86..8fa6ed25 100644 --- a/apps/web/components/Dashboard/Pages/Users/OrgAccess/OrgAccess.tsx +++ b/apps/web/components/Dashboard/Pages/Users/OrgAccess/OrgAccess.tsx @@ -42,21 +42,25 @@ function OrgAccess() { } async function deleteInvite(invite: any) { + const toastId = toast.loading("Deleting...") let res = await deleteInviteCode(org.id, invite.invite_code_uuid, access_token) if (res.status == 200) { mutate(`${getAPIUrl()}orgs/${org.id}/invites`) + toast.success("Deleted invite code", {id:toastId}) } else { - toast.error('Error ' + res.status + ': ' + res.data.detail) + toast.error('Error deleting', {id:toastId}) } } async function changeJoinMethod(method: 'open' | 'inviteOnly') { + const toastId = toast.loading("Changing join method...") let res = await changeSignupMechanism(org.id, method, access_token) if (res.status == 200) { router.refresh() mutate(`${getAPIUrl()}orgs/slug/${org?.slug}`) + toast.success(`Changed join method to ${method}`, {id:toastId}) } else { - toast.error('Error ' + res.status + ': ' + res.data.detail) + toast.error('Error changing join method', {id:toastId}) } } diff --git a/apps/web/components/Dashboard/Pages/Users/OrgUserGroups/OrgUserGroups.tsx b/apps/web/components/Dashboard/Pages/Users/OrgUserGroups/OrgUserGroups.tsx index ba586ada..8d134f9a 100644 --- a/apps/web/components/Dashboard/Pages/Users/OrgUserGroups/OrgUserGroups.tsx +++ b/apps/web/components/Dashboard/Pages/Users/OrgUserGroups/OrgUserGroups.tsx @@ -29,12 +29,14 @@ function OrgUserGroups() { ) const deleteUserGroupUI = async (usergroup_id: any) => { + const toastId = toast.loading("Deleting..."); const res = await deleteUserGroup(usergroup_id, access_token) if (res.status == 200) { mutate(`${getAPIUrl()}usergroups/org/${org.id}`) + toast.success("Deleted usergroup", {id:toastId}) } else { - toast.error('Error ' + res.status + ': ' + res.data.detail) + toast.error('Error deleting usergroup', {id:toastId}) } } diff --git a/apps/web/components/Dashboard/Pages/Users/OrgUsers/OrgUsers.tsx b/apps/web/components/Dashboard/Pages/Users/OrgUsers/OrgUsers.tsx index 7d5bee0b..32fb37f7 100644 --- a/apps/web/components/Dashboard/Pages/Users/OrgUsers/OrgUsers.tsx +++ b/apps/web/components/Dashboard/Pages/Users/OrgUsers/OrgUsers.tsx @@ -31,11 +31,13 @@ function OrgUsers() { } const handleRemoveUser = async (user_id: any) => { + const toastId = toast.loading("Removing..."); const res = await removeUserFromOrg(org.id, user_id,access_token) if (res.status === 200) { await mutate(`${getAPIUrl()}orgs/${org.id}/users`) + toast.success("Removed user from org", {id:toastId}); } else { - toast.error('Error ' + res.status + ': ' + res.data.detail) + toast.error('Error removing user', {id:toastId}); } } diff --git a/apps/web/components/Dashboard/Pages/Users/OrgUsersAdd/OrgUsersAdd.tsx b/apps/web/components/Dashboard/Pages/Users/OrgUsersAdd/OrgUsersAdd.tsx index 496d25d9..f18543df 100644 --- a/apps/web/components/Dashboard/Pages/Users/OrgUsersAdd/OrgUsersAdd.tsx +++ b/apps/web/components/Dashboard/Pages/Users/OrgUsersAdd/OrgUsersAdd.tsx @@ -20,13 +20,15 @@ function OrgUsersAdd() { const [selectedInviteCode, setSelectedInviteCode] = React.useState(''); async function sendInvites() { + const toastId = toast.loading("Sending invite...") setIsLoading(true) let res = await inviteBatchUsers(org.id, invitedUsers, selectedInviteCode,access_token) if (res.status == 200) { mutate(`${getAPIUrl()}orgs/${org?.id}/invites/users`) setIsLoading(false) + toast.success("Invite sent", {id:toastId}) } else { - toast.error('Error ' + res.status + ': ' + res.data.detail) + toast.error('Error sending invite', {id:toastId}) setIsLoading(false) } diff --git a/apps/web/components/Objects/Modals/Dash/OrgUserGroups/AddUserGroup.tsx b/apps/web/components/Objects/Modals/Dash/OrgUserGroups/AddUserGroup.tsx index 7389f50d..403796c0 100644 --- a/apps/web/components/Objects/Modals/Dash/OrgUserGroups/AddUserGroup.tsx +++ b/apps/web/components/Objects/Modals/Dash/OrgUserGroups/AddUserGroup.tsx @@ -12,6 +12,7 @@ import { mutate } from 'swr' import { getAPIUrl } from '@services/config/config' import { useLHSession } from '@components/Contexts/LHSessionContext' import { useFormik } from 'formik' +import toast from 'react-hot-toast' type AddUserGroupProps = { setCreateUserGroupModal: any @@ -40,15 +41,17 @@ function AddUserGroup(props: AddUserGroupProps) { }, validate, onSubmit: async (values) => { + const toastID = toast.loading("Creating...") setIsSubmitting(true) const res = await createUserGroup(values, access_token) if (res.status == 200) { setIsSubmitting(false) mutate(`${getAPIUrl()}usergroups/org/${org.id}`) props.setCreateUserGroupModal(false) - + toast.success("Created new usergroup", {id:toastID}) } else { setIsSubmitting(false) + toast.error("Couldn't create new usergroup", {id:toastID}) } }, }) diff --git a/apps/web/components/Objects/Modals/Dash/OrgUsers/RolesUpdate.tsx b/apps/web/components/Objects/Modals/Dash/OrgUsers/RolesUpdate.tsx index 9168a7a2..0c14a500 100644 --- a/apps/web/components/Objects/Modals/Dash/OrgUsers/RolesUpdate.tsx +++ b/apps/web/components/Objects/Modals/Dash/OrgUsers/RolesUpdate.tsx @@ -12,6 +12,7 @@ import { FormMessage } from '@radix-ui/react-form' import { getAPIUrl } from '@services/config/config' import { updateUserRole } from '@services/organizations/orgs' import React, { useEffect } from 'react' +import toast from 'react-hot-toast' import { BarLoader } from 'react-spinners' import { mutate } from 'swr' @@ -40,13 +41,15 @@ function RolesUpdate(props: Props) { e.preventDefault() setIsSubmitting(true) const res = await updateUserRole(org.id, props.user.user.id, assignedRole,access_token) - + const toastId = toast.loading("Updating role...") if (res.status === 200) { await mutate(`${getAPIUrl()}orgs/${org.id}/users`) props.setRolesModal(false) + toast.success("Updated role", {id:toastId}) } else { setIsSubmitting(false) setError('Error ' + res.status + ': ' + res.data.detail) + toast.error("Error while updating role", {id:toastId}) } } diff --git a/apps/web/services/courses/collections.ts b/apps/web/services/courses/collections.ts index fb67264a..097a8deb 100644 --- a/apps/web/services/courses/collections.ts +++ b/apps/web/services/courses/collections.ts @@ -1,3 +1,4 @@ +import toast from 'react-hot-toast' import { getAPIUrl } from '../config/config' import { RequestBodyWithAuthHeader,