From ec5a14d7d61d5f1797fcfba67dd2d8ef0cca2360 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 7 Sep 2022 13:58:00 -0700 Subject: image uploads --- src/routes/[username]/settings/_account.svelte | 76 +++++++++++++++++++++----- src/routes/invoice/+server.js | 1 - src/routes/invoice/[id]/+page.server.js | 3 +- src/routes/invoice/[id]/+page.svelte | 4 +- 4 files changed, 64 insertions(+), 20 deletions(-) (limited to 'src/routes') diff --git a/src/routes/[username]/settings/_account.svelte b/src/routes/[username]/settings/_account.svelte index 7f14ff50..000ea519 100644 --- a/src/routes/[username]/settings/_account.svelte +++ b/src/routes/[username]/settings/_account.svelte @@ -9,7 +9,10 @@ let revealPassword = false; let password; let profileFile; - let selectFile = () => profileFile.click(); + let select = (type) => files[type].el.click(); + + $: profile = files.profile.src || user.profile; + $: banner = files.banner.src || user.banner; let colorThemes = [ { theme: 1, color1: 'from-[#F5F7FA]', color2: 'to-[#C3CFE2]' }, @@ -29,10 +32,18 @@ let progress = async (event) => { percent = Math.round((event.loaded / event.total) * 100); }; - let handleFile = async ({ target: { files } }) => { - let file = files[0]; - file.filename = "squirt"; - let filename = await upload(file, progress); + + let files = { profile: {}, banner: {} }; + let handleFile = async ({ target }, type) => { + let file = target.files[0]; + var reader = new FileReader(); + reader.onload = async (e) => { + files[type].src = e.target.result; + }; + reader.readAsDataURL(file); + console.log(file); + files[type].filename = file.name; + await upload(file, type, progress); }; $: $user.password = $user.confirm = password; @@ -100,19 +111,38 @@
+ {#if profile} +
+ +
+ {:else} +
+ +
+ {/if}
select('profile')} > - -
-
Select - -
gumbo.jpg
+ handleFile(e, 'profile')} + /> + {#if files.profile.filename} +
{files.profile.filename}
+ {/if}
@@ -122,12 +152,28 @@ {$t('user.settings.bannerImage')}

Recommended size: 1920x540px

-
+ {#if banner} + + {:else} +
select('banner')} + /> + {/if} select('banner')}>Select -
gumbo.jpg
+ handleFile(e, 'banner')} + /> + {#if files.banner.filename} +
{files.banner.filename}
+ {/if}
diff --git a/src/routes/invoice/+server.js b/src/routes/invoice/+server.js index a4c4f9c8..225f6bb1 100644 --- a/src/routes/invoice/+server.js +++ b/src/routes/invoice/+server.js @@ -3,7 +3,6 @@ import { auth, get, post } from '$lib/utils'; export async function POST({ request }) { let network = 'lightning'; let { amount, currency, rate, tip, text, username } = await request.json(); - ({ text } = await post('/lightning/invoice', { amount }, auth(request))); let invoice = { amount, currency, network, rate, tip, text }; let { uuid } = await post('/invoice', { invoice, user: { username } }, auth(request)); diff --git a/src/routes/invoice/[id]/+page.server.js b/src/routes/invoice/[id]/+page.server.js index 5ab0069a..e123c7d7 100644 --- a/src/routes/invoice/[id]/+page.server.js +++ b/src/routes/invoice/[id]/+page.server.js @@ -1,5 +1,4 @@ -import cookie from 'cookie'; -import { get, post } from '$lib/utils'; +import { get } from '$lib/utils'; export async function load({ params }) { let { id } = params; diff --git a/src/routes/invoice/[id]/+page.svelte b/src/routes/invoice/[id]/+page.svelte index e8d5562c..f6ecdc0e 100644 --- a/src/routes/invoice/[id]/+page.svelte +++ b/src/routes/invoice/[id]/+page.svelte @@ -69,9 +69,9 @@ let update = async () => { await tick(); - tip = (tipAmount * 100000000) / rate; + tip = Math.round((tipAmount * 100000000) / rate); let r = await post(`/invoice`, { - amount: amount + tip, + amount: parseInt(amount + tip), rate, tip, text, -- cgit v1.2.3