Add optional accept argument

This commit is contained in:
Ricky Miller 2018-02-12 09:06:48 -06:00 committed by Jordan Eldredge
parent 512f123cfa
commit 1f329174ce
3 changed files with 7 additions and 4 deletions

View file

@ -339,9 +339,9 @@ export function setSkinFromUrl(url) {
};
}
export function openFileDialog() {
export function openFileDialog(accept) {
return async dispatch => {
const fileReferences = await promptForFileReferences();
const fileReferences = await promptForFileReferences(accept);
dispatch(loadFilesFromReferences(fileReferences));
};
}

View file

@ -18,7 +18,7 @@ const MainContextMenu = props => (
<Hr />
<Node onClick={props.openFileDialog} label="Play File..." />
<Parent label="Skins">
<Node onClick={props.openFileDialog} label="Load Skin..." />
<Node onClick={props.openFileDialog.bind(null, '.zip, .wsz')} label="Load Skin..." />
{!!props.avaliableSkins.length && <Hr />}
{props.avaliableSkins.map(skin => (
<Node

View file

@ -28,11 +28,14 @@ export async function genArrayBufferFromUrl(url) {
});
}
export async function promptForFileReferences() {
export async function promptForFileReferences(accept) {
return new Promise(resolve => {
// Does this represent a memory leak somehow?
// Can this fail? Do we ever reject?
const fileInput = document.createElement("input");
if (accept) {
fileInput.setAttribute('accept', accept)
}
fileInput.type = "file";
fileInput.multiple = true;
// Not entirely sure why this is needed, since the input