FileArray
@wq/material’s <FileArray/> input component is a specialized version of <FieldsetArray/> providing a streamlined UI for uploading an array of files. Django does not support FileField(multiple=True), but the same result can be achieved through a related model; e.g. an XLSForm “repeat” with only a single “file” or “image” field. <AutoSubformArray/> will detect this configuration and render <FileArray> instead of the default. <FileArray/> is analogous to <input type="file" multiple> in HTML, though the JSON representation is different.
FileArray uses the same underlying UI as the individual File and Image input components, but enables support for multiple files.
Demo
const config = {
"pages": {
"survey": {
"form": [
{
"name": "images",
"label": "Images",
"bind": {
"required": true
},
"type": "repeat",
"children": [
{
"name": "file",
"label": "File",
"type": "image"
}
]
},
],
"name": "survey",
"url": "surveys",
"list": true,
"verbose_name": "survey",
"verbose_name_plural": "surveys"
}
}
};
import wq from './wq.js';
wq.init(config).then(...);
// navigate to /surveys/new
As shown in the example above, FileArray will only accept
image/*file types if the nested input type is"image". (Try changing the type to"file"to allow all types.)
Source
While @wq/react defines a placeholder implementation, @wq/material’s versions are more useful as reference: