From cac23bb10aeb74b31b060f261948226cff854d63 Mon Sep 17 00:00:00 2001 From: Danielo Rodriguez Date: Thu, 9 May 2024 23:57:22 +0200 Subject: [PATCH] feat(input): dataview input can be fully async --- src/FormModal.ts | 10 +- src/views/components/MultiSelect.svelte | 94 ++++++++++--------- src/views/components/MultiSelectModel.ts | 8 +- .../components/inputBuilderDataview.svelte | 12 ++- 4 files changed, 67 insertions(+), 57 deletions(-) diff --git a/src/FormModal.ts b/src/FormModal.ts index de8a34f0..ef6c3b57 100644 --- a/src/FormModal.ts +++ b/src/FormModal.ts @@ -191,10 +191,12 @@ export class FormModal extends Modal { values: fieldStore.value as Writable, setting: fieldBase, errors: fieldStore.errors, - model: MultiSelectTags( - fieldInput, - this.app, - fieldStore.value as Writable, + model: Promise.resolve( + MultiSelectTags( + fieldInput, + this.app, + fieldStore.value as Writable, + ), ), }, }), diff --git a/src/views/components/MultiSelect.svelte b/src/views/components/MultiSelect.svelte index a5a12ac5..d66ab691 100644 --- a/src/views/components/MultiSelect.svelte +++ b/src/views/components/MultiSelect.svelte @@ -1,11 +1,9 @@
- 0} - /> - {#each $errors as error} - {error} - {/each} -
- {#each $values as value} -
- {value} - -
- {:else} - + {#await model then model} + {@const { createInput, removeValue } = model} + 0} + /> + {#each $errors as error} + {error} {/each} -
+
+ {#each $values as value} +
+ {value} + +
+ {:else} + + {/each} +
+ {:catch error} + Failure obtaining the options to display + {error.message} + {/await}