@shopify/react-native-skia 1.9.1 → 1.10.0
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/commonjs/index.d.ts +1 -1
- package/lib/commonjs/index.js +8 -8
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/renderer/Canvas.d.ts +9 -10
- package/lib/commonjs/renderer/Canvas.js +67 -59
- package/lib/commonjs/renderer/Canvas.js.map +1 -1
- package/lib/commonjs/renderer/CanvasOld.d.ts +11 -0
- package/lib/commonjs/renderer/CanvasOld.js +96 -0
- package/lib/commonjs/renderer/CanvasOld.js.map +1 -0
- package/lib/commonjs/sksg/Container.js +11 -6
- package/lib/commonjs/sksg/Container.js.map +1 -1
- package/lib/commonjs/sksg/HostConfig2.d.ts +19 -0
- package/lib/commonjs/sksg/HostConfig2.js +159 -0
- package/lib/commonjs/sksg/HostConfig2.js.map +1 -0
- package/lib/commonjs/sksg/Recorder/Core.js +1 -0
- package/lib/commonjs/sksg/Recorder/Core.js.map +1 -1
- package/lib/commonjs/sksg/Recorder/Player.js +2 -2
- package/lib/commonjs/sksg/Recorder/Player.js.map +1 -1
- package/lib/commonjs/sksg/Recorder/Recorder.js +0 -1
- package/lib/commonjs/sksg/Recorder/Recorder.js.map +1 -1
- package/lib/module/index.d.ts +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/renderer/Canvas.d.ts +9 -10
- package/lib/module/renderer/Canvas.js +65 -55
- package/lib/module/renderer/Canvas.js.map +1 -1
- package/lib/module/renderer/CanvasOld.d.ts +11 -0
- package/lib/module/renderer/CanvasOld.js +87 -0
- package/lib/module/renderer/CanvasOld.js.map +1 -0
- package/lib/module/sksg/Container.js +11 -6
- package/lib/module/sksg/Container.js.map +1 -1
- package/lib/module/sksg/HostConfig2.d.ts +19 -0
- package/lib/module/sksg/HostConfig2.js +152 -0
- package/lib/module/sksg/HostConfig2.js.map +1 -0
- package/lib/module/sksg/Recorder/Core.js +1 -0
- package/lib/module/sksg/Recorder/Core.js.map +1 -1
- package/lib/module/sksg/Recorder/Player.js +2 -2
- package/lib/module/sksg/Recorder/Player.js.map +1 -1
- package/lib/module/sksg/Recorder/Recorder.js +0 -1
- package/lib/module/sksg/Recorder/Recorder.js.map +1 -1
- package/lib/typescript/lib/commonjs/renderer/Canvas.d.ts +2 -2
- package/lib/typescript/lib/commonjs/renderer/CanvasOld.d.ts +3 -0
- package/lib/typescript/lib/commonjs/sksg/HostConfig2.d.ts +44 -0
- package/lib/typescript/lib/module/index.d.ts +1 -1
- package/lib/typescript/lib/module/renderer/Canvas.d.ts +1 -3
- package/lib/typescript/lib/module/renderer/CanvasOld.d.ts +3 -0
- package/lib/typescript/lib/module/sksg/HostConfig2.d.ts +43 -0
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/renderer/Canvas.d.ts +9 -10
- package/lib/typescript/src/renderer/CanvasOld.d.ts +11 -0
- package/lib/typescript/src/sksg/HostConfig2.d.ts +19 -0
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/renderer/Canvas.tsx +80 -78
- package/src/renderer/CanvasOld.tsx +126 -0
- package/src/sksg/Container.ts +6 -2
- package/src/sksg/HostConfig2.ts +247 -0
- package/src/sksg/Recorder/Core.ts +1 -0
- package/src/sksg/Recorder/Player.ts +2 -2
- package/src/sksg/Recorder/Recorder.ts +0 -1
- package/lib/commonjs/renderer/Canvas2.d.ts +0 -10
- package/lib/commonjs/renderer/Canvas2.js +0 -104
- package/lib/commonjs/renderer/Canvas2.js.map +0 -1
- package/lib/commonjs/renderer/Canvas2.web.d.ts +0 -3
- package/lib/commonjs/renderer/Canvas2.web.js +0 -9
- package/lib/commonjs/renderer/Canvas2.web.js.map +0 -1
- package/lib/module/renderer/Canvas2.d.ts +0 -10
- package/lib/module/renderer/Canvas2.js +0 -97
- package/lib/module/renderer/Canvas2.js.map +0 -1
- package/lib/module/renderer/Canvas2.web.d.ts +0 -3
- package/lib/module/renderer/Canvas2.web.js +0 -3
- package/lib/module/renderer/Canvas2.web.js.map +0 -1
- package/lib/typescript/lib/commonjs/renderer/Canvas2.d.ts +0 -3
- package/lib/typescript/lib/commonjs/renderer/Canvas2.web.d.ts +0 -2
- package/lib/typescript/lib/module/renderer/Canvas2.d.ts +0 -1
- package/lib/typescript/lib/module/renderer/Canvas2.web.d.ts +0 -1
- package/lib/typescript/src/renderer/Canvas2.d.ts +0 -10
- package/lib/typescript/src/renderer/Canvas2.web.d.ts +0 -3
- package/src/renderer/Canvas2.tsx +0 -128
- package/src/renderer/Canvas2.web.tsx +0 -6
package/src/renderer/Canvas2.tsx
DELETED
@@ -1,128 +0,0 @@
|
|
1
|
-
import {
|
2
|
-
forwardRef,
|
3
|
-
useCallback,
|
4
|
-
useEffect,
|
5
|
-
useImperativeHandle,
|
6
|
-
useMemo,
|
7
|
-
useRef,
|
8
|
-
} from "react";
|
9
|
-
import type { LayoutChangeEvent, ViewProps } from "react-native";
|
10
|
-
import type { SharedValue } from "react-native-reanimated";
|
11
|
-
|
12
|
-
import { SkiaViewNativeId } from "../views/SkiaViewNativeId";
|
13
|
-
import SkiaPictureViewNativeComponent from "../specs/SkiaPictureViewNativeComponent";
|
14
|
-
import type { SkRect, SkSize } from "../skia/types";
|
15
|
-
import { SkiaSGRoot } from "../sksg/Reconciler";
|
16
|
-
import { Skia } from "../skia";
|
17
|
-
import type { SkiaBaseViewProps } from "../views";
|
18
|
-
|
19
|
-
const NativeSkiaPictureView = SkiaPictureViewNativeComponent;
|
20
|
-
|
21
|
-
// TODO: no need to go through the JS thread for this
|
22
|
-
const useOnSizeEvent = (
|
23
|
-
resultValue: SkiaBaseViewProps["onSize"],
|
24
|
-
onLayout?: (event: LayoutChangeEvent) => void
|
25
|
-
) => {
|
26
|
-
return useCallback(
|
27
|
-
(event: LayoutChangeEvent) => {
|
28
|
-
if (onLayout) {
|
29
|
-
onLayout(event);
|
30
|
-
}
|
31
|
-
const { width, height } = event.nativeEvent.layout;
|
32
|
-
|
33
|
-
if (resultValue) {
|
34
|
-
resultValue.value = { width, height };
|
35
|
-
}
|
36
|
-
},
|
37
|
-
[onLayout, resultValue]
|
38
|
-
);
|
39
|
-
};
|
40
|
-
|
41
|
-
export interface Canvas2Props extends ViewProps {
|
42
|
-
debug?: boolean;
|
43
|
-
opaque?: boolean;
|
44
|
-
onSize?: SharedValue<SkSize>;
|
45
|
-
mode?: "continuous" | "default";
|
46
|
-
}
|
47
|
-
|
48
|
-
export const Canvas2 = forwardRef(
|
49
|
-
(
|
50
|
-
{
|
51
|
-
mode,
|
52
|
-
debug,
|
53
|
-
opaque,
|
54
|
-
children,
|
55
|
-
onSize,
|
56
|
-
onLayout: _onLayout,
|
57
|
-
...viewProps
|
58
|
-
}: Canvas2Props,
|
59
|
-
ref
|
60
|
-
) => {
|
61
|
-
const rafId = useRef<number | null>(null);
|
62
|
-
const onLayout = useOnSizeEvent(onSize, _onLayout);
|
63
|
-
// Native ID
|
64
|
-
const nativeId = useMemo(() => {
|
65
|
-
return SkiaViewNativeId.current++;
|
66
|
-
}, []);
|
67
|
-
|
68
|
-
// Root
|
69
|
-
const root = useMemo(() => new SkiaSGRoot(Skia, nativeId), [nativeId]);
|
70
|
-
|
71
|
-
// Render effects
|
72
|
-
useEffect(() => {
|
73
|
-
root.render(children);
|
74
|
-
}, [children, root]);
|
75
|
-
|
76
|
-
useEffect(() => {
|
77
|
-
return () => {
|
78
|
-
root.unmount();
|
79
|
-
};
|
80
|
-
}, [root]);
|
81
|
-
|
82
|
-
const requestRedraw = useCallback(() => {
|
83
|
-
rafId.current = requestAnimationFrame(() => {
|
84
|
-
root.render(children);
|
85
|
-
if (mode === "continuous") {
|
86
|
-
requestRedraw();
|
87
|
-
}
|
88
|
-
});
|
89
|
-
}, [children, mode, root]);
|
90
|
-
|
91
|
-
useEffect(() => {
|
92
|
-
if (mode === "continuous") {
|
93
|
-
requestRedraw();
|
94
|
-
}
|
95
|
-
return () => {
|
96
|
-
if (rafId.current !== null) {
|
97
|
-
cancelAnimationFrame(rafId.current);
|
98
|
-
}
|
99
|
-
};
|
100
|
-
}, [mode, requestRedraw]);
|
101
|
-
|
102
|
-
// Component methods
|
103
|
-
useImperativeHandle(ref, () => ({
|
104
|
-
makeImageSnapshot: (rect?: SkRect) => {
|
105
|
-
return SkiaViewApi.makeImageSnapshot(nativeId, rect);
|
106
|
-
},
|
107
|
-
makeImageSnapshotAsync: (rect?: SkRect) => {
|
108
|
-
return SkiaViewApi.makeImageSnapshotAsync(nativeId, rect);
|
109
|
-
},
|
110
|
-
redraw: () => {
|
111
|
-
SkiaViewApi.requestRedraw(nativeId);
|
112
|
-
},
|
113
|
-
getNativeId: () => {
|
114
|
-
return nativeId;
|
115
|
-
},
|
116
|
-
}));
|
117
|
-
return (
|
118
|
-
<NativeSkiaPictureView
|
119
|
-
collapsable={false}
|
120
|
-
nativeID={`${nativeId}`}
|
121
|
-
debug={debug}
|
122
|
-
opaque={opaque}
|
123
|
-
onLayout={onLayout}
|
124
|
-
{...viewProps}
|
125
|
-
/>
|
126
|
-
);
|
127
|
-
}
|
128
|
-
);
|