From 17ae3b3feca0ca241dac0f2bc1a1d5511362ac56 Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Fri, 15 Jul 2022 22:36:38 -0700 Subject: [PATCH] support nested json binding with Form --- lib/components/ErrorMessage.svelte | 5 +++-- lib/components/Field.svelte | 3 ++- lib/components/Select.svelte | 3 ++- lib/components/Textarea.svelte | 3 ++- lib/components/utils.js | 1 + package-lock.json | 26 ++++++++++++++++---------- 6 files changed, 26 insertions(+), 15 deletions(-) create mode 100644 lib/components/utils.js diff --git a/lib/components/ErrorMessage.svelte b/lib/components/ErrorMessage.svelte index dc9733a..af7d7eb 100644 --- a/lib/components/ErrorMessage.svelte +++ b/lib/components/ErrorMessage.svelte @@ -1,12 +1,13 @@ -{#if $errors[name]} - {$errors[name]} +{#if get($errors, name)} + {get($errors, name)} {/if} diff --git a/lib/components/Field.svelte b/lib/components/Field.svelte index 18f8c0e..bb4cd90 100644 --- a/lib/components/Field.svelte +++ b/lib/components/Field.svelte @@ -1,6 +1,7 @@ - + diff --git a/lib/components/utils.js b/lib/components/utils.js new file mode 100644 index 0000000..aa0f4e3 --- /dev/null +++ b/lib/components/utils.js @@ -0,0 +1 @@ +export const get = (t, path) => path.split('.').reduce((r, k) => r?.[k], t); diff --git a/package-lock.json b/package-lock.json index e487d9c..a15ef0e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4651,14 +4651,20 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001278", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001278.tgz", - "integrity": "sha512-mpF9KeH8u5cMoEmIic/cr7PNS+F5LWBk0t2ekGT60lFf0Wq+n9LspAj0g3P+o7DQhD3sUdlMln4YFAWhFYn9jg==", + "version": "1.0.30001367", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001367.tgz", + "integrity": "sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw==", "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] }, "node_modules/capture-exit": { "version": "2.0.0", @@ -22703,9 +22709,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001278", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001278.tgz", - "integrity": "sha512-mpF9KeH8u5cMoEmIic/cr7PNS+F5LWBk0t2ekGT60lFf0Wq+n9LspAj0g3P+o7DQhD3sUdlMln4YFAWhFYn9jg==", + "version": "1.0.30001367", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001367.tgz", + "integrity": "sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw==", "dev": true }, "capture-exit": {