diff --git a/projects/kit/package.json b/projects/kit/package.json index 1c82ed5..6f8e8ca 100644 --- a/projects/kit/package.json +++ b/projects/kit/package.json @@ -18,6 +18,13 @@ "dom-to-image-more": "^3.0.0", "rxjs": "^7.8.0" }, + "peerDependenciesMeta": { + "@capacitor/preferences": { "optional": true }, + "@capacitor/status-bar": { "optional": true }, + "@capacitor-community/in-app-review": { "optional": true }, + "@rdlabo/capacitor-brotherprint": { "optional": true }, + "dom-to-image-more": { "optional": true } + }, "dependencies": { "tslib": "^2.3.0" }, diff --git a/projects/kit/src/lib/printer/kit-printer.ts b/projects/kit/src/lib/printer/kit-printer.ts index 51d3430..af51a7d 100644 --- a/projects/kit/src/lib/printer/kit-printer.ts +++ b/projects/kit/src/lib/printer/kit-printer.ts @@ -27,12 +27,11 @@ export const kitRotationImage = async (imageData: string): Promise => { const imgType = imageData.substring(5, imageData.indexOf(';')); const image = new Image(); - const loaded = () => - new Promise((resolve) => { - image.onload = () => resolve(); - }); - setTimeout(() => (image.src = imageData)); - await loaded(); + const loaded = new Promise((resolve) => { + image.onload = () => resolve(); + }); + image.src = imageData; + await loaded; const canvas = document.createElement('canvas'); const ctx = canvas.getContext('2d'); @@ -86,23 +85,19 @@ export const kitDomToPng = async (element: HTMLElement, options?: KitDomToPngOpt // iOS: ないと下が途切れる。Android: あると黒線が入る。 const addClient = Capacitor.getPlatform() === 'ios' ? 2 : 0; - const dataUrl: string = await new Promise((resolve) => { - void (async () => { - for (let i = 0; i < 10; i++) { - const url = await domtoimage.toPng(element, { - width: clientWidth + addClient, - height: clientHeight + addClient, - scale: options?.scale ?? 3, - copyDefaultStyles: false, - }); - if (url) { - resolve(url); - return; - } - } - resolve(''); - })(); - }); + let dataUrl = ''; + for (let i = 0; i < 10; i++) { + const url = await domtoimage.toPng(element, { + width: clientWidth + addClient, + height: clientHeight + addClient, + scale: options?.scale ?? 3, + copyDefaultStyles: false, + }); + if (url) { + dataUrl = url; + break; + } + } return options?.rotate ? kitRotationImage(dataUrl) : dataUrl; }; diff --git a/projects/kit/src/lib/utils/ionic-scroll-event.ts b/projects/kit/src/lib/utils/ionic-scroll-event.ts index f7806a4..c8a1699 100644 --- a/projects/kit/src/lib/utils/ionic-scroll-event.ts +++ b/projects/kit/src/lib/utils/ionic-scroll-event.ts @@ -21,10 +21,8 @@ export const kitChangeEventDisabled = ( completeEvent: WritableSignal, disabled: boolean, ): void => { - completeEvent.update((event) => { - if (event) { - event.disabled = disabled; - } - return event; - }); + const event = completeEvent(); + if (event) { + event.disabled = disabled; + } };