-const Filter = ({ filter, setFilter }) => {
- const [events, setEvents] = React.useState([]);
-
- React.useEffect(() => {
- const controller = new AbortController();
- axios.get(`/api/events`, {
- signal: controller.signal,
- params: {
- after: moment().startOf('day').subtract(7, 'days').toISOString(),
- before: moment().startOf('day').add(8, 'days').toISOString(),
- },
- }).then(response => {
- const newEvents = response.data || [];
- setEvents(newEvents);
- setFilter(filter => {
- const eventFilter = filter.event || [];
- return {
- ...filter,
- event: eventFilter.filter(newEvents.find(id => newEvents.includes(id))),
- };
- });
- }).catch(e => {
- if (!axios.isCancel(e)) {
- console.error(e);
- }
- });
- return () => {
- controller.abort();
- };
- }, [setEvents, setFilter]);