MCPcopy Create free account
hub / github.com/Linen-dev/linen.dev / onSignInSubmit

Function onSignInSubmit

apps/web/ui/Auth/common.ts:62–132  ·  view source on GitHub ↗
({
  setError,
  setLoading,
  callbackUrl,
  onSignIn,
  state,
  sso,
}: {
  setError: (arg: string) => void;
  setLoading: (arg: boolean) => void;
  callbackUrl?: string;
  onSignIn?: () => void;
  state?: string;
  sso?: string;
})

Source from the content-addressed store, hash-verified

60}
61
62export function onSignInSubmit({
63 setError,
64 setLoading,
65 callbackUrl,
66 onSignIn,
67 state,
68 sso,
69}: {
70 setError: (arg: string) => void;
71 setLoading: (arg: boolean) => void;
72 callbackUrl?: string;
73 onSignIn?: () => void;
74 state?: string;
75 sso?: string;
76}) {
77 return async (event: any, mode: SignInMode) => {
78 event.preventDefault();
79 const form = event.target;
80 const email = form.email.value;
81
82 if (!email) {
83 setError('Email is required');
84 return;
85 }
86
87 try {
88 setLoading(true);
89 const csrfToken = form.csrfToken.value || (await getCsrfToken());
90
91 if (mode === 'creds') {
92 const password = form.password.value;
93 if (!password) {
94 setError('Password is required');
95 return;
96 }
97
98 const signInResponse = await signInWithCreds(
99 email,
100 password,
101 csrfToken,
102 sso
103 );
104 if (onSignIn) {
105 onSignIn();
106 } else {
107 if (sso) {
108 callbackUrl += `?state=${signInResponse.state}`;
109 }
110 window.location.href = callbackUrl || '/';
111 }
112 }
113 if (mode === 'magic') {
114 await signInWithMagicLink(email, csrfToken, {
115 callbackUrl,
116 state,
117 sso,
118 });
119 window.location.href = '/verify-request';

Callers 1

SignInFunction · 0.90

Calls 3

getCsrfTokenFunction · 0.90
signInWithCredsFunction · 0.85
signInWithMagicLinkFunction · 0.85

Tested by

no test coverage detected