Show error message when canvas to export is too big (#1256) (#2210)

Co-authored-by: dwelle <luzar.david@gmail.com>
This commit is contained in:
Giacomo Debidda 2020-10-28 20:52:53 +01:00 committed by GitHub
parent 5c26bd19d7
commit fc58e51ab3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 193 additions and 118 deletions

View file

@ -5,6 +5,7 @@ import { AppState } from "../types";
import { LibraryData, ImportedDataState } from "./types";
import { calculateScrollCenter } from "../scene";
import { MIME_TYPES } from "../constants";
import { CanvasError } from "../errors";
export const parseFileContents = async (blob: Blob | File) => {
let contents: string;
@ -109,3 +110,25 @@ export const loadLibraryFromBlob = async (blob: Blob) => {
}
return data;
};
export const canvasToBlob = async (
canvas: HTMLCanvasElement,
): Promise<Blob> => {
return new Promise((resolve, reject) => {
try {
canvas.toBlob((blob) => {
if (!blob) {
return reject(
new CanvasError(
t("canvasError.canvasTooBig"),
"CANVAS_POSSIBLY_TOO_BIG",
),
);
}
resolve(blob);
});
} catch (error) {
reject(error);
}
});
};