all repos — caroster @ d5c9ccd7f3b86f947a0809bf7894d1d72392c5b2

[Octree] Group carpool to your event https://caroster.io

frontend/containers/NewTravelDialog/useActions.ts (view raw)

 1import moment from 'moment';
 2import {useTranslation} from 'react-i18next';
 3import useToastsStore from '../../stores/useToastStore';
 4import useAddToEvents from '../../hooks/useAddToEvents';
 5import {
 6  Event,
 7  EventByUuidDocument,
 8  useCreateTravelMutation,
 9  TravelInput,
10  FindUserVehiclesDocument,
11} from '../../generated/graphql';
12
13interface Props {
14  event: Event;
15}
16
17const useActions = (props: Props) => {
18  const {event} = props;
19  const {t} = useTranslation();
20  const addToast = useToastsStore(s => s.addToast);
21  const {addToEvent} = useAddToEvents();
22  const [createTravelMutation] = useCreateTravelMutation();
23
24  const createTravel = async (travelInput: TravelInput) => {
25    try {
26      await createTravelMutation({
27        variables: {travel: travelInput},
28        refetchQueries: [
29          {
30            query: EventByUuidDocument,
31            variables: {
32              uuid: event.uuid,
33            },
34          },
35          {
36            query: FindUserVehiclesDocument,
37          },
38        ],
39      });
40      addToEvent(event.id);
41      addToast(t('travel.creation.created'));
42    } catch (error) {
43      console.error(error);
44      addToast(t('travel.errors.cant_create'));
45    }
46  };
47
48  return {createTravel};
49};
50
51export default useActions;