Olá, percebi que voce nao passou evento como parametro a funcao de useDeletarEvento, e funcionou, nao entendi agora rs fiz de um jeito diferente e deu certo tbm..
hooks/useRemoverEvento.ts
import { useSetRecoilState } from "recoil"
import { listaDeEventosState } from "../atom"
import { IEvento } from "../../interfaces/IEvento"
const useRemoverEvento = () => {
const setListaState = useSetRecoilState(listaDeEventosState)
return (evento: IEvento) => {
setListaState(listaAntiga => listaAntiga.filter(evt => evt.id !== evento.id))
}
}
export default useRemoverEvento
Evento/index.tsx
import React from 'react';
import { useSetRecoilState } from 'recoil';
import { IEvento } from '../../interfaces/IEvento'
import { listaDeEventosState } from '../../states/atom';
import style from './Evento.module.scss';
import EventoCheckbox from './EventoCheckbox';
import useRemoverEvento from '../../states/hooks/useRemoverEvento';
const Evento: React.FC<{ evento: IEvento }> = ({ evento }) => {
const removerEvento = useRemoverEvento()
const excluirEvento = () => {
removerEvento(evento)
}
const estilos = [
style.Evento
]
if (evento.completo) {
estilos.push(style.completo)
}
return (
<div className={estilos.join(' ')}>
<EventoCheckbox evento={evento}/>
<div className="cards-info">
<h3 className={style.descricao}>{evento.descricao} - {evento.inicio.toLocaleDateString()}</h3>
</div>
<i className="far fa-times-circle fa-2x" onClick={excluirEvento}></i>
</div>
)
}
export default Evento
agora se vai dar problema futuro nao sei, mas se a funcionalidade era somente deletar o item ali da parte de filtrar e do calendario deu certo rs