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