UNPKG

react-fblibrary

Version:

FBLibrary é uma biblioteca autoral que reúne componentes e bases fundamentais para desenvolvimento eficiente. Nosso objetivo é criar um ecossistema de componentes, desde elementos simples, como inputs e botões, até layouts completos, que podem ser reutili

69 lines (58 loc) 2.22 kB
import { message } from 'antd'; /** * Hook para lidar com mensagens de erro com base no código de status e no objeto de erro. * * @return {Function} - Retorna uma função para manipulação de mensagens de erro. */ export function useHandleErrorMessage() { const handleErrorMessage = (status: number, error: Error | null): void => { // Mapeamento de mensagens de erro por status HTTP const statusMessages = new Map<number, string>([ // Códigos de status 1xx [100, 'error.continue'], [102, 'error.processing'], [103, 'error.protocolInteraction'], // Códigos de status 2xx [200, 'error.successRequest'], [201, 'error.createdRequest'], [204, 'error.noContent'], [206, 'error.partialContent'], // Códigos de status 3xx [301, 'error.movedPermanently'], [302, 'error.movedTemporarily'], [303, 'error.seeOther'], [304, 'error.notModified'], [307, 'error.redirect'], [308, 'error.redirect'], // Códigos de status 4xx [401, 'error.unauthorized'], [403, 'error.forbidden'], [404, 'error.notFound'], [406, 'error.contentValidation'], [407, 'error.proxyAuthentication'], [409, 'error.conflict'], [410, 'error.gone'], [412, 'error.preconditionFailed'], [416, 'error.requestedRangeNotSatisfiable'], [418, 'error.teapot'], [425, 'error.tooManyRequests'], [451, 'error.legalAccessDenied'], // Códigos de status 5xx [500, 'error.internalServerError'], [501, 'error.notImplemented'], [502, 'error.badGateway'], [503, 'error.serviceUnavailable'], [504, 'error.gatewayTimeout'], ]); // Verifica se existe uma mensagem correspondente ao status let errorMessage = statusMessages.get(status) || "error.defaultError"; // Verifica se há erro de rede if (error?.message?.includes('Network Error')) { errorMessage = 'error.networkError'; } console.error(`Erro [Status: ${status}]:`, error); // Exibe a mensagem de erro ao usuário message.error(errorMessage); }; return handleErrorMessage; }