diff --git a/src/app/(protected)/(cadastros)/cadastros/(g_tb_estadocivil)/estado-civil/page.tsx b/src/app/(protected)/(cadastros)/cadastros/(g_tb_estadocivil)/estado-civil/page.tsx
index 536b2be..c794868 100644
--- a/src/app/(protected)/(cadastros)/cadastros/(g_tb_estadocivil)/estado-civil/page.tsx
+++ b/src/app/(protected)/(cadastros)/cadastros/(g_tb_estadocivil)/estado-civil/page.tsx
@@ -15,6 +15,7 @@ import { useGTBEstadoCivilSaveHook } from "../../_hooks/g_tb_estadocivil/useGTBE
import { useGTBEstadoCivilRemoveHook } from "../../_hooks/g_tb_estadocivil/useGTBEstadoCivilRemoveHook";
import { GTBEstadoCivilInterface } from "../../_interfaces/GTBEstadoCivilInterface";
+import { useResponse } from "@/app/_response/ResponseContext";
const initalEstadoCivil: GTBEstadoCivilInterface = {
tb_estadocivil_id: 0,
@@ -25,6 +26,12 @@ const initalEstadoCivil: GTBEstadoCivilInterface = {
export default function TBEstadoCivilPage() {
+ // Controle de exibição de respostas
+ const { setResponse } = useResponse();
+
+ // Controle de estado do botão
+ const [buttonIsLoading, setButtonIsLoading] = useState(false);
+
// Hooks para leitura e salvamento
const { gTBEstadoCivil, fetchGTBEstadoCivil } = useGTBEstadoCivilReadHook();
const { saveGTBEstadoCivil } = useGTBEstadoCivilSaveHook();
@@ -39,7 +46,6 @@ export default function TBEstadoCivilPage() {
const {
isOpen: isConfirmOpen,
openDialog: openConfirmDialog,
- handleConfirm,
handleCancel,
} = useConfirmDialog();
@@ -55,7 +61,11 @@ export default function TBEstadoCivilPage() {
}, []);
const handleSave = useCallback(async (data: GTBEstadoCivilInterface) => {
+ // Coloca o botão em estado de loading
+ setButtonIsLoading(true);
await saveGTBEstadoCivil(data);
+ // Remove o botão do estado de loading
+ setButtonIsLoading(false);
await fetchGTBEstadoCivil(); // Atualiza a tabela após salvar
handleCloseForm();
}, [saveGTBEstadoCivil, fetchGTBEstadoCivil]);
@@ -67,10 +77,17 @@ export default function TBEstadoCivilPage() {
}, [openConfirmDialog]);
const handleDelete = useCallback(async () => {
- if (itemToDelete) {
- await removeGTBEstadoCivil(itemToDelete);
- await fetchGTBEstadoCivil(); // Atualiza a tabela após remover
- }
+ if (!itemToDelete) {
+
+ // Define os dados da resposta visual
+ setResponse({
+ status: 400,
+ message: 'Não foi informado um registro para exclusão'
+ });
+ return;
+ };
+ await removeGTBEstadoCivil(itemToDelete);
+ await fetchGTBEstadoCivil(); // Atualiza a tabela após remover
handleCancel();
}, [itemToDelete, fetchGTBEstadoCivil, handleCancel]);
@@ -78,7 +95,7 @@ export default function TBEstadoCivilPage() {
useEffect(() => {
fetchGTBEstadoCivil();
}, []);
-
+
// Mostra tela de loading enquanto os dados não são carregados
if (!gTBEstadoCivil) {
return ;
@@ -123,6 +140,7 @@ export default function TBEstadoCivilPage() {
data={selectedEstadoCivil}
onClose={handleCloseForm}
onSave={handleSave}
+ buttonIsLoading={buttonIsLoading}
/>
);
diff --git a/src/app/(protected)/(cadastros)/cadastros/_components/g_tb_estadocivil/GTBEstadoCivilForm.tsx b/src/app/(protected)/(cadastros)/cadastros/_components/g_tb_estadocivil/GTBEstadoCivilForm.tsx
index 6e94347..8669364 100644
--- a/src/app/(protected)/(cadastros)/cadastros/_components/g_tb_estadocivil/GTBEstadoCivilForm.tsx
+++ b/src/app/(protected)/(cadastros)/cadastros/_components/g_tb_estadocivil/GTBEstadoCivilForm.tsx
@@ -5,6 +5,7 @@ import { useEffect } from "react";
import { useForm, Controller } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod";
+import LoadingButton from "@/app/_components/loadingButton/LoadingButton";
import { Button } from "@/components/ui/button";
import { Checkbox } from "@/components/ui/checkbox";
import {
@@ -37,9 +38,10 @@ interface TBEstadoCivilFormProps {
data: FormValues | null;
onClose: (item: null, isFormStatus: boolean) => void;
onSave: (data: FormValues) => void;
+ buttonIsLoading: boolean;
}
-export default function GTBEstadoCivilForm({ isOpen, data, onClose, onSave }: TBEstadoCivilFormProps) {
+export default function GTBEstadoCivilForm({ isOpen, data, onClose, onSave, buttonIsLoading }: TBEstadoCivilFormProps) {
// Inicializa o react-hook-form com o schema Zod
const form = useForm({
resolver: zodResolver(GTBEstadoCivilSchema),
@@ -113,9 +115,8 @@ export default function GTBEstadoCivilForm({ isOpen, data, onClose, onSave }: TB
Cancelar
-
+ {/* Botão de loading */}
+
{/* Campos ocultos */}
diff --git a/src/app/(protected)/(cadastros)/cadastros/_data/GTBEstadoCivil/GTBEstadoCivilIndexData.ts b/src/app/(protected)/(cadastros)/cadastros/_data/GTBEstadoCivil/GTBEstadoCivilIndexData.ts
index efa8787..c9895bc 100644
--- a/src/app/(protected)/(cadastros)/cadastros/_data/GTBEstadoCivil/GTBEstadoCivilIndexData.ts
+++ b/src/app/(protected)/(cadastros)/cadastros/_data/GTBEstadoCivil/GTBEstadoCivilIndexData.ts
@@ -1,14 +1,8 @@
import API from "@/services/api/Api";
import { Methods } from "@/services/api/enums/ApiMethodEnum";
-import EstadoCivilMockDeDados from "./mockEstadoCivil";
-const useMock = true
export default async function GTBEstadoCivilIndexData() {
- if (useMock) {
- console.log(EstadoCivilMockDeDados())
- return await EstadoCivilMockDeDados();
- }
const api = new API();
try {
diff --git a/src/app/(protected)/(cadastros)/cadastros/_data/GTBEstadoCivil/GTBEstadoCivilRemoveData.ts b/src/app/(protected)/(cadastros)/cadastros/_data/GTBEstadoCivil/GTBEstadoCivilRemoveData.ts
index 306b3c4..4b210db 100644
--- a/src/app/(protected)/(cadastros)/cadastros/_data/GTBEstadoCivil/GTBEstadoCivilRemoveData.ts
+++ b/src/app/(protected)/(cadastros)/cadastros/_data/GTBEstadoCivil/GTBEstadoCivilRemoveData.ts
@@ -2,7 +2,7 @@ import API from "@/services/api/Api";
import { GTBEstadoCivilInterface } from "../../_interfaces/GTBEstadoCivilInterface";
import { Methods } from "@/services/api/enums/ApiMethodEnum";
-export default async function GTBEstadoCivilRemoveData(data: GTBEstadoCivilInterface) {
+export default async function executeGTBEstadoCivilRemoveData(data: GTBEstadoCivilInterface) {
const api = new API();
diff --git a/src/app/(protected)/(cadastros)/cadastros/_data/GTBEstadoCivil/mockEstadoCivil.ts b/src/app/(protected)/(cadastros)/cadastros/_data/GTBEstadoCivil/mockEstadoCivil.ts
deleted file mode 100644
index 04e8155..0000000
--- a/src/app/(protected)/(cadastros)/cadastros/_data/GTBEstadoCivil/mockEstadoCivil.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-import { GTBBairroInterface } from "../../_interfaces/GTBBairroInterface";
-
-export default async function EstadoCivilMockDeDados() {
- return Promise.resolve({
- status: 200,
- message: 'Dados localizados',
- data: [
- {
- tb_estadocivil_id: 26.00,
- sistema_id: 2.00,
- descricao: "casado",
- situacao: "A",
- },
- {
- tb_estadocivil_id: 27.00,
- sistema_id: 2.00,
- descricao: "solteiro(a)",
- situacao: "A",
- },
- {
- tb_estadocivil_id: 28.00,
- sistema_id: 2.00,
- descricao: "desquitado(a)",
- situacao: "A",
- },
- {
- tb_estadocivil_id: 29.00,
- sistema_id: 2.00,
- descricao: "divorciado(a)",
- situacao: "A",
- },
- {
- tb_estadocivil_id: 30.00,
- sistema_id: 2.00,
- descricao: "espólio",
- situacao: "A",
- },
- {
- tb_estadocivil_id: 31.00,
- sistema_id: 2.00,
- descricao: "menor impúbere",
- situacao: "A",
- },
- {
- tb_estadocivil_id: 32.00,
- sistema_id: 2.00,
- descricao: "menor púbere",
- situacao: "A",
- },
- {
- tb_estadocivil_id: 33.00,
- sistema_id: 2.00,
- descricao: "não consta",
- situacao: "A",
- }
- ]
- });
-}
diff --git a/src/app/(protected)/(cadastros)/cadastros/_services/g_tb_estadocivil/GTBEstadoCivilIndexService.ts b/src/app/(protected)/(cadastros)/cadastros/_services/g_tb_estadocivil/GTBEstadoCivilIndexService.ts
index 11c0b1d..db35804 100644
--- a/src/app/(protected)/(cadastros)/cadastros/_services/g_tb_estadocivil/GTBEstadoCivilIndexService.ts
+++ b/src/app/(protected)/(cadastros)/cadastros/_services/g_tb_estadocivil/GTBEstadoCivilIndexService.ts
@@ -1,12 +1,14 @@
+import { withClientErrorHandler } from "@/actions/withClientErrorHandler/withClientErrorHandler";
import GTBEstadoCivilIndexData from "../../_data/GTBEstadoCivil/GTBEstadoCivilIndexData";
-export default async function GTBEstadoCivilIndexService() {
+async function executeGTBEstadoCivilIndexService() {
try {
const response = await GTBEstadoCivilIndexData();
return response;
} catch (error) {
- console.log(error)
return error
}
-}
\ No newline at end of file
+}
+
+export const GTBEstadoCivilIndexService = withClientErrorHandler(executeGTBEstadoCivilIndexService)
\ No newline at end of file
diff --git a/src/app/(protected)/(cadastros)/cadastros/_services/g_tb_estadocivil/GTBEstadoCivilRemoveService.ts b/src/app/(protected)/(cadastros)/cadastros/_services/g_tb_estadocivil/GTBEstadoCivilRemoveService.ts
index 4c19f10..da73a58 100644
--- a/src/app/(protected)/(cadastros)/cadastros/_services/g_tb_estadocivil/GTBEstadoCivilRemoveService.ts
+++ b/src/app/(protected)/(cadastros)/cadastros/_services/g_tb_estadocivil/GTBEstadoCivilRemoveService.ts
@@ -1,10 +1,13 @@
+import { withClientErrorHandler } from "@/actions/withClientErrorHandler/withClientErrorHandler";
import GTBEstadoCivilSaveData from "../../_data/GTBEstadoCivil/GTBEstadoCivilSaveData";
import { GTBEstadoCivilInterface } from "../../_interfaces/GTBEstadoCivilInterface";
-export default async function GTBEstadoCivilRemoveService(data: GTBEstadoCivilInterface) {
+async function executeGTBEstadoCivilRemoveService(data: GTBEstadoCivilInterface) {
const response = await GTBEstadoCivilSaveData(data);
return response;
-}
\ No newline at end of file
+}
+
+export const GTBEstadoCivilRemoveService = withClientErrorHandler(executeGTBEstadoCivilRemoveService)
\ No newline at end of file
diff --git a/src/app/(protected)/(cadastros)/cadastros/_services/g_tb_estadocivil/GTBEstadoCivilSaveService.ts b/src/app/(protected)/(cadastros)/cadastros/_services/g_tb_estadocivil/GTBEstadoCivilSaveService.ts
index 0567d52..3b479a7 100644
--- a/src/app/(protected)/(cadastros)/cadastros/_services/g_tb_estadocivil/GTBEstadoCivilSaveService.ts
+++ b/src/app/(protected)/(cadastros)/cadastros/_services/g_tb_estadocivil/GTBEstadoCivilSaveService.ts
@@ -1,12 +1,13 @@
+import { withClientErrorHandler } from "@/actions/withClientErrorHandler/withClientErrorHandler";
import GTBEstadoCivilSaveData from "../../_data/GTBEstadoCivil/GTBEstadoCivilSaveData";
import { GTBEstadoCivilInterface } from "../../_interfaces/GTBEstadoCivilInterface";
-export default async function GTBEstadoCivilSaveService(data: GTBEstadoCivilInterface) {
+async function executeGTBEstadoCivilSaveService(data: GTBEstadoCivilInterface) {
const response = await GTBEstadoCivilSaveData(data);
- console.log('GTBRegimeComunhaoSaveData', response)
-
return response;
-}
\ No newline at end of file
+}
+
+export const GTBEstadoCivilSaveService = withClientErrorHandler(executeGTBEstadoCivilSaveService)
\ No newline at end of file