frontend/hooks/usePassengersActions.ts (view raw)
1import {
2 EditPassengerInput,
3 PassengerInput,
4 useCreatePassengerMutation,
5 useDeletePassengerMutation,
6 useUpdatePassengerMutation,
7} from '../generated/graphql';
8
9const usePassengersActions = () => {
10 const [createPassenger] = useCreatePassengerMutation();
11 const [setPassenger] = useUpdatePassengerMutation();
12 const [deletePassenger] = useDeletePassengerMutation();
13
14 const addPassenger = async (passenger: PassengerInput) =>
15 createPassenger({
16 variables: {
17 passenger,
18 },
19 refetchQueries: ['eventByUUID'],
20 });
21
22 const updatePassenger = async (
23 passengerId: string,
24 passenger: EditPassengerInput
25 ) =>
26 setPassenger({
27 variables: {id: passengerId, passengerUpdate: passenger},
28 refetchQueries: ['eventByUUID'],
29 });
30
31 const removePassenger = async (passengerId: string) => {
32 return deletePassenger({
33 variables: {
34 id: passengerId,
35 },
36 refetchQueries: ['eventByUUID'],
37 });
38 };
39
40 return {
41 addPassenger,
42 updatePassenger,
43 removePassenger,
44 };
45};
46
47export default usePassengersActions;