diff --git a/apps/web/src/components/dialogs/logindialog.js b/apps/web/src/components/dialogs/logindialog.js index b7803f3d9..551e83617 100644 --- a/apps/web/src/components/dialogs/logindialog.js +++ b/apps/web/src/components/dialogs/logindialog.js @@ -10,24 +10,19 @@ const requiredValues = ["username", "password"]; function LoginDialog(props) { const { onClose } = props; const [error, setError] = useState(); + const [credential, setCredential] = useState(); const isLoggingIn = useStore((store) => store.isLoggingIn); const login = useStore((store) => store.login); + useEffect(() => { if (!window.PasswordCredential) return; (async function () { - console.log("Trying to automatically login..."); const credential = await navigator.credentials.get({ mediation: "optional", password: true, }); if (credential) { - console.log("Got credentials..."); - await login({ - username: credential.id, - password: credential.password, - }); - } else { - console.log("Did not get credentials...", credential); + setCredential(credential); } })(); }, [login]); @@ -64,57 +59,85 @@ function LoginDialog(props) { disabled: isLoggingIn, }} > - { - e.preventDefault(); - const data = requiredValues.reduce((prev, curr) => { - prev[curr] = e.target[curr].value; - return prev; - }, {}); + + { + e.preventDefault(); + const data = requiredValues.reduce((prev, curr) => { + prev[curr] = e.target[curr].value; + return prev; + }, {}); - setError(); + setError(); - login(data) - .then(async () => { - // Instantiate PasswordCredential with the form - if (window.PasswordCredential) { - var c = new window.PasswordCredential({ - id: data.username, - name: data.username, - type: "password", - password: data.password, - }); - await navigator.credentials.store(c); - console.log("Credentails stored..."); - onClose(); + login(data) + .then(async () => { + // Instantiate PasswordCredential with the form + if (window.PasswordCredential) { + var c = new window.PasswordCredential({ + id: data.email, + name: data.username, + type: "password", + password: data.password, + }); + await navigator.credentials.store(c); + onClose(); + } else { + onClose(); + } + }) + .catch((e) => setError(e.message)); + }} + flexDirection="column" + > + + + {error && {error}} + + {credential && ( + + )} );