all repos — caroster @ 0ef5db83c821a22b6f546115c9adf20636563c79

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

frontend/hooks/useLoginForm.ts (view raw)

 1import useAuthStore from '../stores/useAuthStore';
 2import {useLoginMutation} from '../generated/graphql';
 3
 4const useLoginForm = (identifier: string, password: string) => {
 5  const setToken = useAuthStore(s => s.setToken);
 6  const setUser = useAuthStore(s => s.setUser);
 7  const [sendCreds, {loading}] = useLoginMutation();
 8
 9  const login = async () => {
10    const {data} = await sendCreds({
11      variables: {
12        identifier,
13        password,
14      },
15    });
16    const token = data?.login?.jwt;
17    if (token) {
18      setToken(token);
19      setUser(data?.login?.user);
20    } else throw new Error('no_token');
21  };
22
23  return {login, loading};
24};
25
26export default useLoginForm;