feat: support adding multiple library items on canvas (#5116)

This commit is contained in:
David Luzar 2022-05-11 15:51:02 +02:00 committed by GitHub
parent cad6097d60
commit d2cc76e52e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 275 additions and 34 deletions

View file

@ -191,12 +191,11 @@ export const loadFromBlob = async (
return ret.data;
};
export const loadLibraryFromBlob = async (
blob: Blob,
export const parseLibraryJSON = (
json: string,
defaultStatus: LibraryItem["status"] = "unpublished",
) => {
const contents = await parseFileContents(blob);
const data: ImportedLibraryData | undefined = JSON.parse(contents);
const data: ImportedLibraryData | undefined = JSON.parse(json);
if (!isValidLibrary(data)) {
throw new Error("Invalid library");
}
@ -204,6 +203,13 @@ export const loadLibraryFromBlob = async (
return restoreLibraryItems(libraryItems, defaultStatus);
};
export const loadLibraryFromBlob = async (
blob: Blob,
defaultStatus: LibraryItem["status"] = "unpublished",
) => {
return parseLibraryJSON(await parseFileContents(blob), defaultStatus);
};
export const canvasToBlob = async (
canvas: HTMLCanvasElement,
): Promise<Blob> => {