diff options
| author | Adam Soltys <[email protected]> | 2022-11-02 19:47:29 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2022-11-02 19:48:18 -0700 |
| commit | f0d88333750a2865d3016e92620a87269160effa (patch) | |
| tree | 1cc276efeb5287e1fc176ec60d46aed091ab08ca /src/routes/(app)/register | |
| parent | b66477f0912349ef91adaff8c57ac787b5a56447 (diff) | |
| download | coinos-ui-f0d88333750a2865d3016e92620a87269160effa.tar.gz coinos-ui-f0d88333750a2865d3016e92620a87269160effa.zip | |
move to app layout
Diffstat (limited to 'src/routes/(app)/register')
| -rw-r--r-- | src/routes/(app)/register/+page.server.js | 28 | ||||
| -rw-r--r-- | src/routes/(app)/register/+page.svelte | 15 |
2 files changed, 43 insertions, 0 deletions
diff --git a/src/routes/(app)/register/+page.server.js b/src/routes/(app)/register/+page.server.js new file mode 100644 index 00000000..c5751d4c --- /dev/null +++ b/src/routes/(app)/register/+page.server.js @@ -0,0 +1,28 @@ +import { invalid, redirect } from '@sveltejs/kit'; +import { post, login } from '$lib/utils'; + +export const actions = { + default: async ({ cookies, request }) => { + let form = Object.fromEntries(await request.formData()); + let { username, password, loginRedirect } = 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) { + error ||= e.message; + } + + if (error) return invalid(400, { error }); + throw redirect(307, loginRedirect || `/${user.username}/dashboard`); + } +}; diff --git a/src/routes/(app)/register/+page.svelte b/src/routes/(app)/register/+page.svelte new file mode 100644 index 00000000..fd9e4417 --- /dev/null +++ b/src/routes/(app)/register/+page.svelte @@ -0,0 +1,15 @@ +<script> + import { afterNavigate, invalidateAll } from '$app/navigation'; + import { RegisterOrLogin } from '$comp'; + export let form; + + afterNavigate(async () => { + try { + await invalidateAll(); + } catch (e) { + console.log(e); + } + }); +</script> + +<RegisterOrLogin pageID="register" bind:form /> |
