Eu gostaria de saber o que é melhor para o projeto, criar uma pasta que abriga, por exemplo, todos os arquivos de hooks (ou arquivos de interfaces, funções, etc) ou criar um arquivo único para abrigar todos os hooks?
ou
hooks.ts:
import { useSetRecoilState } from "recoil";
import { IEvento } from "../interfaces/IEvento";
import { estadoListaDeEventos } from "../state/atom";
import { obterId } from "../util";
export const useAtualizarEvento = () => {
const setListaDeEventos = useSetRecoilState<IEvento[]>(estadoListaDeEventos)
return (evento: IEvento) => {
return setListaDeEventos(listaAntiga => {
const indice = listaAntiga.findIndex(evt => evt.id === evento.id)
return [...listaAntiga.slice(0, indice), evento, ...listaAntiga.slice(indice + 1)]
})
}
}
export const useAdicionarEventos = () => {
const setListaDeEventos = useSetRecoilState<IEvento[]>(estadoListaDeEventos)
return (evento: IEvento) => {
const hoje = new Date()
if (evento.inicio < hoje) {
throw new Error('Eventos não podem ser cadastrados com data menor do que a atual')
}
evento.id = obterId()
return setListaDeEventos(listaAntiga => [...listaAntiga, evento])
}
}
useAtualizarEvento.ts:
import { useSetRecoilState } from "recoil";
import { IEvento } from "../interfaces/IEvento";
import { estadoListaDeEventos } from "../state/atom";
export const useAtualizarEvento = () => {
const setListaDeEventos = useSetRecoilState<IEvento[]>(estadoListaDeEventos)
return (evento: IEvento) => {
return setListaDeEventos(listaAntiga => {
const indice = listaAntiga.findIndex(evt => evt.id === evento.id)
return [...listaAntiga.slice(0, indice), evento, ...listaAntiga.slice(indice + 1)]
})
}
}
useAdicionarEvento.ts:
import { useSetRecoilState } from "recoil";
import { IEvento } from "../interfaces/IEvento";
import { estadoListaDeEventos } from "../state/atom";
import { obterId } from "../util";
export const useAdicionarEventos = () => {
const setListaDeEventos = useSetRecoilState<IEvento[]>(estadoListaDeEventos)
return (evento: IEvento) => {
const hoje = new Date()
if (evento.inicio < hoje) {
throw new Error('Eventos não podem ser cadastrados com data menor do que a atual')
}
evento.id = obterId()
return setListaDeEventos(listaAntiga => [...listaAntiga, evento])
}
}