Added toast notifications

This commit is contained in:
JeyGR 2024-12-18 22:17:01 +05:30 committed by jey-exp
parent feebdfcfe9
commit ab86a3b871
8 changed files with 48 additions and 18 deletions

View file

@ -42,21 +42,25 @@ function OrgAccess() {
} }
async function deleteInvite(invite: any) { async function deleteInvite(invite: any) {
const toastId = toast.loading("Deleting...")
let res = await deleteInviteCode(org.id, invite.invite_code_uuid, access_token) let res = await deleteInviteCode(org.id, invite.invite_code_uuid, access_token)
if (res.status == 200) { if (res.status == 200) {
mutate(`${getAPIUrl()}orgs/${org.id}/invites`) mutate(`${getAPIUrl()}orgs/${org.id}/invites`)
toast.success("Deleted invite code", {id:toastId})
} else { } else {
toast.error('Error ' + res.status + ': ' + res.data.detail) toast.error('Error deleting', {id:toastId})
} }
} }
async function changeJoinMethod(method: 'open' | 'inviteOnly') { async function changeJoinMethod(method: 'open' | 'inviteOnly') {
const toastId = toast.loading("Changing join method...")
let res = await changeSignupMechanism(org.id, method, access_token) let res = await changeSignupMechanism(org.id, method, access_token)
if (res.status == 200) { if (res.status == 200) {
router.refresh() router.refresh()
mutate(`${getAPIUrl()}orgs/slug/${org?.slug}`) mutate(`${getAPIUrl()}orgs/slug/${org?.slug}`)
toast.success(`Changed join method to ${method}`, {id:toastId})
} else { } else {
toast.error('Error ' + res.status + ': ' + res.data.detail) toast.error('Error changing join method', {id:toastId})
} }
} }

View file

@ -29,12 +29,14 @@ function OrgUserGroups() {
) )
const deleteUserGroupUI = async (usergroup_id: any) => { const deleteUserGroupUI = async (usergroup_id: any) => {
const toastId = toast.loading("Deleting...");
const res = await deleteUserGroup(usergroup_id, access_token) const res = await deleteUserGroup(usergroup_id, access_token)
if (res.status == 200) { if (res.status == 200) {
mutate(`${getAPIUrl()}usergroups/org/${org.id}`) mutate(`${getAPIUrl()}usergroups/org/${org.id}`)
toast.success("Deleted usergroup", {id:toastId})
} }
else { else {
toast.error('Error ' + res.status + ': ' + res.data.detail) toast.error('Error deleting usergroup', {id:toastId})
} }
} }

View file

@ -31,11 +31,13 @@ function OrgUsers() {
} }
const handleRemoveUser = async (user_id: any) => { const handleRemoveUser = async (user_id: any) => {
const toastId = toast.loading("Removing...");
const res = await removeUserFromOrg(org.id, user_id,access_token) const res = await removeUserFromOrg(org.id, user_id,access_token)
if (res.status === 200) { if (res.status === 200) {
await mutate(`${getAPIUrl()}orgs/${org.id}/users`) await mutate(`${getAPIUrl()}orgs/${org.id}/users`)
toast.success("Removed user from org", {id:toastId});
} else { } else {
toast.error('Error ' + res.status + ': ' + res.data.detail) toast.error('Error removing user', {id:toastId});
} }
} }

View file

