1
0
mirror of synced 2024-11-16 11:13:22 +01:00

Fix file inputs being overwritten with strings.

Added force option in case we really need to overwrite
This commit is contained in:
j433866 2019-07-25 15:16:07 +01:00
parent e4452b906e
commit 42cfed5fa8
2 changed files with 8 additions and 3 deletions

View File

@ -515,8 +515,9 @@ class InputWaiter {
* *
* @param {number} inputNum * @param {number} inputNum
* @param {string | ArrayBuffer} value * @param {string | ArrayBuffer} value
* @param {boolean} [force=false] - If true, forces the value to be updated even if the type is different to the currently stored type
*/ */
updateInputValue(inputNum, value) { updateInputValue(inputNum, value, force=false) {
let includeInput = false; let includeInput = false;
const recipeStr = toBase64(value, "A-Za-z0-9+/"); // B64 alphabet with no padding const recipeStr = toBase64(value, "A-Za-z0-9+/"); // B64 alphabet with no padding
if (recipeStr.length > 0 && recipeStr.length <= 68267) { if (recipeStr.length > 0 && recipeStr.length <= 68267) {
@ -534,7 +535,8 @@ class InputWaiter {
action: "updateInputValue", action: "updateInputValue",
data: { data: {
inputNum: inputNum, inputNum: inputNum,
value: value value: value,
force: force
} }
}, transferable); }, transferable);
} }
@ -1025,7 +1027,7 @@ class InputWaiter {
this.manager.highlighter.removeHighlights(); this.manager.highlighter.removeHighlights();
getSelection().removeAllRanges(); getSelection().removeAllRanges();
this.updateInputValue(inputNum, ""); this.updateInputValue(inputNum, "", true);
this.set({ this.set({
inputNum: inputNum, inputNum: inputNum,

View File

@ -546,10 +546,13 @@ self.updateInputProgress = function(inputData) {
* @param {object} inputData * @param {object} inputData
* @param {number} inputData.inputNum - The input that's having its value updated * @param {number} inputData.inputNum - The input that's having its value updated
* @param {string | ArrayBuffer} inputData.value - The new value of the input * @param {string | ArrayBuffer} inputData.value - The new value of the input
* @param {boolean} inputData.force - If true, still updates the input value if the input type is different to the stored value
*/ */
self.updateInputValue = function(inputData) { self.updateInputValue = function(inputData) {
const inputNum = inputData.inputNum; const inputNum = inputData.inputNum;
if (inputNum < 1) return; if (inputNum < 1) return;
if (Object.prototype.hasOwnProperty.call(self.inputs[inputNum].data, "fileBuffer") &&
typeof inputData.value === "string" && !inputData.force) return;
const value = inputData.value; const value = inputData.value;
if (self.inputs[inputNum] !== undefined) { if (self.inputs[inputNum] !== undefined) {
if (typeof value === "string") { if (typeof value === "string") {