diff --git a/src/app/(protected)/(cadastros)/cadastros/(t_censec)/censec/page.tsx b/src/app/(protected)/(cadastros)/cadastros/(t_censec)/censec/page.tsx
index e4050c9..24287f2 100644
--- a/src/app/(protected)/(cadastros)/cadastros/(t_censec)/censec/page.tsx
+++ b/src/app/(protected)/(cadastros)/cadastros/(t_censec)/censec/page.tsx
@@ -18,6 +18,10 @@ import TCensecInterface from "../../_interfaces/TCensecInterface";
import Header from "@/app/_components/structure/Header";
export default function TTBAndamentoServico() {
+
+ // Controle de estado do botão
+ const [buttonIsLoading, setButtonIsLoading] = useState(false);
+
// Hooks para leitura e salvamento
const { tCensec, fetchTCensec } = useTCensecReadHook();
const { saveTCensec } = useTCensecSaveHook();
@@ -61,9 +65,15 @@ export default function TTBAndamentoServico() {
*/
const handleSave = useCallback(async (formData: TCensecInterface) => {
+ // Coloca o botão em estado de loading
+ setButtonIsLoading(true);
+
// Aguarda salvar o registro
await saveTCensec(formData);
+ // Remove o botão em estado de loading
+ setButtonIsLoading(false);
+
// Atualiza a lista de dados
fetchTCensec();
@@ -114,7 +124,7 @@ export default function TTBAndamentoServico() {
/**
* Tela de loading enquanto carrega os dados
*/
- if (!tCensec) {
+ if (tCensec.length == 0) {
return ;
}
@@ -157,6 +167,7 @@ export default function TTBAndamentoServico() {
data={selectedAndamento}
onClose={handleCloseForm}
onSave={handleSave}
+ buttonIsLoading={buttonIsLoading}
/>
); 4
diff --git a/src/app/(protected)/(cadastros)/cadastros/_components/t_censec/TCensecForm.tsx b/src/app/(protected)/(cadastros)/cadastros/_components/t_censec/TCensecForm.tsx
index 93576d7..a5e58fd 100644
--- a/src/app/(protected)/(cadastros)/cadastros/_components/t_censec/TCensecForm.tsx
+++ b/src/app/(protected)/(cadastros)/cadastros/_components/t_censec/TCensecForm.tsx
@@ -28,6 +28,8 @@ import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";
import { TCensecSchema } from "../../_schemas/TCensecSchema";
+import { SituacoesEnum } from "@/enums/SituacoesEnum";
+import LoadingButton from "@/app/_components/loadingButton/LoadingButton";
type FormValues = z.infer;
@@ -36,15 +38,16 @@ interface Props {
data: FormValues | null;
onClose: (item: null, isFormStatus: boolean) => void;
onSave: (data: FormValues) => void;
+ buttonIsLoading: boolean;
}
-export default function TCensecForm({ isOpen, data, onClose, onSave }: Props) {
+export default function TCensecForm({ isOpen, data, onClose, onSave, buttonIsLoading }: Props) {
// Inicializa o react-hook-form com schema zod
const form = useForm({
resolver: zodResolver(TCensecSchema),
defaultValues: {
descricao: "",
- situacao: "A",
+ situacao: SituacoesEnum.A,
censec_id: 0,
},
});
@@ -112,9 +115,8 @@ export default function TCensecForm({ isOpen, data, onClose, onSave }: Props) {
Cancelar
-
+ {/* Botão de loading */}
+
{/* Campo oculto */}
diff --git a/src/app/(protected)/(cadastros)/cadastros/_data/TCensec/TCensecDeleteData.ts b/src/app/(protected)/(cadastros)/cadastros/_data/TCensec/TCensecDeleteData.ts
index f3f367a..0a0dffe 100644
--- a/src/app/(protected)/(cadastros)/cadastros/_data/TCensec/TCensecDeleteData.ts
+++ b/src/app/(protected)/(cadastros)/cadastros/_data/TCensec/TCensecDeleteData.ts
@@ -1,10 +1,17 @@
+import API from "@/services/api/Api";
import TCensecInterface from "../../_interfaces/TCensecInterface";
+import { Methods } from "@/services/api/enums/ApiMethodEnum";
+import { withClientErrorHandler } from "@/actions/withClientErrorHandler/withClientErrorHandler";
-export default async function TCensecDeleteData(data: TCensecInterface) {
+async function executeTCensecDeleteData(data: TCensecInterface) {
- return Promise.resolve({
- message: 'Dados removidos',
- status: 200
+ const api = new API();
+
+ return await api.send({
+ method: Methods.DELETE,
+ endpoint: `administrativo/t_censec/${data.censec_id}`,
});
-}
\ No newline at end of file
+}
+
+export const TCensecDeleteData = withClientErrorHandler(executeTCensecDeleteData);
\ No newline at end of file
diff --git a/src/app/(protected)/(cadastros)/cadastros/_data/TCensec/TCensecIndexData.ts b/src/app/(protected)/(cadastros)/cadastros/_data/TCensec/TCensecIndexData.ts
index d1747cf..d8a5896 100644
--- a/src/app/(protected)/(cadastros)/cadastros/_data/TCensec/TCensecIndexData.ts
+++ b/src/app/(protected)/(cadastros)/cadastros/_data/TCensec/TCensecIndexData.ts
@@ -1,30 +1,16 @@
-export default async function TCensecIndexData() {
+import { withClientErrorHandler } from "@/actions/withClientErrorHandler/withClientErrorHandler";
+import API from "@/services/api/Api";
+import { Methods } from "@/services/api/enums/ApiMethodEnum";
- return Promise.resolve({
- message: 'Dados localizados',
- status: 200,
- data: [
- {
- censec_id: 1.00,
- descricao: 'CEP - Escritura e Procurações Diversas',
- situacao: 'A'
- },
- {
- censec_id: 2.00,
- descricao: 'CESDI - Escrituras Lei 11.441',
- situacao: 'A'
- },
- {
- censec_id: 3.00,
- descricao: 'RCTO - Testamentos',
- situacao: 'A'
- },
- {
- censec_id: 9.00,
- descricao: 'Não Possui',
- situacao: 'A'
- }
- ]
+async function executeTCensecIndexData() {
+
+ const api = new API();
+
+ return await api.send({
+ method: Methods.GET,
+ endpoint: `administrativo/t_censec/`,
});
-}
\ No newline at end of file
+}
+
+export const TCensecIndexData = withClientErrorHandler(executeTCensecIndexData);
\ No newline at end of file
diff --git a/src/app/(protected)/(cadastros)/cadastros/_data/TCensec/TCensecSaveData.ts b/src/app/(protected)/(cadastros)/cadastros/_data/TCensec/TCensecSaveData.ts
index eefb0f8..49804e5 100644
--- a/src/app/(protected)/(cadastros)/cadastros/_data/TCensec/TCensecSaveData.ts
+++ b/src/app/(protected)/(cadastros)/cadastros/_data/TCensec/TCensecSaveData.ts
@@ -1,15 +1,20 @@
+import API from "@/services/api/Api";
+import { Methods } from "@/services/api/enums/ApiMethodEnum";
import TCensecInterface from "../../_interfaces/TCensecInterface";
+import { withClientErrorHandler } from "@/actions/withClientErrorHandler/withClientErrorHandler";
-export default async function TCensecSaveData(data: TCensecInterface) {
+async function executeTCensecSaveData(data: TCensecInterface) {
- return Promise.resolve({
- message: 'Dados salvos',
- status: 201,
- data: {
- censec_id: 9.00,
- descricao: 'Não Possui',
- situacao: 'A'
- }
+ const isUpdate = Boolean(data.censec_id);
+
+ const api = new API();
+
+ return await api.send({
+ method: isUpdate ? Methods.PUT : Methods.POST,
+ endpoint: `administrativo/t_censec/${data.censec_id || ''}`,
+ body: data
});
-}
\ No newline at end of file
+}
+
+export const TCensecSaveData = withClientErrorHandler(executeTCensecSaveData);
\ No newline at end of file
diff --git a/src/app/(protected)/(cadastros)/cadastros/_hooks/t_censec/useTCensecDeleteHook.ts b/src/app/(protected)/(cadastros)/cadastros/_hooks/t_censec/useTCensecDeleteHook.ts
index 6542033..1ac288a 100644
--- a/src/app/(protected)/(cadastros)/cadastros/_hooks/t_censec/useTCensecDeleteHook.ts
+++ b/src/app/(protected)/(cadastros)/cadastros/_hooks/t_censec/useTCensecDeleteHook.ts
@@ -1,6 +1,6 @@
import { useResponse } from "@/app/_response/ResponseContext"
import TCensecInterface from "../../_interfaces/TCensecInterface";
-import TCensecDeleteService from "../../_services/t_censec/TCensecDeleteService";
+import { TCensecDeleteService } from "../../_services/t_censec/TCensecDeleteService";
export const useTCensecDeleteHook = () => {
diff --git a/src/app/(protected)/(cadastros)/cadastros/_hooks/t_censec/useTCensecReadHook.ts b/src/app/(protected)/(cadastros)/cadastros/_hooks/t_censec/useTCensecReadHook.ts
index b71e8c3..3fd4148 100644
--- a/src/app/(protected)/(cadastros)/cadastros/_hooks/t_censec/useTCensecReadHook.ts
+++ b/src/app/(protected)/(cadastros)/cadastros/_hooks/t_censec/useTCensecReadHook.ts
@@ -1,5 +1,5 @@
import { useResponse } from "@/app/_response/ResponseContext"
-import TCensecIndexService from "../../_services/t_censec/TCensecIndexService";
+import { TCensecIndexService } from "../../_services/t_censec/TCensecIndexService";
import { useState } from "react";
import TCensecInterface from "../../_interfaces/TCensecInterface";
@@ -17,8 +17,6 @@ export const useTCensecReadHook = () => {
setResponse(response);
- return response
-
}
return { tCensec, fetchTCensec }
diff --git a/src/app/(protected)/(cadastros)/cadastros/_hooks/t_censec/useTCensecSaveHook.ts b/src/app/(protected)/(cadastros)/cadastros/_hooks/t_censec/useTCensecSaveHook.ts
index a1412b7..7efbb56 100644
--- a/src/app/(protected)/(cadastros)/cadastros/_hooks/t_censec/useTCensecSaveHook.ts
+++ b/src/app/(protected)/(cadastros)/cadastros/_hooks/t_censec/useTCensecSaveHook.ts
@@ -3,7 +3,7 @@
import { useResponse } from "@/app/_response/ResponseContext"
import { useState } from "react";
import TCensecInterface from "../../_interfaces/TCensecInterface";
-import TCensecSaveService from "../../_services/t_censec/TCensecSaveService";
+import { TCensecSaveService } from "../../_services/t_censec/TCensecSaveService";
export const useTCensecSaveHook = () => {
diff --git a/src/app/(protected)/(cadastros)/cadastros/_services/t_censec/TCensecDeleteService.ts b/src/app/(protected)/(cadastros)/cadastros/_services/t_censec/TCensecDeleteService.ts
index f70eea2..8a12cad 100644
--- a/src/app/(protected)/(cadastros)/cadastros/_services/t_censec/TCensecDeleteService.ts
+++ b/src/app/(protected)/(cadastros)/cadastros/_services/t_censec/TCensecDeleteService.ts
@@ -1,10 +1,13 @@
-import TCensecDeleteData from "../../_data/TCensec/TCensecDeleteData";
+import { withClientErrorHandler } from "@/actions/withClientErrorHandler/withClientErrorHandler";
+import { TCensecDeleteData } from "../../_data/TCensec/TCensecDeleteData";
import TCensecInterface from "../../_interfaces/TCensecInterface";
-export default async function TCensecDeleteService(data: TCensecInterface) {
+async function executeTCensecDeleteService(data: TCensecInterface) {
const response = await TCensecDeleteData(data);
return response;
-}
\ No newline at end of file
+}
+
+export const TCensecDeleteService = withClientErrorHandler(executeTCensecDeleteService);
\ No newline at end of file
diff --git a/src/app/(protected)/(cadastros)/cadastros/_services/t_censec/TCensecIndexService.ts b/src/app/(protected)/(cadastros)/cadastros/_services/t_censec/TCensecIndexService.ts
index 1e37031..7909527 100644
--- a/src/app/(protected)/(cadastros)/cadastros/_services/t_censec/TCensecIndexService.ts
+++ b/src/app/(protected)/(cadastros)/cadastros/_services/t_censec/TCensecIndexService.ts
@@ -1,9 +1,12 @@
-import TCensecIndexData from "../../_data/TCensec/TCensecIndexData";
+import { withClientErrorHandler } from "@/actions/withClientErrorHandler/withClientErrorHandler";
+import { TCensecIndexData } from "../../_data/TCensec/TCensecIndexData";
-export default async function TCensecIndexService() {
+export default async function executeTCensecIndexService() {
const response = await TCensecIndexData();
return response;
-}
\ No newline at end of file
+}
+
+export const TCensecIndexService = withClientErrorHandler(executeTCensecIndexService);
\ No newline at end of file
diff --git a/src/app/(protected)/(cadastros)/cadastros/_services/t_censec/TCensecSaveService.ts b/src/app/(protected)/(cadastros)/cadastros/_services/t_censec/TCensecSaveService.ts
index 0240cb8..f7d1739 100644
--- a/src/app/(protected)/(cadastros)/cadastros/_services/t_censec/TCensecSaveService.ts
+++ b/src/app/(protected)/(cadastros)/cadastros/_services/t_censec/TCensecSaveService.ts
@@ -1,10 +1,13 @@
-import TCensecSaveData from "../../_data/TCensec/TCensecSaveData";
+import { withClientErrorHandler } from "@/actions/withClientErrorHandler/withClientErrorHandler";
+import { TCensecSaveData } from "../../_data/TCensec/TCensecSaveData";
import TCensecInterface from "../../_interfaces/TCensecInterface";
-export default async function TCensecSaveService(data: TCensecInterface) {
+async function executeTCensecSaveService(data: TCensecInterface) {
const response = await TCensecSaveData(data);
return response;
-}
\ No newline at end of file
+}
+
+export const TCensecSaveService = withClientErrorHandler(executeTCensecSaveService);
\ No newline at end of file