From a038ce9711f8ae5945eba073c82aa2aeb2bcf5c3 Mon Sep 17 00:00:00 2001
From: secondl1ght <85003930+secondl1ght@users.noreply.github.com>
Date: Fri, 29 Jul 2022 21:29:18 -0600
Subject: start hooking up invoice screen
---
package.json | 1 +
pnpm-lock.yaml | 18 ++-
src/components/RegisterOrLogin.svelte | 7 +-
src/hooks/index.js | 18 +--
src/lib/store.js | 4 +-
src/routes/__layout.svelte | 8 +-
src/routes/invoice.svelte | 253 ++++++++++++++++++++++++++++++++--
src/routes/receive.svelte | 22 +--
static/icons/arrow-left.svg | 3 +
static/images/invoice.svg | 4 +
tailwind.config.cjs | 3 +-
11 files changed, 298 insertions(+), 43 deletions(-)
create mode 100644 static/icons/arrow-left.svg
create mode 100644 static/images/invoice.svg
diff --git a/package.json b/package.json
index 23bb6cb6..d4312d1c 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
"postcss": "^8.4.14",
"prettier": "^2.7.1",
"prettier-plugin-svelte": "^2.7.0",
+ "qr-code-styling": "1.6.0-rc.1",
"svelte": "^3.49.0",
"svelte-preprocess": "^4.10.7",
"tailwindcss": "^3.1.6",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 9c34207f..69b6d84e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,6 +8,7 @@ specifiers:
postcss: ^8.4.14
prettier: ^2.7.1
prettier-plugin-svelte: ^2.7.0
+ qr-code-styling: 1.6.0-rc.1
svelte: ^3.49.0
svelte-preprocess: ^4.10.7
tailwindcss: ^3.1.6
@@ -15,12 +16,13 @@ specifiers:
devDependencies:
'@sveltejs/adapter-auto': 1.0.0-next.64
- '@sveltejs/kit': 1.0.0-next.396_svelte@3.49.0+vite@3.0.3
+ '@sveltejs/kit': 1.0.0-next.398_svelte@3.49.0+vite@3.0.3
autoprefixer: 10.4.7_postcss@8.4.14
cookie: 0.5.0
postcss: 8.4.14
prettier: 2.7.1
prettier-plugin-svelte: 2.7.0_o3ioganyptcsrh6x4hnxvjkpqi
+ qr-code-styling: 1.6.0-rc.1
svelte: 3.49.0
svelte-preprocess: 4.10.7_nxvsp6sjiltnatqa6jdm4mr6zu
tailwindcss: 3.1.6
@@ -121,8 +123,8 @@ packages:
- supports-color
dev: true
- /@sveltejs/kit/1.0.0-next.396_svelte@3.49.0+vite@3.0.3:
- resolution: {integrity: sha512-bKFpuzp9QxPkOIOEIeNeedvxEMORNqBPxUmoJXDP/Se7MrSfcxYiamjBcKrG+bgGNWmV39nD3EvUox+CXno/Ig==}
+ /@sveltejs/kit/1.0.0-next.398_svelte@3.49.0+vite@3.0.3:
+ resolution: {integrity: sha512-ONjHoRurnFUe+0lv0P9rZQpDuuJy4Cr/lDneoG+lkOR5/7gcvd03TlVdxLz1ZQAWPbgovm/PpshOvIUeC4n62A==}
engines: {node: '>=16.9'}
hasBin: true
peerDependencies:
@@ -1130,6 +1132,16 @@ packages:
hasBin: true
dev: true
+ /qr-code-styling/1.6.0-rc.1:
+ resolution: {integrity: sha512-ModRIiW6oUnsP18QzrRYZSc/CFKFKIdj7pUs57AEVH20ajlglRpN3HukjHk0UbNMTlKGuaYl7Gt6/O5Gg2NU2Q==}
+ dependencies:
+ qrcode-generator: 1.4.4
+ dev: true
+
+ /qrcode-generator/1.4.4:
+ resolution: {integrity: sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==}
+ dev: true
+
/queue-microtask/1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
dev: true
diff --git a/src/components/RegisterOrLogin.svelte b/src/components/RegisterOrLogin.svelte
index 2334741d..15be60cf 100644
--- a/src/components/RegisterOrLogin.svelte
+++ b/src/components/RegisterOrLogin.svelte
@@ -7,7 +7,8 @@
export let page;
- let username = "bob", password = "pw";
+ let username = 'bob',
+ password = 'pw';
let revealPassword = false;
@@ -20,7 +21,7 @@
let r = await post(url, { username, password });
if (!r.token) r = await post('/login', { username, password });
$token = r.token;
- console.log("new token", r.token)
+ console.log('new token', r.token);
auth();
goto('/receive');
};
@@ -43,7 +44,7 @@
required
class="bg-primary p-4 rounded-2xl w-full"
bind:value={username}
- autofocus
+ autofocus
/>
diff --git a/src/hooks/index.js b/src/hooks/index.js
index 21e56052..6a9c8ec5 100644
--- a/src/hooks/index.js
+++ b/src/hooks/index.js
@@ -1,16 +1,16 @@
-import cookie from "cookie";
+import cookie from 'cookie';
export async function handle({ event, resolve }) {
- let { request: { headers },
- } = event;
+ let {
+ request: { headers }
+ } = event;
- const cookies = cookie.parse(headers.get("cookie") || "");
- let { token } = cookies;
- event.locals = { token };
+ const cookies = cookie.parse(headers.get('cookie') || '');
+ let { token } = cookies;
+ event.locals = { token };
- return resolve(event);
+ return resolve(event);
}
-
export const getSession = ({ locals: { token } }) => {
- return { token };
+ return { token };
};
diff --git a/src/lib/store.js b/src/lib/store.js
index 62232f9d..6f4a9515 100644
--- a/src/lib/store.js
+++ b/src/lib/store.js
@@ -8,8 +8,7 @@ const persisted = (k, i) => {
: i
);
- s.subscribe((v) => browser && sessionStorage.setItem(k, JSON.stringify(v))
- );
+ s.subscribe((v) => browser && sessionStorage.setItem(k, JSON.stringify(v)));
return s;
};
@@ -17,4 +16,5 @@ const persisted = (k, i) => {
export const rate = writable();
export const user = writable();
export const invoiceAmount = writable();
+export const invoiceAmountFiat = writable();
export const token = persisted('token');
diff --git a/src/routes/__layout.svelte b/src/routes/__layout.svelte
index 1af9679a..6562db18 100644
--- a/src/routes/__layout.svelte
+++ b/src/routes/__layout.svelte
@@ -2,11 +2,11 @@
import '../app.css';
import { onMount } from 'svelte';
import { connect } from '$lib/socket';
- import { token } from "$lib/store";
- import { session } from "$app/stores";
- import { browser } from "$app/env";
+ import { token } from '$lib/store';
+ import { session } from '$app/stores';
+ import { browser } from '$app/env';
- browser && ($token ||= $session.token);
+ browser && ($token ||= $session.token);
onMount(connect);
diff --git a/src/routes/invoice.svelte b/src/routes/invoice.svelte
index 567aefbb..6dce84fe 100644
--- a/src/routes/invoice.svelte
+++ b/src/routes/invoice.svelte
@@ -1,15 +1,248 @@
-{#if $user}
- {text}
- {$invoiceAmount}
- {$rate}
- {$user.username}
- {#each $user.payments as p}
- {p.amount}
- {/each}
-{/if}
+
+
+