all repos — caroster @ 5edb8b7bb7b7df7b1a86170523ee4ccdbdad8e52

[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    if (data?.login?.jwt) {
17      setToken(data.login.jwt);
18      setUser(data.login.user);
19    } else throw new Error('no_token');
20  };
21
22  return {login, loading};
23};
24
25export default useLoginForm;