feat: useManageErrors hook
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import { addAlert } from '@/state/feedbackSlice'
|
||||
import { nanoid } from '@reduxjs/toolkit'
|
||||
import { AppwriteException } from 'appwrite'
|
||||
import { useAppDispatch } from './useAppDispatch'
|
||||
|
||||
type ManageError = (error: unknown, errorTitle: string, defaultMessage?: string, severity?: 'error') => void
|
||||
|
||||
type UseManageError = () => {
|
||||
manageError: ManageError
|
||||
}
|
||||
|
||||
const useManageError: UseManageError = () => {
|
||||
const dispatch = useAppDispatch()
|
||||
const manageError: ManageError = (error, errorTitle, defaultMessage, severity): void => {
|
||||
if (error instanceof AppwriteException) {
|
||||
dispatch(addAlert({
|
||||
id: nanoid(),
|
||||
title: errorTitle,
|
||||
message: error.message ?? defaultMessage,
|
||||
severity: severity ?? 'error'
|
||||
}))
|
||||
} else if (error instanceof Error) {
|
||||
dispatch(addAlert({
|
||||
id: nanoid(),
|
||||
title: errorTitle,
|
||||
message: error.message ?? defaultMessage,
|
||||
severity: severity ?? 'error'
|
||||
}))
|
||||
} else {
|
||||
dispatch(addAlert({
|
||||
id: nanoid(),
|
||||
title: errorTitle,
|
||||
message: 'Error desconocido',
|
||||
severity: severity ?? 'error'
|
||||
}))
|
||||
}
|
||||
}
|
||||
return { manageError }
|
||||
}
|
||||
|
||||
export default useManageError
|
||||
Reference in New Issue
Block a user