From 5ad6a0cdc37413e2c31994e7402d24ec4853fad7 Mon Sep 17 00:00:00 2001 From: Paolo Ricciuti Date: Tue, 21 Jan 2025 12:04:48 +0100 Subject: [PATCH] fix: initialize `files` bind on hydration (#15059) --- .changeset/happy-ants-grin.md | 5 +++++ .../src/internal/client/dom/elements/bindings/input.js | 9 +++++++++ 2 files changed, 14 insertions(+) create mode 100644 .changeset/happy-ants-grin.md diff --git a/.changeset/happy-ants-grin.md b/.changeset/happy-ants-grin.md new file mode 100644 index 000000000000..c80b2eb40cc0 --- /dev/null +++ b/.changeset/happy-ants-grin.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: initialize `files` bind on hydration diff --git a/packages/svelte/src/internal/client/dom/elements/bindings/input.js b/packages/svelte/src/internal/client/dom/elements/bindings/input.js index ec123d39681d..3ea1a24d7edc 100644 --- a/packages/svelte/src/internal/client/dom/elements/bindings/input.js +++ b/packages/svelte/src/internal/client/dom/elements/bindings/input.js @@ -259,6 +259,15 @@ export function bind_files(input, get, set = get) { set(input.files); }); + if ( + // If we are hydrating and the value has since changed, + // then use the updated value from the input instead. + hydrating && + input.files + ) { + set(input.files); + } + render_effect(() => { input.files = get(); });