fix(Response): Ajuste do controle de resposta inesperadas vindas do servidor
This commit is contained in:
parent
87f4a40d9f
commit
debe30dc71
14 changed files with 69 additions and 27 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -40,4 +40,4 @@ yarn-error.log*
|
|||
*.tsbuildinfo
|
||||
next-env.d.ts
|
||||
|
||||
src/config/app.json
|
||||
/src/config/app.json
|
||||
|
|
|
|||
|
|
@ -64,9 +64,6 @@ export default function TTBAndamentoServico() {
|
|||
// Aguarda salvar o registro
|
||||
await saveGTBProfissao(formData);
|
||||
|
||||
// Encerra o fomulário
|
||||
handleCloseForm();
|
||||
|
||||
// Atualiza a lista de dados
|
||||
fetchGTBProfissao();
|
||||
|
||||
|
|
|
|||
|
|
@ -64,13 +64,10 @@ export default function TTBAndamentoServico() {
|
|||
// Aguarda salvar o registro
|
||||
await saveGTBRegimeComunhao(formData);
|
||||
|
||||
// Encerra o fomulário
|
||||
handleCloseForm();
|
||||
|
||||
// Atualiza a lista de dados
|
||||
fetchGTBRegimeComunhao();
|
||||
|
||||
}, [saveGTBRegimeComunhao, fetchGTBRegimeComunhao, handleCloseForm]);
|
||||
}, [saveGTBRegimeComunhao, fetchGTBRegimeComunhao]);
|
||||
|
||||
/**
|
||||
* Quando o usuário clica em "remover" na tabela
|
||||
|
|
|
|||
|
|
@ -63,14 +63,11 @@ export default function TTBAndamentoServico() {
|
|||
|
||||
// Aguarda salvar o registro
|
||||
await saveTTBAndamentoServico(formData);
|
||||
|
||||
// Encerra o fomulário
|
||||
handleCloseForm();
|
||||
|
||||
|
||||
// Atualiza a lista de dados
|
||||
fetchTTBAndamentoServico();
|
||||
|
||||
}, [saveTTBAndamentoServico, fetchTTBAndamentoServico, handleCloseForm]);
|
||||
}, [saveTTBAndamentoServico, fetchTTBAndamentoServico]);
|
||||
|
||||
/**
|
||||
* Quando o usuário clica em "remover" na tabela
|
||||
|
|
|
|||
|
|
@ -65,13 +65,10 @@ export default function TTBAndamentoServico() {
|
|||
// Aguarda salvar o registro
|
||||
await saveTTBReconhecimentoTipo(formData);
|
||||
|
||||
// Encerra o fomulário
|
||||
handleCloseForm();
|
||||
|
||||
// Atualiza a lista de dados
|
||||
fetchTTBReconhecimentosTipos();
|
||||
|
||||
}, [saveTTBReconhecimentoTipo, fetchTTBReconhecimentosTipos, handleCloseForm]);
|
||||
}, [saveTTBReconhecimentoTipo, fetchTTBReconhecimentosTipos]);
|
||||
|
||||
/**
|
||||
* Quando o usuário clica em "remover" na tabela
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@ export default function GTBProfissaoForm({ isOpen, data, onClose, onSave }: Prop
|
|||
}}
|
||||
>
|
||||
<DialogContent className="sm:max-w-[425px]">
|
||||
|
||||
<DialogHeader>
|
||||
<DialogTitle>
|
||||
Profissões
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ export const useGTBProfissaoSaveHook = () => {
|
|||
|
||||
const { setResponse } = useResponse();
|
||||
const [gTBProfissao, setGTBProfissao] = useState<GTBProfissaoInterface | null>(null);
|
||||
// controla se o formulário está aberto ou fechado
|
||||
const [isOpen, setIsOpen] = useState(false);
|
||||
|
||||
const saveGTBProfissao = async (data: GTBProfissaoInterface) => {
|
||||
|
||||
|
|
@ -16,6 +18,12 @@ export const useGTBProfissaoSaveHook = () => {
|
|||
|
||||
setResponse(response);
|
||||
|
||||
// Fecha o formulário automaticamente após salvar
|
||||
setIsOpen(false);
|
||||
|
||||
// Retorna os dados imediatamente
|
||||
return response;
|
||||
|
||||
}
|
||||
|
||||
return { gTBProfissao, saveGTBProfissao }
|
||||
|
|
|
|||
|
|
@ -7,15 +7,25 @@ export const useGTBRegimeComunhaoSaveHook = () => {
|
|||
|
||||
const { setResponse } = useResponse();
|
||||
const [gTBRegimeComunhao, setGTBRegimeComunhao] = useState<GTBRegimeComunhaoInterface | null>(null);
|
||||
// controla se o formulário está aberto ou fechado
|
||||
const [isOpen, setIsOpen] = useState(false);
|
||||
|
||||
const saveGTBRegimeComunhao = async (data: GTBRegimeComunhaoInterface) => {
|
||||
|
||||
const response = await GTBRegimeComunhaoSaveService(data);
|
||||
|
||||
// Guardar os dados localizados
|
||||
setGTBRegimeComunhao(response.data);
|
||||
|
||||
// Manda a resposta para o verificador de resposta
|
||||
setResponse(response);
|
||||
|
||||
// Fecha o formulário automaticamente após salvar
|
||||
setIsOpen(false);
|
||||
|
||||
// Retorna os dados imediatamente
|
||||
return response;
|
||||
|
||||
}
|
||||
|
||||
return { gTBRegimeComunhao, saveGTBRegimeComunhao }
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@ export const useTTBAndamentoServicoSaveHook = () => {
|
|||
|
||||
const [tTBAndamentoServico, setTTBAndamentoServico] = useState<TTBAndamentoServicoInteface>();
|
||||
|
||||
// controla se o formulário está aberto ou fechado
|
||||
const [isOpen, setIsOpen] = useState(false);
|
||||
|
||||
const saveTTBAndamentoServico = async (data: TTBAndamentoServicoInteface) => {
|
||||
|
||||
const response = await TTBAndamentoServicoSaveData(data);
|
||||
|
|
@ -21,6 +24,9 @@ export const useTTBAndamentoServicoSaveHook = () => {
|
|||
// Define os dados da respota(toast, modal, etc)
|
||||
setResponse(response);
|
||||
|
||||
// Fecha o formulário automaticamente após salvar
|
||||
setIsOpen(false);
|
||||
|
||||
// Retorna os valores de forma imediata
|
||||
return response.data;
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,9 @@ export const useTTBReconhecimentoTipoSaveHook = () => {
|
|||
|
||||
const [tTBReconhecimentoTipo, setTTBReconhcimentoTipo] = useState<ITTTBReconhecimentoTipo>();
|
||||
|
||||
// controla se o formulário está aberto ou fechado
|
||||
const [isOpen, setIsOpen] = useState(false);
|
||||
|
||||
const saveTTBReconhecimentoTipo = async (reconhecimentoTipo: ITTTBReconhecimentoTipo) => {
|
||||
|
||||
const response = await TTBReconhecimentoTipoSaveData(reconhecimentoTipo);
|
||||
|
|
@ -19,6 +22,9 @@ export const useTTBReconhecimentoTipoSaveHook = () => {
|
|||
|
||||
setResponse(response);
|
||||
|
||||
// Fecha o formulário automaticamente após salvar
|
||||
setIsOpen(false);
|
||||
|
||||
// Retorna os valores de forma imediata
|
||||
return response.data;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ export default async function GTProfissaoSaveService(data: GTBProfissaoInterface
|
|||
|
||||
const response = await GTBProfissaoSaveData(data);
|
||||
|
||||
console.log('GTBRegimeComunhaoSaveData', response)
|
||||
|
||||
return response;
|
||||
|
||||
}
|
||||
|
|
@ -74,7 +74,7 @@ export default function RootLayout({
|
|||
<ResponseProvider>
|
||||
<div className="flex flex-1 flex-col gap-4 p-4 pt-0">
|
||||
{children}
|
||||
<Toaster position="top-center" />
|
||||
<Toaster richColors position="top-center" />
|
||||
<Response />
|
||||
</div>
|
||||
</ResponseProvider>
|
||||
|
|
|
|||
|
|
@ -17,10 +17,10 @@ interface ResponseContextProps {
|
|||
const ResponseContext = createContext<ResponseContextProps | undefined>(undefined);
|
||||
|
||||
export const ResponseProvider: React.FC<{ children: ReactNode }> = ({ children }) => {
|
||||
const [response, setResponseState] = useState<ResponseState>({ message: '', type: null, status : 0});
|
||||
const [response, setResponseState] = useState<ResponseState>({ message: '', type: null, status: 0 });
|
||||
|
||||
const setResponse = (value: ResponseState) => setResponseState(value);
|
||||
const clearResponse = () => setResponseState({ message: '', type: null, status : 0});
|
||||
const clearResponse = () => setResponseState({ message: '', type: null, status: 0 });
|
||||
|
||||
return (
|
||||
<ResponseContext.Provider value={{ response, setResponse, clearResponse }}>
|
||||
|
|
|
|||
|
|
@ -1,20 +1,41 @@
|
|||
// app/src/app/_response/response.tsx
|
||||
"use client";
|
||||
|
||||
import { useResponse } from "./ResponseContext";
|
||||
import { useEffect } from "react";
|
||||
import { toast } from "sonner";
|
||||
import {
|
||||
useResponse
|
||||
} from "./ResponseContext";
|
||||
import {
|
||||
useEffect
|
||||
} from "react";
|
||||
import {
|
||||
toast
|
||||
} from "sonner";
|
||||
|
||||
export default function Response() {
|
||||
const { response, clearResponse } = useResponse();
|
||||
const {
|
||||
response,
|
||||
clearResponse
|
||||
} = useResponse();
|
||||
|
||||
useEffect(() => {
|
||||
switch (Number(response?.status)) {
|
||||
case 200:
|
||||
toast(response.message);
|
||||
case 201:
|
||||
toast.success(response.message);
|
||||
break;
|
||||
|
||||
case 422:
|
||||
toast.danger(response.error, {
|
||||
description: response.detail
|
||||
});
|
||||
break;
|
||||
|
||||
default:
|
||||
if (response.status !== 0 && response.status !== 200 && response.status !== 201) {
|
||||
toast.warning(JSON.stringify(response));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}, [response, clearResponse]);
|
||||
|
||||
return <div></div>;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue