File tree Expand file tree Collapse file tree 1 file changed +16
-12
lines changed
web/src/lib/components/files Expand file tree Collapse file tree 1 file changed +16
-12
lines changed Original file line number Diff line number Diff line change 11<script lang =" ts" >
2- import { watch } from " runed" ;
3-
42 type Props = {
53 label? : string ;
64 required? : boolean ;
97
108 let { label = " File" , required = false , file = $bindable <File | undefined >(undefined ) }: Props = $props ();
119
12- let files = $state <FileList | undefined >();
10+ function getFiles() {
11+ if (file ) {
12+ const dataTransfer = new DataTransfer ();
13+ dataTransfer .items .add (file );
14+ return dataTransfer .files ;
15+ }
16+ return new DataTransfer ().files ;
17+ }
1318
14- watch (
15- () => files ,
16- (newFiles ) => {
17- if (newFiles && newFiles .length > 0 ) {
18- file = newFiles [0 ];
19- }
20- },
21- );
19+ function setFiles(files : FileList | null ) {
20+ if (files && files .length > 0 ) {
21+ file = files [0 ];
22+ } else {
23+ file = undefined ;
24+ }
25+ }
2226
2327 const uid = $props .id ();
2428 const labelId = ` ${uid }-label ` ;
3337 <span class ="font-light" >{label }</span >
3438 {/if }
3539 <span class =" iconify size-4 shrink-0 text-em-disabled octicon--triangle-down-16" ></span >
36- <input id ={inputId } aria-labelledby ={labelId } type ="file" {required } bind:files class =" absolute top-0 left-0 size-full opacity-0" />
40+ <input id ={inputId } aria-labelledby ={labelId } type ="file" {required } bind:files ={ getFiles , setFiles } class =" absolute top-0 left-0 size-full opacity-0" />
3741</label >
You can’t perform that action at this time.
0 commit comments