diff options
| author | Adam Soltys <[email protected]> | 2025-07-13 23:05:57 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2025-07-13 23:05:57 -0700 |
| commit | c2d798b8825cc3c5011069f4bcdf2c7dd5234292 (patch) | |
| tree | 4f35b9e0740e74846eac04f0e494f88ac4e1c2c3 /src/routes/(app) | |
| parent | c95e08ff4e582c38489e46414d0e36bbc21e7ea1 (diff) | |
| download | coinos-ui-c2d798b8825cc3c5011069f4bcdf2c7dd5234292.tar.gz coinos-ui-c2d798b8825cc3c5011069f4bcdf2c7dd5234292.zip | |
tap qr
Diffstat (limited to 'src/routes/(app)')
| -rw-r--r-- | src/routes/(app)/[username]/accepted/[text]/+page.svelte | 15 | ||||
| -rw-r--r-- | src/routes/(app)/qr/[text]/[icon]/+server.ts | 33 | ||||
| -rw-r--r-- | src/routes/(app)/qr/[text]/raw/+server.ts | 1 |
3 files changed, 42 insertions, 7 deletions
diff --git a/src/routes/(app)/[username]/accepted/[text]/+page.svelte b/src/routes/(app)/[username]/accepted/[text]/+page.svelte index d96e48e2..1984cf81 100644 --- a/src/routes/(app)/[username]/accepted/[text]/+page.svelte +++ b/src/routes/(app)/[username]/accepted/[text]/+page.svelte @@ -9,15 +9,16 @@ </script> <div class="px-2"> - <div class="border-8 border-black p-8 max-w-[710px] mx-auto mt-20 space-y-5"> + <div class="border-8 border-black p-8 max-w-[580px] mx-auto mt-20 space-y-2 rounded-3xl"> <div class="flex gap-2 mx-auto justify-center"> - <img src="/images/bitcoin.png" class="w-16 h-16 my-auto" /> - <h3 class="text-5xl font-bold text-center my-auto"> - Bitcoin Accepted Here - </h3> + <!-- <img src="/images/bitcoin.png" class="w-16 h-16 my-auto" /> --> + <img src="/images/bitcoin-logo.png" class="my-auto w-[400px]" /> + <!-- <h3 class="text-5xl font-bold text-center my-auto"> --> + <!-- bitcoin --> + <!-- </h3> --> </div> - <Qr {text} /> - <div class="text-center text-4xl font-bold"> + <Qr {text} icon="nfc.png" /> + <div class="text-center text-4xl font-bold break-all"> coinos.io/{username.toLowerCase()} </div> {#if nfc} diff --git a/src/routes/(app)/qr/[text]/[icon]/+server.ts b/src/routes/(app)/qr/[text]/[icon]/+server.ts new file mode 100644 index 00000000..c2825877 --- /dev/null +++ b/src/routes/(app)/qr/[text]/[icon]/+server.ts @@ -0,0 +1,33 @@ +import { createCanvas, loadImage } from "canvas"; +import QRCode from "qrcode"; + +export async function GET({ params }) { + const { icon, text } = params; + const size = 600; + + const canvas = createCanvas(size, size); + await QRCode.toCanvas(canvas, text, { + errorCorrectionLevel: "H", + width: size, + }); + + const ctx = canvas.getContext("2d"); + + const logo = await loadImage(`static/images/${icon}`); + const logoSize = size * 0.3; + ctx.drawImage( + logo, + (size - logoSize) / 2, + (size - logoSize) / 2, + logoSize, + logoSize, + ); + + const buffer = canvas.toBuffer("image/png"); + return new Response(buffer, { + headers: { + "Content-Type": "image/png", + "Cache-Control": "public, max-age=31536000, immutable", + }, + }); +} diff --git a/src/routes/(app)/qr/[text]/raw/+server.ts b/src/routes/(app)/qr/[text]/raw/+server.ts index a24d3a3c..a2626c4d 100644 --- a/src/routes/(app)/qr/[text]/raw/+server.ts +++ b/src/routes/(app)/qr/[text]/raw/+server.ts @@ -14,3 +14,4 @@ export async function GET({ params }) { }, }); } + |
