From ccc13974d22a47995b5f9f674891a39d54aa0620 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 9 Nov 2022 09:53:33 -0800 Subject: refactor settings --- src/lib/socket.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'src/lib') diff --git a/src/lib/socket.js b/src/lib/socket.js index 6678b979..9b4a8dce 100644 --- a/src/lib/socket.js +++ b/src/lib/socket.js @@ -36,11 +36,8 @@ export const messages = (data) => ({ async payment() { let { amount, invoice } = data; - if (invoice) { - invoices.set({ ...get(invoices), [invoice.uuid]: invoice }); - } - - if (get(user).account_id !== data.account_id) return; + if (invoice) invalidate("app:invoice"); + if (get(user)?.account_id !== data.account_id) return; let payments = get(txns); let i = payments.findIndex((p) => p.id === data.id); -- cgit v1.2.3 From 305f26ccefffe52b3fb65995e8caf437f1a92057 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 9 Nov 2022 10:53:41 -0800 Subject: settings fixes --- src/lib/socket.js | 2 +- src/lib/utils.js | 5 +- .../[username]/settings/[...tab]/+page.server.js | 2 +- .../[username]/settings/[...tab]/+page.svelte | 172 ++++++++++----------- .../[username]/settings/[...tab]/_account.svelte | 2 +- .../[username]/settings/[...tab]/_security.svelte | 11 +- src/routes/(app)/disable2fa/+server.js | 13 +- src/routes/(app)/otpsecret/+server.js | 11 +- 8 files changed, 118 insertions(+), 100 deletions(-) (limited to 'src/lib') diff --git a/src/lib/socket.js b/src/lib/socket.js index 9b4a8dce..8d84073c 100644 --- a/src/lib/socket.js +++ b/src/lib/socket.js @@ -36,7 +36,7 @@ export const messages = (data) => ({ async payment() { let { amount, invoice } = data; - if (invoice) invalidate("app:invoice"); + if (invoice) invalidate('app:invoice'); if (get(user)?.account_id !== data.account_id) return; let payments = get(txns); diff --git a/src/lib/utils.js b/src/lib/utils.js index 7e0b8e4f..c3960487 100644 --- a/src/lib/utils.js +++ b/src/lib/utils.js @@ -37,7 +37,10 @@ export const get = (url, headers = {}) => export const post = (url, body, headers) => { headers = { ...headers, 'content-type': 'application/json', accept: 'application/json' }; return fetch(base + url, { method: 'POST', body: JSON.stringify(body), headers }) - .then((r) => r.text()) + .then(async (r) => { + if (r.ok) return r.text(); + throw new Error(await r.text()); + }) .then((body) => { try { body = JSON.parse(body); diff --git a/src/routes/(app)/[username]/settings/[...tab]/+page.server.js b/src/routes/(app)/[username]/settings/[...tab]/+page.server.js index a6fbd9bf..dcaa26b4 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/+page.server.js +++ b/src/routes/(app)/[username]/settings/[...tab]/+page.server.js @@ -16,7 +16,7 @@ export const actions = { }; try { - await post(`/user`, user, auth(cookies)); + ({ user } = await post(`/user`, user, auth(cookies))); } catch (e) { return invalid(400, { message: e.message }); } diff --git a/src/routes/(app)/[username]/settings/[...tab]/+page.svelte b/src/routes/(app)/[username]/settings/[...tab]/+page.svelte index 20e1fd8f..d546e817 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/+page.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/+page.svelte @@ -1,109 +1,109 @@ {#if loaded && user.haspin && $pin?.length !== 6} - + {/if}
- - -
-

- {$t('user.settings.header')} -

- -
- {#each tabs as { name, key }} - - - - {/each} -
- - -
- -
- -
+ + +
+

+ {$t('user.settings.header')} +

+ +
+ {#each tabs as { name, key }} + + + + {/each} +
+ + +
+ +
+ +
- diff --git a/src/routes/(app)/[username]/settings/[...tab]/_account.svelte b/src/routes/(app)/[username]/settings/[...tab]/_account.svelte index 5d5f731f..e49205ca 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/_account.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/_account.svelte @@ -5,7 +5,7 @@ import { t } from '$lib/translations'; import { upload } from '$lib/upload'; - export let user; + export let user; let selectedTheme = 1; let revealPassword = false; diff --git a/src/routes/(app)/[username]/settings/[...tab]/_security.svelte b/src/routes/(app)/[username]/settings/[...tab]/_security.svelte index 0f45966d..0ffb7834 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/_security.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/_security.svelte @@ -8,7 +8,7 @@ import { invalidate } from '$app/navigation'; import { page } from '$app/stores'; - export let user, submit; + export let user, submit; let settingPin, setting2fa, disabling2fa; let token = ''; @@ -27,7 +27,11 @@ let otp; $: pinChange($current); let pinChange = async (pin) => { - // otp = await post('/otpsecret', { pin }); + try { + otp = await post('/otpsecret', { pin }); + } catch (e) { + console.log(e); + } }; let locked; @@ -78,7 +82,7 @@ pin = null; submit.click(); } catch (e) { - console.log(e) + console.log(e); failure('Failed to disable pin'); } } else { @@ -113,6 +117,7 @@ toggleDisabling(); } } catch (e) { + console.log(e); failure('Failed to disable 2FA, try again'); } }; diff --git a/src/routes/(app)/disable2fa/+server.js b/src/routes/(app)/disable2fa/+server.js index 237da445..13fcb2b9 100644 --- a/src/routes/(app)/disable2fa/+server.js +++ b/src/routes/(app)/disable2fa/+server.js @@ -1,8 +1,13 @@ +import { error } from '@sveltejs/kit'; import { auth, post } from '$lib/utils'; -export async function PUT({ cookies, request }) { - let body = await request.json(); - let res = await post('/disable2fa', body, auth(cookies)); +export async function POST({ cookies, request }) { + try { + let body = await request.json(); + let res = await post('/disable2fa', body, auth(cookies)); - return new Response(JSON.stringify(res)); + return new Response(JSON.stringify(res)); + } catch (e) { + throw error(500, 'Problem disabling 2fa'); + } } diff --git a/src/routes/(app)/otpsecret/+server.js b/src/routes/(app)/otpsecret/+server.js index 8dec7778..cdd050c8 100644 --- a/src/routes/(app)/otpsecret/+server.js +++ b/src/routes/(app)/otpsecret/+server.js @@ -1,8 +1,13 @@ import { auth, post } from '$lib/utils'; import Qr from 'qrcode-base64'; +import { error } from '@sveltejs/kit'; export async function POST({ cookies, locals, request }) { - let { secret } = await post('/otpsecret', await request.json(), auth(cookies)); - let uri = `otpauth://totp/coinos:${locals.user.username}?secret=${secret}&period=30&digits=6&algorithm=SHA1&issuer=coinos`; - return new Response(JSON.stringify({ secret, uri, qr: Qr.drawImg(uri, { size: 600 }) })); + try { + let { secret } = await post('/otpsecret', await request.json(), auth(cookies)); + let uri = `otpauth://totp/coinos:${locals.user.username}?secret=${secret}&period=30&digits=6&algorithm=SHA1&issuer=coinos`; + return new Response(JSON.stringify({ secret, uri, qr: Qr.drawImg(uri, { size: 600 }) })); + } catch (e) { + throw new error(500, 'Problem saving secret'); + } } -- cgit v1.2.3 From c901b229121ee74b4a1a8794ca7578d9cfea0055 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 9 Nov 2022 11:18:38 -0800 Subject: fix support form --- src/components/AppHeader.svelte | 4 +- src/components/Footer.svelte | 2 +- src/lib/utils.js | 2 +- .../(app)/[username]/support/+page.server.js | 13 ---- src/routes/(app)/[username]/support/+page.svelte | 76 -------------------- src/routes/(app)/support/+page.server.js | 16 +++++ src/routes/(app)/support/+page.svelte | 81 ++++++++++++++++++++++ 7 files changed, 101 insertions(+), 93 deletions(-) delete mode 100644 src/routes/(app)/[username]/support/+page.server.js delete mode 100644 src/routes/(app)/[username]/support/+page.svelte create mode 100644 src/routes/(app)/support/+page.server.js create mode 100644 src/routes/(app)/support/+page.svelte (limited to 'src/lib') diff --git a/src/components/AppHeader.svelte b/src/components/AppHeader.svelte index ec0f5174..728b025a 100644 --- a/src/components/AppHeader.svelte +++ b/src/components/AppHeader.svelte @@ -17,7 +17,7 @@ menuButtons = [ { key: 'nav.profile', icon: 'profile', href: `/${user.username}` }, { key: 'nav.settings', icon: 'settings', href: `/${user.username}/settings` }, - { key: 'nav.support', icon: 'support', href: `/${user.username}/support` }, + { key: 'nav.support', icon: 'support', href: `/support` }, { key: 'nav.signOut', icon: 'logout', href: `/logout` } ]; @@ -80,7 +80,7 @@ class="bg-white p-2 rounded-full w-12 h-12 drop-shadow-xl border border-black/10 {$page .url.pathname === `/${user.username}` || $page.url.pathname === `/${user.username}/settings` || - $page.url.pathname === `/${user.username}/support` + $page.url.pathname === `/support` ? 'opacity-100' : `opacity-70 hover:opacity-80 ${showMenu ? 'opacity-80' : ''}`}" on:click={() => (showMenu = !showMenu)} diff --git a/src/components/Footer.svelte b/src/components/Footer.svelte index 5e0aeb4a..0b0a2b72 100644 --- a/src/components/Footer.svelte +++ b/src/components/Footer.svelte @@ -10,7 +10,7 @@ const companyLinks = [ { url: '/news', titleID: 'news' }, - { url: 'mailto:support@coinos.io', titleID: 'support' }, + { url: '/support', titleID: 'support' }, { url: '/jobs', titleID: 'jobs' } ]; diff --git a/src/lib/utils.js b/src/lib/utils.js index c3960487..2bf6b800 100644 --- a/src/lib/utils.js +++ b/src/lib/utils.js @@ -70,7 +70,7 @@ export function reverseFormat(val, locale) { return Number.isNaN(reversedVal) ? 0 : +reversedVal; } -export let protectedRoutes = [/customers/, /dashboard/, /settings/, /transactions/, /support/]; +export let protectedRoutes = [/customers/, /dashboard/, /settings/, /transactions/]; export const success = (m) => { toast.pop(); diff --git a/src/routes/(app)/[username]/support/+page.server.js b/src/routes/(app)/[username]/support/+page.server.js deleted file mode 100644 index a335ec96..00000000 --- a/src/routes/(app)/[username]/support/+page.server.js +++ /dev/null @@ -1,13 +0,0 @@ -export const actions = { - default: async ({ cookies, request }) => { - let form = Object.fromEntries(await request.formData()); - - try { - await post('/email', form); - } catch (e) { - return invalid(400, { failed: true }); - } - - return { success: true }; - } -}; diff --git a/src/routes/(app)/[username]/support/+page.svelte b/src/routes/(app)/[username]/support/+page.svelte deleted file mode 100644 index cd1cc69f..00000000 --- a/src/routes/(app)/[username]/support/+page.svelte +++ /dev/null @@ -1,76 +0,0 @@ - - -
- {#if form?.success} -

Thank you!

-

Someone will be in touch shortly.

- - - - - {:else} -

- {$t('user.support.header')} -

-
-
- - -
- -
- - -
- -
- -