Skip to content

Commit 8b84d55

Browse files
fix(ui): fix File-based types for q-upload and q-file (fix: #17605) (#17624)
* fix(ui): fix filter prop type for q-upload and q-file * fix(ui): fix QFile selected slot type * feat(ui): improve addFiles method type for q-upload and q-file
1 parent 5ada4fe commit 8b84d55

File tree

5 files changed

+11
-16
lines changed

5 files changed

+11
-16
lines changed

ui/build/build.types.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,8 @@ function copyPredefinedTypes (dir, parentDir) {
220220

221221
// Add types that should not be imported from ./api, but rather defined globally or generated in the final index.d.ts
222222
const extraInterfaceExclusions = [
223-
'IntersectionObserverEntry'
223+
'IntersectionObserverEntry',
224+
'File'
224225
]
225226
function addToExtraInterfaces (def) {
226227
if (def !== void 0 && def !== null && def.tsType !== void 0) {

ui/src/components/file/QFile.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,8 @@
125125
"desc": "Override default selection slot; Suggestion: QChip",
126126
"scope": {
127127
"files": {
128-
"type": [ "Array", "FileList" ],
128+
"type": "Array",
129+
"tsType": "File",
129130
"desc": "Array of File objects"
130131
},
131132

ui/src/components/uploader/QUploader.json

-12
Original file line numberDiff line numberDiff line change
@@ -212,18 +212,6 @@
212212
}
213213
},
214214
"returns": null
215-
},
216-
217-
"addFiles": {
218-
"desc": "Manually add files to the queue",
219-
"params": {
220-
"files": {
221-
"type": "Array",
222-
"required": true,
223-
"desc": "Must be an array of instances of JS File type"
224-
}
225-
},
226-
"returns": null
227215
}
228216
},
229217

ui/src/composables/private.use-file/use-file.json

+5-2
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,14 @@
4444
"desc": "Custom filter for added files; Only files that pass this filter will be added to the queue and uploaded; For best performance, reference it from your scope and do not define it inline",
4545
"params": {
4646
"files": {
47-
"type": [ "Array", "FileList" ],
47+
"type": "Array",
48+
"tsType": "File",
4849
"desc": "Candidate files to be added to queue"
4950
}
5051
},
5152
"returns": {
5253
"type": "Array",
54+
"tsType": "File",
5355
"desc": "Filtered files to be added to queue"
5456
},
5557
"examples": [ "files => files.filter(file => file.size === 1024)" ],
@@ -86,7 +88,8 @@
8688
"params": {
8789
"files": {
8890
"type": [ "Array", "FileList" ],
89-
"desc": "Array of files (instances of File)",
91+
"tsType": "QUseFileAddInput",
92+
"desc": "Array of files (instances of File) or FileList",
9093
"required": true
9194
}
9295
},

ui/types/api/qfile.d.ts

+2
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,5 @@ export type QFileNativeElement = Omit<
1313
Omit<HTMLInputElement, "files"> & { files: FileList },
1414
"type"
1515
> & { type: "file" };
16+
17+
export type QUseFileAddInput = readonly File[] | FileList;

0 commit comments

Comments
 (0)