diff --git a/frontend/package-lock.json b/frontend/package-lock.json index cab0cf4..c56004f 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -18,6 +18,7 @@ "mode-watcher": "^0.0.7", "nanoid": "^5.0.3", "postgres": "^3.4.3", + "qrious": "^4.0.2", "sveltekit-superforms": "^1.10.1", "tailwind-merge": "^2.0.0", "tailwind-variants": "^0.1.18", @@ -3190,6 +3191,11 @@ "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", "dev": true }, + "node_modules/qrious": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/qrious/-/qrious-4.0.2.tgz", + "integrity": "sha512-xWPJIrK1zu5Ypn898fBp8RHkT/9ibquV2Kv24S/JY9VYEhMBMKur1gHVsOiNUh7PHP9uCgejjpZUHUIXXKoU/g==" + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", diff --git a/frontend/package.json b/frontend/package.json index 2ecf85e..fa11a71 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -42,6 +42,7 @@ "mode-watcher": "^0.0.7", "nanoid": "^5.0.3", "postgres": "^3.4.3", + "qrious": "^4.0.2", "sveltekit-superforms": "^1.10.1", "tailwind-merge": "^2.0.0", "tailwind-variants": "^0.1.18", diff --git a/frontend/src/lib/components/QR.svelte b/frontend/src/lib/components/QR.svelte new file mode 100644 index 0000000..639be1b --- /dev/null +++ b/frontend/src/lib/components/QR.svelte @@ -0,0 +1,45 @@ + + +{value} diff --git a/frontend/src/routes/(app)/links/+page.svelte b/frontend/src/routes/(app)/links/+page.svelte index 4776be3..ea5cd16 100644 --- a/frontend/src/routes/(app)/links/+page.svelte +++ b/frontend/src/routes/(app)/links/+page.svelte @@ -14,8 +14,10 @@ Loader2, MoreVertical, PlusCircle, + QrCode, } from 'lucide-svelte' import { goto, invalidateAll } from '$app/navigation' + import Qr from '$lib/components/QR.svelte' export let data: PageData @@ -76,6 +78,14 @@ }) await invalidateAll() } + + let qrDialogOpen = false + let qrCode = '' + + const openQRDialog = (code: string) => { + qrCode = code + qrDialogOpen = true + }
@@ -145,6 +155,11 @@ {shortener.visitor.length} visits
+ @@ -220,3 +235,15 @@ + + + + + Shortener QR + + Use this QR code to share the shortener. + + + + +