Hook CreateNewGroupMutation
O hook CreateNewGroupMutation é responsável por gerenciar a criação de novos grupos de chat. Ele utiliza a biblioteca react-query para realizar a mutação de criação de grupo, invalidando a cache de consultas relacionadas aos grupos para garantir que os dados mais recentes sejam obtidos.
Função e Utilização
createNewGroupMutation
: uma mutação que cria um novo grupo, utilizando a função apiFunction.createGroup.
Estado e Hooks Utilizados
queryClient
: instância do cliente de consulta do react-query para gerenciar a cache de consultas.useMutation
: hook do react-query para gerenciar mutações.
Funções Utilizadas
apiFunction.createGroup
: função API para criar um novo grupo.queryClient.invalidateQueries
: função para invalidar e atualizar consultas específicas na cache.
Descrição dos Parâmetros
- nome : Nome do novo grupo a ser criado.
- foto: URL : da foto do novo grupo.
- descricao : Descrição do novo grupo.
Estrutura do Código
import { apiFunction } from '@/api/api'
import { useMutation, useQueryClient } from '@tanstack/react-query'
export const CreateNewGroupMutation = () => {
const queryClient = useQueryClient()
const createNewGroupMutation = useMutation({
mutationFn: ({
nome,
foto,
descricao,
}: {
nome: string
foto: string
descricao: string
}) => {
return apiFunction.createGroup({ nome, foto, descricao })
},
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['groups'] })
},
onError: (error) => {
console.error('Algo saiu mal na requisição:', error)
},
})
return createNewGroupMutation
}
Exemplo de Uso
const remMemberMutation = RemMemberMutation()
useEffect(() => {
if (remMemberMutation.isSuccess) {
setIsModalOpen(!isModalOpen)
openNotification({
title: 'Removidos',
subtitle: 'Membros foram removidos do grupo',
})
}
}, [remMemberMutation.isSuccess])