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 | 23ffc5a6359dbc84a1de1da632412edeb9989b5f (patch) | |
| tree | 1cc276efeb5287e1fc176ec60d46aed091ab08ca /src/routes/(app)/register | |
| parent | c12857a38eed1227ed51dc6e0af7242e66dd7561 (diff) | |
| download | coinos-ui-23ffc5a6359dbc84a1de1da632412edeb9989b5f.tar.gz coinos-ui-23ffc5a6359dbc84a1de1da632412edeb9989b5f.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 /> |