@ -20,13 +20,15 @@ function OrgUsersAdd() {
const [selectedInviteCode, setSelectedInviteCode] = React.useState(''); const [selectedInviteCode, setSelectedInviteCode] = React.useState('');
async function sendInvites() { async function sendInvites() {
const toastId = toast.loading("Sending invite...")
setIsLoading(true) setIsLoading(true)
let res = await inviteBatchUsers(org.id, invitedUsers, selectedInviteCode,access_token) let res = await inviteBatchUsers(org.id, invitedUsers, selectedInviteCode,access_token)
if (res.status == 200) { if (res.status == 200) {
mutate(`${getAPIUrl()}orgs/${org?.id}/invites/users`) mutate(`${getAPIUrl()}orgs/${org?.id}/invites/users`)
setIsLoading(false) setIsLoading(false)
toast.success("Invite sent", {id:toastId})
} else { } else {
toast.error('Error ' + res.status + ': ' + res.data.detail) toast.error('Error sending invite', {id:toastId})
setIsLoading(false) setIsLoading(false)
} }

View file

@ -12,6 +12,7 @@ import { mutate } from 'swr'
import { getAPIUrl } from '@services/config/config' import { getAPIUrl } from '@services/config/config'
import { useLHSession } from '@components/Contexts/LHSessionContext' import { useLHSession } from '@components/Contexts/LHSessionContext'
import { useFormik } from 'formik' import { useFormik } from 'formik'
import toast from 'react-hot-toast'
type AddUserGroupProps = { type AddUserGroupProps = {
setCreateUserGroupModal: any setCreateUserGroupModal: any
@ -40,15 +41,17 @@ function AddUserGroup(props: AddUserGroupProps) {
}, },
validate, validate,
onSubmit: async (values) => { onSubmit: async (values) => {
const toastID = toast.loading("Creating...")
setIsSubmitting(true) setIsSubmitting(true)
const res = await createUserGroup(values, access_token) const res = await createUserGroup(values, access_token)
if (res.status == 200) { if (res.status == 200) {
setIsSubmitting(false) setIsSubmitting(false)
mutate(`${getAPIUrl()}usergroups/org/${org.id}`) mutate(`${getAPIUrl()}usergroups/org/${org.id}`)
props.setCreateUserGroupModal(false) props.setCreateUserGroupModal(false)
toast.success("Created new usergroup", {id:toastID})
} else { } else {
setIsSubmitting(false) setIsSubmitting(false)
toast.error("Couldn't create new usergroup", {id:toastID})
} }
}, },
}) })

View file

@ -12,6 +12,7 @@ import { FormMessage } from '@radix-ui/react-form'
import { getAPIUrl } from '@services/config/config' import { getAPIUrl } from '@services/config/config'
import { updateUserRole } from '@services/organizations/orgs' import { updateUserRole } from '@services/organizations/orgs'
import React, { useEffect } from 'react' import React, { useEffect } from 'react'
import toast from 'react-hot-toast'
import { BarLoader } from 'react-spinners' import { BarLoader } from 'react-spinners'
import { mutate } from 'swr' import { mutate } from 'swr'
@ -44,9 +45,11 @@ function RolesUpdate(props: Props) {
if (res.status === 200) { if (res.status === 200) {
await mutate(`${getAPIUrl()}orgs/${org.id}/users`) await mutate(`${getAPIUrl()}orgs/${org.id}/users`)
props.setRolesModal(false) props.setRolesModal(false)
toast.success("Updated role")
} else { } else {
setIsSubmitting(false) setIsSubmitting(false)
setError('Error ' + res.status + ': ' + res.data.detail) setError('Error ' + res.status + ': ' + res.data.detail)
toast.error("Couldn't update now")
} }
} }

View file

@ -1,3 +1,4 @@
import toast from 'react-hot-toast'
import { getAPIUrl } from '../config/config' import { getAPIUrl } from '../config/config'
import { import {
RequestBodyWithAuthHeader, RequestBodyWithAuthHeader,
@ -13,22 +14,34 @@ export async function deleteCollection(
collection_uuid: any, collection_uuid: any,
access_token: any access_token: any
) { ) {
const toastId = toast.loading("Deleting collection...")
try {
const result: any = await fetch( const result: any = await fetch(
`${getAPIUrl()}collections/${collection_uuid}`, `${getAPIUrl()}collections/${collection_uuid}`,
RequestBodyWithAuthHeader('DELETE', null, null, access_token) RequestBodyWithAuthHeader('DELETE', null, null, access_token)
) )
toast.success("Deleted colletion", {id:toastId})
const res = await errorHandling(result) const res = await errorHandling(result)
return res return res
} catch (error) {
toast.error("Couldn't delete collection", {id:toastId})
}
} }
// Create a new collection // Create a new collection
export async function createCollection(collection: any, access_token: any) { export async function createCollection(collection: any, access_token: any) {
const toastId = toast.loading("Creating...")
try {
const result: any = await fetch( const result: any = await fetch(
`${getAPIUrl()}collections/`, `${getAPIUrl()}collections/`,
RequestBodyWithAuthHeader('POST', collection, null, access_token) RequestBodyWithAuthHeader('POST', collection, null, access_token)
) )
toast.success("New collection created", {id:toastId})
const res = await errorHandling(result) const res = await errorHandling(result)
return res return res
} catch (error) {
toast.error("Couldn't create collection", {id:toastId})
}
} }
export async function getCollectionById( export async function getCollectionById(

View file

@ -4,6 +4,7 @@ import {
errorHandling, errorHandling,
getResponseMetadata, getResponseMetadata,
} from '@services/utils/ts/requests' } from '@services/utils/ts/requests'
import toast from 'react-hot-toast'
/* /*
This file includes only POST, PUT, DELETE requests This file includes only POST, PUT, DELETE requests