File tree Expand file tree Collapse file tree 4 files changed +34
-0
lines changed
tests/runtime-browser/samples/binding-files Expand file tree Collapse file tree 4 files changed +34
-0
lines changed Original file line number Diff line number Diff line change
1
+ ---
2
+ ' svelte ' : patch
3
+ ---
4
+
5
+ fix: allow setting files binding for ` <input type="file" /> `
Original file line number Diff line number Diff line change @@ -182,6 +182,7 @@ export const binding_properties = {
182
182
} ,
183
183
files : {
184
184
event : 'change' ,
185
+ type : 'set' ,
185
186
valid_elements : [ 'input' ] ,
186
187
omit_in_ssr : true
187
188
}
Original file line number Diff line number Diff line change
1
+ import { test } from '../../assert' ;
2
+
3
+ export default test ( {
4
+ async test ( { assert, window } ) {
5
+ const input = window . document . querySelector ( 'input' ) ;
6
+ await new Promise ( ( r ) => setTimeout ( r , 100 ) ) ;
7
+ assert . equal ( input ?. files ?. length , 1 ) ;
8
+ window . document . querySelector ( 'button' ) ?. click ( ) ;
9
+ await new Promise ( ( r ) => setTimeout ( r , 100 ) ) ;
10
+ assert . equal ( input ?. files ?. length , 0 ) ;
11
+ }
12
+ } ) ;
Original file line number Diff line number Diff line change
1
+ <script >
2
+ import { onMount } from " svelte" ;
3
+
4
+ let files;
5
+
6
+ onMount (() => {
7
+ let list = new DataTransfer ();
8
+ let file = new File ([" content" ], " filename.jpg" );
9
+ list .items .add (file);
10
+ files = list .files ;
11
+ })
12
+ </script >
13
+
14
+ <input type =" file" bind:files />
15
+
16
+ <button onclick ={() => files = new DataTransfer ().files }>Reset</button >
You can’t perform that action at this time.
0 commit comments