aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/register
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2022-11-02 19:47:29 -0700
committerAdam Soltys <[email protected]>2022-11-02 19:48:18 -0700
commitf0d88333750a2865d3016e92620a87269160effa (patch)
tree1cc276efeb5287e1fc176ec60d46aed091ab08ca /src/routes/(app)/register
parentb66477f0912349ef91adaff8c57ac787b5a56447 (diff)
downloadcoinos-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.js28
-rw-r--r--src/routes/(app)/register/+page.svelte15
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 />