File tree Expand file tree Collapse file tree 1 file changed +23
-7
lines changed
src/components/FwbFileInput Expand file tree Collapse file tree 1 file changed +23
-7
lines changed Original file line number Diff line number Diff line change 5555 :multiple =" multiple"
5656 class =" hidden"
5757 type =" file"
58+ @change =" handleChange"
5859 >
5960 </label >
6061 </div >
@@ -112,7 +113,12 @@ const model = computed({
112113const handleChange = (event : Event ) => {
113114 const target = event .target as HTMLInputElement
114115 if (props .multiple ) {
115- model .value = Array .from (target .files ?? [])
116+ const newFiles = Array .from (target .files ?? [])
117+ if (Array .isArray (model .value ) && model .value .length > 0 ) {
118+ model .value = [... model .value , ... newFiles ]
119+ } else {
120+ model .value = newFiles
121+ }
116122 } else {
117123 model .value = target .files ?.[0 ] ?? null
118124 }
@@ -129,15 +135,25 @@ const dropFileHandler = (event: DragEvent) => {
129135 }
130136 })
131137 if (props .multiple ) {
132- model .value = arr
138+ if (Array .isArray (model .value ) && model .value .length > 0 ) {
139+ model .value = [... model .value , ... arr ]
140+ } else {
141+ model .value = arr
142+ }
133143 } else {
134- model .value = arr [0 ]
144+ model .value = arr [0 ] || null
135145 }
136146 } else if (event .dataTransfer ?.files ) {
137- Object .values (event .dataTransfer .files )
138- .forEach ((file : File ) => {
139- model .value = file
140- })
147+ const files = Array .from (event .dataTransfer .files )
148+ if (props .multiple ) {
149+ if (Array .isArray (model .value ) && model .value .length > 0 ) {
150+ model .value = [... model .value , ... files ]
151+ } else {
152+ model .value = files
153+ }
154+ } else {
155+ model .value = files [0 ] || null
156+ }
141157 }
142158}
143159
You can’t perform that action at this time.
0 commit comments