diff options
Diffstat (limited to 'src/routes/register')
| -rw-r--r-- | src/routes/register/+page.server.js | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/routes/register/+page.server.js b/src/routes/register/+page.server.js index 5667914b..acb96575 100644 --- a/src/routes/register/+page.server.js +++ b/src/routes/register/+page.server.js @@ -7,14 +7,22 @@ export const actions = { let { username, password, redirect: r } = form; let user = { username, password }; + let error; try { await post('/register', { user }); + } catch (e) { + if (e.message.includes('taken')) error = e.message; + } + + try { await login(user, cookies); + error = null; } catch (e) { - return invalid(400, { error: e.message }); + error ||= e.message; } + if (error) return invalid(400, { error }); throw redirect(303, r || `/${user.username}/dashboard`); } }; |
