diff --git a/src/file-renderer/index.js b/src/file-renderer/index.js
index fa77679..5ae2d6c 100644
--- a/src/file-renderer/index.js
+++ b/src/file-renderer/index.js
@@ -10,9 +10,10 @@ String.prototype.endsWith = function (suffix) {
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
-function displayFileText(filename, evt, canvas) {
+function renderToCanvas(filename, evt, canvas) {
const view = jDataView(evt.target.result, 0, evt.size);
const pattern = new Pattern();
+
filename = filename.toLowerCase();
if (filename.endsWith("pes")) {
pesRead(view, pattern);
@@ -29,15 +30,16 @@ function displayFileText(filename, evt, canvas) {
pattern.drawShape(canvas);
}
-function handleFileReadAbort(evt) {
- alert("File read aborted.");
+function renderAbortMessage(errorMessageRef) {
+ errorMessageRef.innerHTML = "Render aborted!";
}
-function handleFileReadError(evt) {
+function renderErrorMessage(errorName, errorMessageRef) {
let message;
- switch (evt.target.error.name) {
+ switch (errorName) {
case "NotFoundError":
- alert("The file could not be found at the time the read was processed.");
+ message =
+ "The file could not be found at the time the read was processed.";
break;
case "SecurityError":
message = "
A file security error occured. This can be due to:
";
@@ -46,29 +48,33 @@ function handleFileReadError(evt) {
message += "Performing too many read calls on file resources.";
message +=
"The file has changed on disk since the user selected it.";
- alert(message);
break;
case "NotReadableError":
- alert(
- "The file cannot be read. This can occur if the file is open in another application."
- );
+ message =
+ "The file cannot be read. This can occur if the file is open in another application.";
break;
case "EncodingError":
- alert("The length of the data URL for the file is too long.");
+ message = "The length of the data URL for the file is too long.";
break;
default:
- alert("File error code " + evt.target.error.name);
+ message = "Something wrong happened!";
+ break;
}
+
+ errorMessageRef.innerHTML = message;
}
-export default function renderFileToCanvas(fileObject, canvas) {
+export default function renderFileToCanvas(
+ fileObject,
+ canvas,
+ errorMessageRef
+) {
const reader = new FileReader();
- reader.onloadend = function (x) {
- displayFileText.apply(null, [fileObject.name, x, canvas]);
- };
- reader.abort = handleFileReadAbort;
- reader.onerror = handleFileReadError;
+ reader.onloadend = (evt) => renderToCanvas(fileObject.name, evt, canvas);
+ reader.abort = (/** @type {any} */ _) => renderAbortMessage(errorMessageRef);
+ reader.onerror = (evt) =>
+ renderErrorMessage(evt.target.error.name, errorMessageRef);
if (fileObject) {
reader.readAsArrayBuffer(fileObject);
diff --git a/src/lib/CardList.svelte b/src/lib/CardList.svelte
index fe93d26..a2b7fc1 100644
--- a/src/lib/CardList.svelte
+++ b/src/lib/CardList.svelte
@@ -3,6 +3,7 @@
export let files = [];
let canvasRefs = [];
+ let errorMessageRef;
{#if files.length !== 0}
@@ -12,8 +13,11 @@
{file.name}
- {canvasRefs[i] && renderFileToCanvas(file, canvasRefs[i])}
+ {canvasRefs[i] &&
+ renderFileToCanvas(file, canvasRefs[i], errorMessageRef)}
{/each}
+
+
{/if}