37 lines
1.7 KiB
TypeScript
37 lines
1.7 KiB
TypeScript
'use client';
|
|
// Define que este módulo será executado no lado do cliente (Client Component do Next.js)
|
|
|
|
import { useState } from 'react';
|
|
// Importa o hook `useState` do React (embora não esteja sendo usado aqui, pode ser útil em versões futuras)
|
|
|
|
import { useResponse } from '@/shared/components/response/ResponseContext';
|
|
// Importa o hook de contexto responsável por exibir feedbacks globais (como toasts, alerts ou modais)
|
|
|
|
import { ClientDeleteService } from '../../services/Client/ClientDeleteService';
|
|
// Importa o serviço responsável por realizar a exclusão do cliente via API
|
|
|
|
import { ClientInterface } from '../../interfaces/Client/ClientInterface';
|
|
// Importa a tipagem do objeto `ClientInterface` para garantir segurança de tipo e padronização dos dados
|
|
|
|
// Hook personalizado responsável por encapsular a lógica de exclusão de clientes
|
|
export const useClientDeleteHook = () => {
|
|
// Obtém a função `setResponse` do contexto global, usada para exibir feedbacks ao usuário
|
|
const { setResponse } = useResponse();
|
|
|
|
// Função assíncrona que executa a exclusão de um cliente específico
|
|
const removeClient = async (client: ClientInterface) => {
|
|
try {
|
|
// Chama o serviço de exclusão, enviando o ID do cliente como parâmetro
|
|
const response = await ClientDeleteService(client.client_id);
|
|
|
|
// Define a resposta no contexto global, permitindo exibir mensagem de sucesso/erro na interface
|
|
setResponse(response);
|
|
} catch (error) {
|
|
// Captura e exibe o erro no console (embora o handler global já trate exceções)
|
|
console.error('Erro ao remover usuário:', error);
|
|
}
|
|
};
|
|
|
|
// Retorna a função principal de exclusão, permitindo que o componente que usa este hook a invoque
|
|
return { removeClient };
|
|
};
|