feat: embed scene support for png export in npm package (#5047)

* feat: embed scene support for png export in npm package

* move logic to the callback function

* add exportEmbedScene checkbox in package example

* update readme and changelog

* add PR link in changelog

* reverse sort changelog items
This commit is contained in:
Achille Lacoin 2022-04-16 16:30:11 +02:00 committed by GitHub
parent 52d10bb41e
commit 3840e2f4e6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 32 additions and 3 deletions

View file

@ -8,6 +8,8 @@ import { ExcalidrawElement, NonDeleted } from "../element/types";
import { getNonDeletedElements } from "../element";
import { restore } from "../data/restore";
import { MIME_TYPES } from "../constants";
import { encodePngMetadata } from "../data/image";
import { serializeAsJSON } from "../data/json";
type ExportOpts = {
elements: readonly NonDeleted<ExcalidrawElement>[];
@ -107,7 +109,22 @@ export const exportToBlob = async (
return new Promise((resolve) => {
canvas.toBlob(
(blob: Blob | null) => {
async (blob: Blob | null) => {
if (
blob &&
mimeType === MIME_TYPES.png &&
opts.appState?.exportEmbedScene
) {
blob = await encodePngMetadata({
blob,
metadata: serializeAsJSON(
opts.elements,
opts.appState,
opts.files || {},
"local",
),
});
}
resolve(blob);
},
mimeType,