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