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 = {
182182 } ,
183183 files : {
184184 event : 'change' ,
185+ type : 'set' ,
185186 valid_elements : [ 'input' ] ,
186187 omit_in_ssr : true
187188 }
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