Skip to content

Commit 791d1b9

Browse files
committed
add webxdc.importFiles() test
1 parent 2aabf29 commit 791d1b9

2 files changed

Lines changed: 34 additions & 6 deletions

File tree

js/uploads.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,28 @@
1-
function setInpPrev(event) {
1+
function setInpPrev(files) {
22
var img = document.getElementById('inpImgPreview');
3-
if (event.target.files.length == 0) {
3+
if (files.length == 0) {
44
img.src = "#";
55
} else {
66
var reader = new FileReader();
77
reader.onload = function() {
88
img.src = reader.result;
99
};
10-
reader.readAsDataURL(event.target.files[0]);
10+
reader.readAsDataURL(files[0]);
1111
}
1212
}
13+
function importFiles() {
14+
webxdc.importFiles({mimeTypes: ['image/*']}).then((files) => {
15+
setInpPrev(files);
16+
});
17+
}
1318

1419
window.addEventListener("load", () => {
1520
document.getElementById("uploads-output").append(
1621
createHeader("Uploads/Import"),
1722
h("div", {class: "container"},
18-
h('input', {id: "imgInp", type: "file", accept: "image/*", onchange: "setInpPrev(event)"}),
23+
h("button", {onclick: "importFiles()"}, "webxdc.importFiles(...)"),
24+
" or ",
25+
h('input', {id: "imgInp", type: "file", accept: "image/*", onchange: "setInpPrev(event.target.files)"}),
1926
h("br"), h("br"),
2027
h("img", {id: "inpImgPreview", style: "max-height: 200px; max-width: 90%; width: auto; display:block", alt: "Image preview will appear here"}),
2128
),

webxdc.js

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,28 @@ window.webxdc = (() => {
132132
element.click();
133133
document.body.removeChild(element);
134134
}
135-
}
135+
},
136+
importFiles: (filters) => {
137+
var element = document.createElement("input");
138+
element.type = "file";
139+
element.accept = [...filters.extensions||[], ...filters.mimeTypes||[]].join(
140+
","
141+
);
142+
element.multiple = filters.multiple || false;
143+
const promise = new Promise((resolve, _reject) => {
144+
element.onchange = (_ev) => {
145+
console.log("element.files", element.files);
146+
const files = [...element.files];
147+
document.body.removeChild(element);
148+
resolve(files);
149+
};
150+
});
151+
element.style.display = "none"
152+
document.body.appendChild(element);
153+
element.click();
154+
console.log(element);
155+
return promise;
156+
},
136157
};
137158
})();
138159

@@ -193,4 +214,4 @@ window.alterXdcApp = () => {
193214
}
194215
}
195216

196-
window.addEventListener("load", window.alterXdcApp);
217+
window.addEventListener("load", window.alterXdcApp);

0 commit comments

Comments
 (0)