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(); });