From 4da4f1ac543a0fce5ec2c5a87f8963959a09e62c Mon Sep 17 00:00:00 2001 From: Michael Thomas Date: Wed, 8 Nov 2023 20:08:14 -0500 Subject: [PATCH 01/34] wip: webhooks page --- src/lib/components/drawer/EditDrawer.svelte | 208 ++++++++++++++++++ src/lib/components/form/SelectField.svelte | 57 +++++ src/lib/components/form/TextField.svelte | 56 +++++ src/lib/components/form/ToggleField.svelte | 56 +++++ src/lib/components/table/DataTable.svelte | 54 +++++ src/lib/components/table/HtmlCell.svelte | 6 + .../components/table/SecretTableCell.svelte | 26 +++ .../components/table/WebhookTitleCell.svelte | 18 ++ src/lib/schemas/index.ts | 1 + src/lib/schemas/webhook.ts | 51 +++++ src/lib/utils/html.ts | 8 + src/routes/webhooks/+page.svelte | 20 ++ src/routes/webhooks/+page.ts | 9 + src/routes/webhooks/WebhooksTable.svelte | 133 +++++++++++ 14 files changed, 703 insertions(+) create mode 100644 src/lib/components/drawer/EditDrawer.svelte create mode 100644 src/lib/components/form/SelectField.svelte create mode 100644 src/lib/components/form/TextField.svelte create mode 100644 src/lib/components/form/ToggleField.svelte create mode 100644 src/lib/components/table/DataTable.svelte create mode 100644 src/lib/components/table/HtmlCell.svelte create mode 100644 src/lib/components/table/SecretTableCell.svelte create mode 100644 src/lib/components/table/WebhookTitleCell.svelte create mode 100644 src/lib/schemas/index.ts create mode 100644 src/lib/schemas/webhook.ts create mode 100644 src/lib/utils/html.ts create mode 100644 src/routes/webhooks/+page.svelte create mode 100644 src/routes/webhooks/+page.ts create mode 100644 src/routes/webhooks/WebhooksTable.svelte diff --git a/src/lib/components/drawer/EditDrawer.svelte b/src/lib/components/drawer/EditDrawer.svelte new file mode 100644 index 0000000..4353d66 --- /dev/null +++ b/src/lib/components/drawer/EditDrawer.svelte @@ -0,0 +1,208 @@ + + + + +{#if isOpen} + +
+
+ + + + + + + + + + + +
+
+ +
+ {#if $updateWebhookMutation.isError} +
+ + {prettyPrintError($updateWebhookMutation.error)} + +
+ {/if} + + + +
+ {#if type === 'update'} + $deleteWebhookMutation.mutate(id)} + color="red" + outline + status={$deleteWebhookMutation.status} + icon="bxs:trash" + > + + + {/if} + +
+ +{/if} diff --git a/src/lib/components/form/SelectField.svelte b/src/lib/components/form/SelectField.svelte new file mode 100644 index 0000000..aa288f2 --- /dev/null +++ b/src/lib/components/form/SelectField.svelte @@ -0,0 +1,57 @@ + + + + +
+ + + {#if helpText && !hasErrors} + + {helpText} + + {/if} + {#if hasErrors} + + {$errors} + + {/if} +
diff --git a/src/lib/components/form/ToggleField.svelte b/src/lib/components/form/ToggleField.svelte new file mode 100644 index 0000000..edd0423 --- /dev/null +++ b/src/lib/components/form/ToggleField.svelte @@ -0,0 +1,56 @@ + + + + +
+ + + {#if helpText && !hasErrors} + + {helpText} + + {/if} + {#if hasErrors} + + {$errors} + + {/if} +
diff --git a/src/lib/components/table/DataTable.svelte b/src/lib/components/table/DataTable.svelte new file mode 100644 index 0000000..634971a --- /dev/null +++ b/src/lib/components/table/DataTable.svelte @@ -0,0 +1,54 @@ + + +{#if $$slots.header} +
+ +
+{/if} + + + {#each $headerRows as headerRow (headerRow.id)} + + {#each headerRow.cells as cell (cell.id)} + + + + + + {/each} + + {/each} + + + {#each $rows as row (row.id)} + + + {#each row.cells as cell (cell.id)} + + + + + + {/each} + + + {/each} + +
diff --git a/src/lib/components/table/HtmlCell.svelte b/src/lib/components/table/HtmlCell.svelte new file mode 100644 index 0000000..3379ac5 --- /dev/null +++ b/src/lib/components/table/HtmlCell.svelte @@ -0,0 +1,6 @@ + + + +{@html html} diff --git a/src/lib/components/table/SecretTableCell.svelte b/src/lib/components/table/SecretTableCell.svelte new file mode 100644 index 0000000..ffc209b --- /dev/null +++ b/src/lib/components/table/SecretTableCell.svelte @@ -0,0 +1,26 @@ + + +{#if text} + + {#if show} + + + {text} + + {:else} + + + ******** + {/if} + +{/if} diff --git a/src/lib/components/table/WebhookTitleCell.svelte b/src/lib/components/table/WebhookTitleCell.svelte new file mode 100644 index 0000000..9eeb758 --- /dev/null +++ b/src/lib/components/table/WebhookTitleCell.svelte @@ -0,0 +1,18 @@ + + + + {value} + diff --git a/src/lib/schemas/index.ts b/src/lib/schemas/index.ts new file mode 100644 index 0000000..9ad4064 --- /dev/null +++ b/src/lib/schemas/index.ts @@ -0,0 +1 @@ +export * from './webhook'; diff --git a/src/lib/schemas/webhook.ts b/src/lib/schemas/webhook.ts new file mode 100644 index 0000000..4632a7e --- /dev/null +++ b/src/lib/schemas/webhook.ts @@ -0,0 +1,51 @@ +import { WebhookTrigger, WebhookResponse, WebhookDelivery } from '$lib/api'; +import type { SelectOptionType } from 'flowbite-svelte'; +import { z } from 'zod'; + +export const webhookSchema = z.object({ + title: z.string(), + trigger: z.nativeEnum(WebhookTrigger), + response: z.nativeEnum(WebhookResponse), + delivery: z.nativeEnum(WebhookDelivery), + url: z.string().url(), + active: z.boolean().optional() +}); + +export type WebhookSchema = typeof webhookSchema; + +export const triggerItems: SelectOptionType[] = [ + { + name: 'After transaction creation', + value: WebhookTrigger.STORE_TRANSACTION + }, + { + name: 'After transaction update', + value: WebhookTrigger.UPDATE_TRANSACTION + }, + { + name: 'After transaction delete', + value: WebhookTrigger.DESTROY_TRANSACTION + } +]; + +export const responseItems: SelectOptionType[] = [ + { + name: 'Transaction details', + value: WebhookResponse.TRANSACTIONS + }, + { + name: 'Account details', + value: WebhookResponse.ACCOUNTS + }, + { + name: 'No details', + value: WebhookResponse.NONE + } +]; + +export const deliveryItems: SelectOptionType[] = [ + { + name: 'JSON', + value: WebhookDelivery.JSON + } +]; diff --git a/src/lib/utils/html.ts b/src/lib/utils/html.ts new file mode 100644 index 0000000..c837482 --- /dev/null +++ b/src/lib/utils/html.ts @@ -0,0 +1,8 @@ +export function htmlEscape(str: string) { + return str + .replace(/&/g, '&') + .replace(/'/g, '&apos') + .replace(/"/g, '"') + .replace(/>/g, '>') + .replace(/ + import DashboardPage from '$lib/components/layout/DashboardPage.svelte'; + import Section from '$lib/components/layout/Section.svelte'; + import { createQuery } from '@tanstack/svelte-query'; + import WebhooksTable from './WebhooksTable.svelte'; + import { WebhooksService } from '$lib/api'; + + $: webhooksResult = createQuery({ + queryKey: ['webhooks'], + queryFn: () => WebhooksService.listWebhook() + }); + + + +
+ {#if $webhooksResult.isSuccess} + + {/if} +
+
diff --git a/src/routes/webhooks/+page.ts b/src/routes/webhooks/+page.ts new file mode 100644 index 0000000..93000f5 --- /dev/null +++ b/src/routes/webhooks/+page.ts @@ -0,0 +1,9 @@ +import type { PageMeta } from '$lib/models/PageMeta.js'; + +export function load() { + const meta: PageMeta = { + title: 'Webhooks', + icon: 'bxs:bolt' + }; + return { meta }; +} diff --git a/src/routes/webhooks/WebhooksTable.svelte b/src/routes/webhooks/WebhooksTable.svelte new file mode 100644 index 0000000..6906268 --- /dev/null +++ b/src/routes/webhooks/WebhooksTable.svelte @@ -0,0 +1,133 @@ + + + + + + + From 2ad81d37617ea9d02aef1fecf56fdae025455e3c Mon Sep 17 00:00:00 2001 From: Michael Thomas Date: Wed, 8 Nov 2023 20:09:58 -0500 Subject: [PATCH 02/34] wip: dependencies --- package.json | 4 ++- pnpm-lock.yaml | 79 ++++++++++++++------------------------------------ 2 files changed, 25 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index 05e8f0e..8c1a7d0 100644 --- a/package.json +++ b/package.json @@ -28,8 +28,10 @@ "flowbite-svelte": "^0.44.19", "svelte-chartjs": "^3.1.2", "svelte-modals": "^1.3.0", + "sveltekit-superforms": "^1.10.1", "tailwind-merge": "^2.0.0", - "ts-pattern": "^5.0.5" + "ts-pattern": "^5.0.5", + "zod": "^3.22.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^2.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a3a2eeb..c849bc1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -44,12 +44,18 @@ dependencies: svelte-modals: specifier: ^1.3.0 version: 1.3.0(svelte@4.2.1) + sveltekit-superforms: + specifier: ^1.10.1 + version: 1.10.1(@sveltejs/kit@1.25.2)(svelte@4.2.1)(zod@3.22.4) tailwind-merge: specifier: ^2.0.0 version: 2.0.0 ts-pattern: specifier: ^5.0.5 version: 5.0.5 + zod: + specifier: ^3.22.4 + version: 3.22.4 devDependencies: '@sveltejs/adapter-auto': @@ -181,7 +187,6 @@ packages: cpu: [arm64] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/android-arm@0.18.20: @@ -190,7 +195,6 @@ packages: cpu: [arm] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/android-x64@0.18.20: @@ -199,7 +203,6 @@ packages: cpu: [x64] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/darwin-arm64@0.18.20: @@ -208,7 +211,6 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: true optional: true /@esbuild/darwin-x64@0.18.20: @@ -217,7 +219,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: true optional: true /@esbuild/freebsd-arm64@0.18.20: @@ -226,7 +227,6 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true - dev: true optional: true /@esbuild/freebsd-x64@0.18.20: @@ -235,7 +235,6 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true - dev: true optional: true /@esbuild/linux-arm64@0.18.20: @@ -244,7 +243,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-arm@0.18.20: @@ -253,7 +251,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-ia32@0.18.20: @@ -262,7 +259,6 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-loong64@0.18.20: @@ -271,7 +267,6 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-mips64el@0.18.20: @@ -280,7 +275,6 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-ppc64@0.18.20: @@ -289,7 +283,6 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-riscv64@0.18.20: @@ -298,7 +291,6 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-s390x@0.18.20: @@ -307,7 +299,6 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-x64@0.18.20: @@ -316,7 +307,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/netbsd-x64@0.18.20: @@ -325,7 +315,6 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true - dev: true optional: true /@esbuild/openbsd-x64@0.18.20: @@ -334,7 +323,6 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true - dev: true optional: true /@esbuild/sunos-x64@0.18.20: @@ -343,7 +331,6 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true - dev: true optional: true /@esbuild/win32-arm64@0.18.20: @@ -352,7 +339,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: true optional: true /@esbuild/win32-ia32@0.18.20: @@ -361,7 +347,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: true optional: true /@esbuild/win32-x64@0.18.20: @@ -370,7 +355,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: true optional: true /@eslint-community/eslint-utils@4.4.0(eslint@8.51.0): @@ -413,7 +397,6 @@ packages: /@fastify/busboy@2.0.0: resolution: {integrity: sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==} engines: {node: '>=14'} - dev: true /@floating-ui/core@1.5.0: resolution: {integrity: sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==} @@ -528,7 +511,6 @@ packages: /@polka/url@1.0.0-next.23: resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==} - dev: true /@popperjs/core@2.11.8: resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} @@ -581,7 +563,6 @@ packages: vite: 4.4.11(@types/node@20.8.6) transitivePeerDependencies: - supports-color - dev: true /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.4.6)(svelte@4.2.1)(vite@4.4.11): resolution: {integrity: sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==} @@ -597,7 +578,6 @@ packages: vite: 4.4.11(@types/node@20.8.6) transitivePeerDependencies: - supports-color - dev: true /@sveltejs/vite-plugin-svelte@2.4.6(svelte@4.2.1)(vite@4.4.11): resolution: {integrity: sha512-zO79p0+DZnXPnF0ltIigWDx/ux7Ni+HRaFOw720Qeivc1azFUrJxTl0OryXVibYNx1hCboGia1NRV3x8RNv4cA==} @@ -617,7 +597,6 @@ packages: vitefu: 0.2.5(vite@4.4.11) transitivePeerDependencies: - supports-color - dev: true /@tailwindcss/forms@0.5.6(tailwindcss@3.3.3): resolution: {integrity: sha512-Fw+2BJ0tmAwK/w01tEFL5TiaJBX1NLT1/YbWgvm7ws3Qcn11kiXxzNTEQDMs5V3mQemhB56l3u0i9dwdzSQldA==} @@ -665,7 +644,6 @@ packages: /@types/cookie@0.5.2: resolution: {integrity: sha512-DBpRoJGKJZn7RY92dPrgoMew8xCWc2P71beqsjyhEI/Ds9mOyVmBwtekyfhpwFIVt1WrxTonFifiOZ62V8CnNA==} - dev: true /@types/d3-scale-chromatic@3.0.1: resolution: {integrity: sha512-Ob7OrwiTeQXY/WBBbRHGZBOn6rH1h7y3jjpTSKYqDEeqFjktql6k2XSgNwLrLDmAsXhEn8P9NHDY4VTuo0ZY1w==} @@ -682,7 +660,6 @@ packages: resolution: {integrity: sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==} dependencies: undici-types: 5.25.3 - dev: true /@types/pug@2.0.7: resolution: {integrity: sha512-I469DU0UXNC1aHepwirWhu9YKg5fkxohZD95Ey/5A7lovC+Siu+MCLffva87lnfThaOrw9Vb1DUN5t55oULAAw==} @@ -1153,7 +1130,6 @@ packages: /cookie@0.5.0: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} - dev: true /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} @@ -1211,7 +1187,6 @@ packages: optional: true dependencies: ms: 2.1.2 - dev: true /deep-eql@4.1.3: resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} @@ -1227,7 +1202,6 @@ packages: /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - dev: true /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} @@ -1240,7 +1214,6 @@ packages: /devalue@4.3.2: resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} - dev: true /didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} @@ -1310,7 +1283,6 @@ packages: '@esbuild/win32-arm64': 0.18.20 '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 - dev: true /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -1440,7 +1412,6 @@ packages: /esm-env@1.0.0: resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} - dev: true /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} @@ -1586,7 +1557,6 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /get-func-name@2.0.2: @@ -1649,7 +1619,6 @@ packages: /globalyzer@0.1.0: resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} - dev: true /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} @@ -1665,7 +1634,6 @@ packages: /globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - dev: true /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -1828,7 +1796,6 @@ packages: /kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - dev: true /known-css-properties@0.28.0: resolution: {integrity: sha512-9pSL5XB4J+ifHP0e0jmmC98OGC1nL8/JjS+fi6mnTlIf//yt/MfVLtKg7S6nCtj/8KTcWX7nRlY0XywoYY1ISQ==} @@ -1924,7 +1891,6 @@ packages: resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} engines: {node: '>=10.0.0'} hasBin: true - dev: true /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} @@ -1971,16 +1937,13 @@ packages: /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} - dev: true /mrmime@1.0.1: resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} engines: {node: '>=10'} - dev: true /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true /mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -1994,7 +1957,6 @@ packages: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: true /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -2126,7 +2088,6 @@ packages: /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -2262,7 +2223,6 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -2373,7 +2333,6 @@ packages: hasBin: true optionalDependencies: fsevents: 2.3.3 - dev: true /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -2386,7 +2345,6 @@ packages: engines: {node: '>=6'} dependencies: mri: 1.2.0 - dev: true /sander@0.5.1: resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} @@ -2407,7 +2365,6 @@ packages: /set-cookie-parser@2.6.0: resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} - dev: true /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -2432,7 +2389,6 @@ packages: '@polka/url': 1.0.0-next.23 mrmime: 1.0.1 totalist: 3.0.1 - dev: true /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} @@ -2589,7 +2545,6 @@ packages: svelte: ^3.19.0 || ^4.0.0 dependencies: svelte: 4.2.1 - dev: true /svelte-keyed@1.1.7(svelte@4.2.1): resolution: {integrity: sha512-d3VIwBza12PIQ0mXf8js+r4xoSFiQikDobbi6hx03oQzZx0BImXCBcdsZeYEN7VrNswXcjIrhc9qqjlxcro49w==} @@ -2690,6 +2645,18 @@ packages: magic-string: 0.30.5 periscopic: 3.1.0 + /sveltekit-superforms@1.10.1(@sveltejs/kit@1.25.2)(svelte@4.2.1)(zod@3.22.4): + resolution: {integrity: sha512-xNRLuncJf7UoJSr543IpFRu5si2Vv7dd8lsc6w1MAodGcIvDFn76T6jF/idftos7Vt/OOi3btFsvrJvT99n4dg==} + peerDependencies: + '@sveltejs/kit': 1.x + svelte: 3.x || 4.x + zod: 3.x + dependencies: + '@sveltejs/kit': 1.25.2(svelte@4.2.1)(vite@4.4.11) + svelte: 4.2.1 + zod: 3.22.4 + dev: false + /svg.draggable.js@2.2.2: resolution: {integrity: sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==} engines: {node: '>= 0.8.0'} @@ -2803,7 +2770,6 @@ packages: dependencies: globalyzer: 0.1.0 globrex: 0.1.2 - dev: true /tinybench@2.5.1: resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} @@ -2829,7 +2795,6 @@ packages: /totalist@3.0.1: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} - dev: true /ts-api-utils@1.0.3(typescript@5.2.2): resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} @@ -2889,14 +2854,12 @@ packages: /undici-types@5.25.3: resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==} - dev: true /undici@5.25.4: resolution: {integrity: sha512-450yJxT29qKMf3aoudzFpIciqpx6Pji3hEWaXqXmanbXF58LTAGCKxcJjxMXWu3iG+Mudgo3ZUfDB6YDFd/dAw==} engines: {node: '>=14.0'} dependencies: '@fastify/busboy': 2.0.0 - dev: true /universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} @@ -2990,7 +2953,6 @@ packages: rollup: 3.29.4 optionalDependencies: fsevents: 2.3.3 - dev: true /vitefu@0.2.5(vite@4.4.11): resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} @@ -3001,7 +2963,6 @@ packages: optional: true dependencies: vite: 4.4.11(@types/node@20.8.6) - dev: true /vitest@0.34.6: resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} @@ -3117,6 +3078,10 @@ packages: engines: {node: '>=12.20'} dev: true + /zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + dev: false + github.com/michaelhthomas/firefly-iii-typescript-sdk-fetch/70f794d824bd19dfaaa482710ef40e76984b8910: resolution: {tarball: https://codeload.github.com/michaelhthomas/firefly-iii-typescript-sdk-fetch/tar.gz/70f794d824bd19dfaaa482710ef40e76984b8910} name: firefly-iii-typescript-sdk-fetch From 3bfa8433a1a64f56432aa8e293925b514c3b90c1 Mon Sep 17 00:00:00 2001 From: Michael Thomas Date: Wed, 8 Nov 2023 21:40:59 -0500 Subject: [PATCH 03/34] style: clean up Drawer / EditDrawer --- src/lib/components/drawer/Drawer.svelte | 45 +++--- src/lib/components/drawer/EditDrawer.svelte | 156 ++++++++++---------- 2 files changed, 98 insertions(+), 103 deletions(-) diff --git a/src/lib/components/drawer/Drawer.svelte b/src/lib/components/drawer/Drawer.svelte index 9b015ed..c17f70d 100644 --- a/src/lib/components/drawer/Drawer.svelte +++ b/src/lib/components/drawer/Drawer.svelte @@ -5,6 +5,7 @@ import Icon from '$lib/components/Icon.svelte'; import { fly } from 'svelte/transition'; + export let isOpen: boolean; export let title: string; export let icon: string; @@ -15,27 +16,29 @@ }; -
-
-
- - - {title} - -
- -
+{#if isOpen} +
+
+
+ + + {title} + +
+ +
- + -
+
- -
+ +
+{/if} diff --git a/src/lib/components/drawer/EditDrawer.svelte b/src/lib/components/drawer/EditDrawer.svelte index 4353d66..3fb7583 100644 --- a/src/lib/components/drawer/EditDrawer.svelte +++ b/src/lib/components/drawer/EditDrawer.svelte @@ -28,7 +28,6 @@ -{#if isOpen} - -
-
- - - - - - - - - - - -
-
- -
- {#if $updateWebhookMutation.isError} -
- - {prettyPrintError($updateWebhookMutation.error)} - -
- {/if} + +
+
+ + + + + + + + + + + +
+
- - -
- {#if type === 'update'} - $deleteWebhookMutation.mutate(id)} - color="red" - outline - status={$deleteWebhookMutation.status} - icon="bxs:trash" - > - - - {/if} -