fix EventContext + convert EventProvider to TS
This commit is contained in:
@@ -18,6 +18,7 @@ export type EventContextType = {
|
||||
events: EventGroup[];
|
||||
updateEvent: () => void;
|
||||
addEvent: (name: string, description: string, start: string, end: string) => Promise<void>;
|
||||
removeEvent:(eventId: number) => void;
|
||||
};
|
||||
|
||||
export const EventContext = createContext<EventContextType | null>(null);
|
||||
@@ -1,33 +0,0 @@
|
||||
import {useState} from 'react';
|
||||
import {EventContext} from "./EventContext";
|
||||
import getAllEvents from "../../utils/events/getAllEvents.js";
|
||||
import createEvent from "../../utils/events/createEvent.js";
|
||||
import deleteEvent from "../../utils/events/deleteEvent.js";
|
||||
|
||||
|
||||
export function EventProvider({ children }) {
|
||||
|
||||
const [events, setEvents] = useState([]);
|
||||
|
||||
const updateEvent = async () => {
|
||||
const result = await getAllEvents();
|
||||
setEvents(result.data.data);
|
||||
}
|
||||
|
||||
const addEvent = async (name, description, start, end) => {
|
||||
await createEvent(name, description, start, end);
|
||||
await updateEvent();
|
||||
}
|
||||
|
||||
const removeEvent = async (eventId) => {
|
||||
const result = await deleteEvent(eventId);
|
||||
await updateEvent();
|
||||
return result;
|
||||
}
|
||||
|
||||
return (
|
||||
<EventContext.Provider value={{ events, updateEvent, addEvent, removeEvent }}>
|
||||
{children}
|
||||
</EventContext.Provider>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
/*import {useState} from 'react';
|
||||
import {EventContext} from "./EventContext";
|
||||
import getAllEvents from "../../utils/events/getAllEvents.js";
|
||||
import createEvent from "../../utils/events/createEvent.js";
|
||||
import deleteEvent from "../../utils/events/deleteEvent.js";
|
||||
|
||||
|
||||
export function EventProvider({ children }) {
|
||||
|
||||
const [events, setEvents] = useState([]);
|
||||
|
||||
const updateEvent = async () => {
|
||||
const result = await getAllEvents();
|
||||
setEvents(result.data.data);
|
||||
}
|
||||
|
||||
const addEvent = async (name, description, start, end) => {
|
||||
await createEvent(name, description, start, end);
|
||||
await updateEvent();
|
||||
}
|
||||
|
||||
const removeEvent = async (eventId) => {
|
||||
const result = await deleteEvent(eventId);
|
||||
await updateEvent();
|
||||
return result;
|
||||
}
|
||||
|
||||
return (
|
||||
<EventContext.Provider value={{ events, updateEvent, addEvent, removeEvent }}>
|
||||
{children}
|
||||
</EventContext.Provider>
|
||||
);
|
||||
}*/
|
||||
|
||||
import { useState, ReactNode } from 'react';
|
||||
import { EventContext, EventGroup, EventContextType } from "./EventContext";
|
||||
import getAllEvents from "../../utils/events/getAllEvents";
|
||||
import createEvent from "../../utils/events/createEvent";
|
||||
import deleteEvent from "../../utils/events/deleteEvent";
|
||||
|
||||
interface EventProviderProps {
|
||||
children: ReactNode;
|
||||
}
|
||||
|
||||
export function EventProvider({ children }: EventProviderProps) {
|
||||
const [events, setEvents] = useState<EventGroup[]>([]);
|
||||
|
||||
const updateEvent = async () => {
|
||||
const result = await getAllEvents();
|
||||
setEvents(result.data.data);
|
||||
};
|
||||
|
||||
const addEvent = async (name: string, description: string, start: string, end: string) => {
|
||||
await createEvent(name, description, start, end);
|
||||
await updateEvent();
|
||||
};
|
||||
|
||||
const removeEvent = async (eventId: number) => {
|
||||
await deleteEvent(eventId);
|
||||
await updateEvent();
|
||||
};
|
||||
|
||||
const contextValue: EventContextType = {
|
||||
events,
|
||||
updateEvent,
|
||||
addEvent,
|
||||
removeEvent,
|
||||
};
|
||||
|
||||
return (
|
||||
<EventContext.Provider value={contextValue}>
|
||||
{children}
|
||||
</EventContext.Provider>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user