Skip to content

Commit 29b4b59

Browse files
committed
fix: vue composable type
1 parent 9e067cf commit 29b4b59

File tree

5 files changed

+48
-6
lines changed

5 files changed

+48
-6
lines changed

packages/vue/src/index.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ import { type ComputedRef, type MaybeRefOrGetter, computed, onMounted, ref, toVa
33

44
export type BackmojiResult = ReturnType<typeof backmoji>;
55

6-
export function useBackmoji(renderer: MaybeRefOrGetter<Renderer>, canvas: MaybeRefOrGetter<HTMLCanvasElement | undefined>, options?: MaybeRefOrGetter<Omit<BackmojiOptions, "canvas"> | undefined>) {
6+
export function useBackmoji(renderer: MaybeRefOrGetter<Renderer | undefined>, canvas: MaybeRefOrGetter<HTMLCanvasElement | undefined>, options?: MaybeRefOrGetter<Omit<BackmojiOptions, "canvas"> | undefined>) {
77
return computed(() => {
88
const _renderer = toValue(renderer);
99
const _options = toValue(options);
1010
const _canvas = toValue(canvas);
11-
if (!_canvas) {
11+
if (!_canvas || !_renderer) {
1212
return undefined;
1313
}
1414
return backmoji(_renderer, {
@@ -48,6 +48,9 @@ export function useImageRenderer(image: MaybeRefOrGetter<HTMLImageElement | unde
4848
return computed(() => {
4949
const _image = toValue(image);
5050
const _options = toValue(options);
51+
if (!_image) {
52+
return undefined;
53+
}
5154
return createImageRenderer(_image, _options);
5255
});
5356
}

playground/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"@backmoji/vue": "workspace:*",
2020
"@types/react": "^18.2.73",
2121
"@types/react-dom": "^18.2.23",
22+
"@vueuse/core": "^10.9.0",
2223
"ahooks": "^3.7.10",
2324
"astro": "^4.5.12",
2425
"react": "^18.2.0",

playground/src/demos/WithReact.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export function WithReact() {
3535
}, [canvas]);
3636

3737
return (
38-
<div ref={divRef}>
38+
<div ref={divRef} className="rounded-md bg-orange-50">
3939
<canvas ref={canvasRef}></canvas>
4040
</div>
4141
);

playground/src/demos/WithVue.vue

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
import { ref, watchEffect } from "vue";
33
import { useBackmoji, useImageLoader, useImageRenderer, useTextRenderer } from "@backmoji/vue";
44
import VueLogo from "/vue.svg?url";
5+
import { useElementSize } from "@vueuse/core";
6+
7+
const divRef = ref<HTMLDivElement>();
8+
const { width, height } = useElementSize(divRef);
59
610
const canvasRef = ref<HTMLCanvasElement>();
711
const image = useImageLoader(VueLogo);
@@ -12,11 +16,14 @@ const backmojiResult = useBackmoji(renderer, canvasRef, {
1216
});
1317
watchEffect(() => {
1418
if (backmojiResult.value) {
19+
backmojiResult.value.setSize(width.value, height.value);
1520
backmojiResult.value.render();
1621
}
1722
});
1823
</script>
1924

2025
<template>
21-
<canvas ref="canvasRef"></canvas>
26+
<div ref="divRef" class="rounded-md bg-orange-50">
27+
<canvas ref="canvasRef"></canvas>
28+
</div>
2229
</template>

pnpm-lock.yaml

Lines changed: 33 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)