frontend/containers/Alerts/useCreateTripAlert.tsx (view raw)
1import {useCallback} from 'react';
2import {
3 SetTripAlertMutationVariables,
4 useSetTripAlertMutation,
5} from '../../generated/graphql';
6import {useTranslation} from 'next-i18next';
7import useToastStore from '../../stores/useToastStore';
8
9const useCreateTripAlert = () => {
10 const {t} = useTranslation();
11 const addToast = useToastStore(s => s.addToast);
12 const [setTripAlertMutation] = useSetTripAlertMutation();
13
14 const handleCreateTripAlert = useCallback(
15 async (variables: SetTripAlertMutationVariables) => {
16 try {
17 await setTripAlertMutation({
18 variables,
19 });
20 addToast(t('alert.create'));
21 } catch (error) {
22 addToast(t('alert.errors.cant_create'));
23 console.error(error);
24 }
25 },
26 [addToast, setTripAlertMutation]
27 );
28
29 return handleCreateTripAlert;
30};
31
32export default useCreateTripAlert;