@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.
Files changed (80) hide show
  1. package/lib/commonjs/index.d.ts +1 -1
  2. package/lib/commonjs/index.js +8 -8
  3. package/lib/commonjs/index.js.map +1 -1
  4. package/lib/commonjs/renderer/Canvas.d.ts +9 -10
  5. package/lib/commonjs/renderer/Canvas.js +67 -59
  6. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  7. package/lib/commonjs/renderer/CanvasOld.d.ts +11 -0
  8. package/lib/commonjs/renderer/CanvasOld.js +96 -0
  9. package/lib/commonjs/renderer/CanvasOld.js.map +1 -0
  10. package/lib/commonjs/sksg/Container.js +11 -6
  11. package/lib/commonjs/sksg/Container.js.map +1 -1
  12. package/lib/commonjs/sksg/HostConfig2.d.ts +19 -0
  13. package/lib/commonjs/sksg/HostConfig2.js +159 -0
  14. package/lib/commonjs/sksg/HostConfig2.js.map +1 -0
  15. package/lib/commonjs/sksg/Recorder/Core.js +1 -0
  16. package/lib/commonjs/sksg/Recorder/Core.js.map +1 -1
  17. package/lib/commonjs/sksg/Recorder/Player.js +2 -2
  18. package/lib/commonjs/sksg/Recorder/Player.js.map +1 -1
  19. package/lib/commonjs/sksg/Recorder/Recorder.js +0 -1
  20. package/lib/commonjs/sksg/Recorder/Recorder.js.map +1 -1
  21. package/lib/module/index.d.ts +1 -1
  22. package/lib/module/index.js +1 -1
  23. package/lib/module/index.js.map +1 -1
  24. package/lib/module/renderer/Canvas.d.ts +9 -10
  25. package/lib/module/renderer/Canvas.js +65 -55
  26. package/lib/module/renderer/Canvas.js.map +1 -1
  27. package/lib/module/renderer/CanvasOld.d.ts +11 -0
  28. package/lib/module/renderer/CanvasOld.js +87 -0
  29. package/lib/module/renderer/CanvasOld.js.map +1 -0
  30. package/lib/module/sksg/Container.js +11 -6
  31. package/lib/module/sksg/Container.js.map +1 -1
  32. package/lib/module/sksg/HostConfig2.d.ts +19 -0
  33. package/lib/module/sksg/HostConfig2.js +152 -0
  34. package/lib/module/sksg/HostConfig2.js.map +1 -0
  35. package/lib/module/sksg/Recorder/Core.js +1 -0
  36. package/lib/module/sksg/Recorder/Core.js.map +1 -1
  37. package/lib/module/sksg/Recorder/Player.js +2 -2
  38. package/lib/module/sksg/Recorder/Player.js.map +1 -1
  39. package/lib/module/sksg/Recorder/Recorder.js +0 -1
  40. package/lib/module/sksg/Recorder/Recorder.js.map +1 -1
  41. package/lib/typescript/lib/commonjs/renderer/Canvas.d.ts +2 -2
  42. package/lib/typescript/lib/commonjs/renderer/CanvasOld.d.ts +3 -0
  43. package/lib/typescript/lib/commonjs/sksg/HostConfig2.d.ts +44 -0
  44. package/lib/typescript/lib/module/index.d.ts +1 -1
  45. package/lib/typescript/lib/module/renderer/Canvas.d.ts +1 -3
  46. package/lib/typescript/lib/module/renderer/CanvasOld.d.ts +3 -0
  47. package/lib/typescript/lib/module/sksg/HostConfig2.d.ts +43 -0
  48. package/lib/typescript/src/index.d.ts +1 -1
  49. package/lib/typescript/src/renderer/Canvas.d.ts +9 -10
  50. package/lib/typescript/src/renderer/CanvasOld.d.ts +11 -0
  51. package/lib/typescript/src/sksg/HostConfig2.d.ts +19 -0
  52. package/package.json +1 -1
  53. package/src/index.ts +1 -1
  54. package/src/renderer/Canvas.tsx +80 -78
  55. package/src/renderer/CanvasOld.tsx +126 -0
  56. package/src/sksg/Container.ts +6 -2
  57. package/src/sksg/HostConfig2.ts +247 -0
  58. package/src/sksg/Recorder/Core.ts +1 -0
  59. package/src/sksg/Recorder/Player.ts +2 -2
  60. package/src/sksg/Recorder/Recorder.ts +0 -1
  61. package/lib/commonjs/renderer/Canvas2.d.ts +0 -10
  62. package/lib/commonjs/renderer/Canvas2.js +0 -104
  63. package/lib/commonjs/renderer/Canvas2.js.map +0 -1
  64. package/lib/commonjs/renderer/Canvas2.web.d.ts +0 -3
  65. package/lib/commonjs/renderer/Canvas2.web.js +0 -9
  66. package/lib/commonjs/renderer/Canvas2.web.js.map +0 -1
  67. package/lib/module/renderer/Canvas2.d.ts +0 -10
  68. package/lib/module/renderer/Canvas2.js +0 -97
  69. package/lib/module/renderer/Canvas2.js.map +0 -1
  70. package/lib/module/renderer/Canvas2.web.d.ts +0 -3
  71. package/lib/module/renderer/Canvas2.web.js +0 -3
  72. package/lib/module/renderer/Canvas2.web.js.map +0 -1
  73. package/lib/typescript/lib/commonjs/renderer/Canvas2.d.ts +0 -3
  74. package/lib/typescript/lib/commonjs/renderer/Canvas2.web.d.ts +0 -2
  75. package/lib/typescript/lib/module/renderer/Canvas2.d.ts +0 -1
  76. package/lib/typescript/lib/module/renderer/Canvas2.web.d.ts +0 -1
  77. package/lib/typescript/src/renderer/Canvas2.d.ts +0 -10
  78. package/lib/typescript/src/renderer/Canvas2.web.d.ts +0 -3
  79. package/src/renderer/Canvas2.tsx +0 -128
  80. package/src/renderer/Canvas2.web.tsx +0 -6
@@ -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
- );
@@ -1,6 +0,0 @@
1
- import type { CanvasProps } from "./Canvas";
2
- import { Canvas } from "./Canvas";
3
-
4
- export type Canvas2Props = CanvasProps;
5
-
6
- export const Canvas2 = Canvas;