@shopify/react-native-skia 1.11.4 → 1.11.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. package/android/CMakeLists.txt +0 -1
  2. package/cpp/api/JsiSkParagraph.h +1 -3
  3. package/cpp/api/recorder/Convertor.h +57 -9
  4. package/cpp/api/recorder/Drawings.h +11 -36
  5. package/cpp/jsi/ViewProperty.h +1 -3
  6. package/lib/commonjs/animation/functions/interpolateColors.d.ts +1 -1
  7. package/lib/commonjs/dom/nodes/datatypes/Gradient.d.ts +2 -2
  8. package/lib/commonjs/dom/types/NodeType.js +8 -0
  9. package/lib/commonjs/dom/types/NodeType.js.map +1 -1
  10. package/lib/commonjs/external/reanimated/buffers.d.ts +1 -1
  11. package/lib/commonjs/renderer/__tests__/setup.d.ts +1 -1
  12. package/lib/commonjs/skia/types/Image/ColorType.js +20 -2
  13. package/lib/commonjs/skia/types/Image/ColorType.js.map +1 -1
  14. package/lib/commonjs/skia/types/Image/ColorType.web.js +18 -2
  15. package/lib/commonjs/skia/types/Image/ColorType.web.js.map +1 -1
  16. package/lib/commonjs/skia/types/ImageFilter/ImageFilter.js +14 -0
  17. package/lib/commonjs/skia/types/ImageFilter/ImageFilter.js.map +1 -1
  18. package/lib/commonjs/skia/types/MaskFilter.js +5 -2
  19. package/lib/commonjs/skia/types/MaskFilter.js.map +1 -1
  20. package/lib/commonjs/skia/types/Paint/BlendMode.js +31 -2
  21. package/lib/commonjs/skia/types/Paint/BlendMode.js.map +1 -1
  22. package/lib/commonjs/skia/types/Paragraph/ParagraphBuilder.js +14 -0
  23. package/lib/commonjs/skia/types/Paragraph/ParagraphBuilder.js.map +1 -1
  24. package/lib/commonjs/skia/types/Path/Path.js +4 -0
  25. package/lib/commonjs/skia/types/Path/Path.js.map +1 -1
  26. package/lib/commonjs/skia/web/JsiSkCanvas.d.ts +1 -1
  27. package/lib/commonjs/skia/web/JsiSkImage.d.ts +2 -2
  28. package/lib/commonjs/skia/web/JsiSkPaint.d.ts +1 -1
  29. package/lib/commonjs/skia/web/JsiSkPicture.d.ts +1 -1
  30. package/lib/commonjs/skia/web/JsiSkPoint.d.ts +1 -1
  31. package/lib/commonjs/skia/web/JsiSkRRect.d.ts +1 -1
  32. package/lib/commonjs/skia/web/JsiSkRSXform.d.ts +1 -1
  33. package/lib/commonjs/skia/web/JsiSkRect.d.ts +1 -1
  34. package/lib/commonjs/sksg/Container.d.ts +1 -0
  35. package/lib/commonjs/sksg/Container.js +8 -9
  36. package/lib/commonjs/sksg/Container.js.map +1 -1
  37. package/lib/commonjs/sksg/Recorder/Core.js +2 -0
  38. package/lib/commonjs/sksg/Recorder/Core.js.map +1 -1
  39. package/lib/commonjs/specs/NativeSkiaModule.web.d.ts +6 -0
  40. package/lib/commonjs/specs/NativeSkiaModule.web.js +33 -0
  41. package/lib/commonjs/specs/NativeSkiaModule.web.js.map +1 -1
  42. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.web.d.ts +9 -0
  43. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.web.js +32 -0
  44. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.web.js.map +1 -0
  45. package/lib/commonjs/views/types.d.ts +1 -0
  46. package/lib/commonjs/views/types.js.map +1 -1
  47. package/lib/commonjs/web/LoadSkiaWeb.js +1 -2
  48. package/lib/commonjs/web/LoadSkiaWeb.js.map +1 -1
  49. package/lib/module/animation/functions/interpolateColors.d.ts +1 -1
  50. package/lib/module/dom/nodes/datatypes/Gradient.d.ts +2 -2
  51. package/lib/module/dom/types/NodeType.js +8 -0
  52. package/lib/module/dom/types/NodeType.js.map +1 -1
  53. package/lib/module/external/reanimated/buffers.d.ts +1 -1
  54. package/lib/module/renderer/__tests__/setup.d.ts +1 -1
  55. package/lib/module/skia/types/Image/ColorType.js +20 -2
  56. package/lib/module/skia/types/Image/ColorType.js.map +1 -1
  57. package/lib/module/skia/types/Image/ColorType.web.js +18 -2
  58. package/lib/module/skia/types/Image/ColorType.web.js.map +1 -1
  59. package/lib/module/skia/types/ImageFilter/ImageFilter.js +14 -0
  60. package/lib/module/skia/types/ImageFilter/ImageFilter.js.map +1 -1
  61. package/lib/module/skia/types/MaskFilter.js +5 -2
  62. package/lib/module/skia/types/MaskFilter.js.map +1 -1
  63. package/lib/module/skia/types/Paint/BlendMode.js +31 -2
  64. package/lib/module/skia/types/Paint/BlendMode.js.map +1 -1
  65. package/lib/module/skia/types/Paragraph/ParagraphBuilder.js +14 -0
  66. package/lib/module/skia/types/Paragraph/ParagraphBuilder.js.map +1 -1
  67. package/lib/module/skia/types/Path/Path.js +4 -0
  68. package/lib/module/skia/types/Path/Path.js.map +1 -1
  69. package/lib/module/skia/web/JsiSkCanvas.d.ts +1 -1
  70. package/lib/module/skia/web/JsiSkImage.d.ts +2 -2
  71. package/lib/module/skia/web/JsiSkPaint.d.ts +1 -1
  72. package/lib/module/skia/web/JsiSkPicture.d.ts +1 -1
  73. package/lib/module/skia/web/JsiSkPoint.d.ts +1 -1
  74. package/lib/module/skia/web/JsiSkRRect.d.ts +1 -1
  75. package/lib/module/skia/web/JsiSkRSXform.d.ts +1 -1
  76. package/lib/module/skia/web/JsiSkRect.d.ts +1 -1
  77. package/lib/module/sksg/Container.d.ts +1 -0
  78. package/lib/module/sksg/Container.js +8 -9
  79. package/lib/module/sksg/Container.js.map +1 -1
  80. package/lib/module/sksg/Recorder/Core.js +2 -0
  81. package/lib/module/sksg/Recorder/Core.js.map +1 -1
  82. package/lib/module/specs/NativeSkiaModule.web.d.ts +6 -0
  83. package/lib/module/specs/NativeSkiaModule.web.js +30 -1
  84. package/lib/module/specs/NativeSkiaModule.web.js.map +1 -1
  85. package/lib/module/specs/SkiaPictureViewNativeComponent.web.d.ts +9 -0
  86. package/lib/module/specs/SkiaPictureViewNativeComponent.web.js +26 -0
  87. package/lib/module/specs/SkiaPictureViewNativeComponent.web.js.map +1 -0
  88. package/lib/module/views/types.d.ts +1 -0
  89. package/lib/module/views/types.js.map +1 -1
  90. package/lib/typescript/lib/commonjs/animation/functions/interpolateColors.d.ts +1 -1
  91. package/lib/typescript/lib/commonjs/renderer/components/image/ImageShader.d.ts +1 -1
  92. package/lib/typescript/lib/commonjs/skia/web/JsiSkColor.d.ts +1 -1
  93. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -1
  94. package/lib/typescript/lib/commonjs/specs/NativeSkiaModule.web.d.ts +1 -0
  95. package/lib/typescript/lib/commonjs/specs/SkiaPictureViewNativeComponent.web.d.ts +10 -0
  96. package/lib/typescript/lib/module/animation/functions/interpolateColors.d.ts +1 -1
  97. package/lib/typescript/lib/module/mock/index.d.ts +2 -2
  98. package/lib/typescript/lib/module/renderer/components/image/ImageShader.d.ts +1 -1
  99. package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -1
  100. package/lib/typescript/lib/module/skia/web/JsiSkColor.d.ts +1 -1
  101. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -1
  102. package/lib/typescript/lib/module/specs/NativeSkiaModule.web.d.ts +1 -0
  103. package/lib/typescript/lib/module/specs/SkiaPictureViewNativeComponent.web.d.ts +9 -0
  104. package/lib/typescript/src/animation/functions/interpolateColors.d.ts +1 -1
  105. package/lib/typescript/src/dom/nodes/datatypes/Gradient.d.ts +2 -2
  106. package/lib/typescript/src/external/reanimated/buffers.d.ts +1 -1
  107. package/lib/typescript/src/renderer/__tests__/setup.d.ts +1 -1
  108. package/lib/typescript/src/skia/web/JsiSkCanvas.d.ts +1 -1
  109. package/lib/typescript/src/skia/web/JsiSkImage.d.ts +2 -2
  110. package/lib/typescript/src/skia/web/JsiSkPaint.d.ts +1 -1
  111. package/lib/typescript/src/skia/web/JsiSkPicture.d.ts +1 -1
  112. package/lib/typescript/src/skia/web/JsiSkPoint.d.ts +1 -1
  113. package/lib/typescript/src/skia/web/JsiSkRRect.d.ts +1 -1
  114. package/lib/typescript/src/skia/web/JsiSkRSXform.d.ts +1 -1
  115. package/lib/typescript/src/skia/web/JsiSkRect.d.ts +1 -1
  116. package/lib/typescript/src/sksg/Container.d.ts +1 -0
  117. package/lib/typescript/src/specs/NativeSkiaModule.web.d.ts +6 -0
  118. package/lib/typescript/src/specs/SkiaPictureViewNativeComponent.web.d.ts +9 -0
  119. package/lib/typescript/src/views/types.d.ts +1 -0
  120. package/package.json +1 -1
  121. package/src/sksg/Container.ts +8 -8
  122. package/src/specs/NativeSkiaModule.web.ts +38 -0
  123. package/src/specs/SkiaPictureViewNativeComponent.web.ts +39 -0
  124. package/src/views/types.ts +1 -0
  125. package/cpp/jsi/JsiValue.cpp +0 -345
  126. package/cpp/jsi/JsiValue.h +0 -222
  127. package/lib/commonjs/renderer/Canvas.web.d.ts +0 -10
  128. package/lib/commonjs/renderer/Canvas.web.js +0 -110
  129. package/lib/commonjs/renderer/Canvas.web.js.map +0 -1
  130. package/lib/module/renderer/Canvas.web.d.ts +0 -10
  131. package/lib/module/renderer/Canvas.web.js +0 -105
  132. package/lib/module/renderer/Canvas.web.js.map +0 -1
  133. package/lib/typescript/lib/commonjs/renderer/Canvas.web.d.ts +0 -3
  134. package/lib/typescript/lib/module/renderer/Canvas.web.d.ts +0 -1
  135. package/lib/typescript/src/renderer/Canvas.web.d.ts +0 -10
  136. package/src/renderer/Canvas.web.tsx +0 -134
@@ -1,110 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Canvas = void 0;
7
- var _react = require("react");
8
- var _SkiaViewNativeId = require("../views/SkiaViewNativeId");
9
- var _Reconciler = require("../sksg/Reconciler");
10
- var _skia = require("../skia");
11
- var _SkiaPictureView = require("../views/SkiaPictureView.web");
12
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
13
- // TODO: no need to go through the JS thread for this
14
- const useOnSizeEvent = (resultValue, onLayout) => {
15
- return (0, _react.useCallback)(event => {
16
- if (onLayout) {
17
- onLayout(event);
18
- }
19
- const {
20
- width,
21
- height
22
- } = event.nativeEvent.layout;
23
- if (resultValue) {
24
- resultValue.value = {
25
- width,
26
- height
27
- };
28
- }
29
- }, [onLayout, resultValue]);
30
- };
31
- const Canvas = exports.Canvas = /*#__PURE__*/(0, _react.forwardRef)(({
32
- mode,
33
- debug,
34
- opaque,
35
- children,
36
- onSize,
37
- onLayout: _onLayout,
38
- ...viewProps
39
- }, ref) => {
40
- const viewRef = (0, _react.useRef)(null);
41
- const rafId = (0, _react.useRef)(null);
42
- const onLayout = useOnSizeEvent(onSize, _onLayout);
43
- // Native ID
44
- const nativeId = (0, _react.useMemo)(() => {
45
- return _SkiaViewNativeId.SkiaViewNativeId.current++;
46
- }, []);
47
-
48
- // Root
49
- const root = (0, _react.useMemo)(() => new _Reconciler.SkiaSGRoot(_skia.Skia), []);
50
-
51
- // Render effects
52
- (0, _react.useEffect)(() => {
53
- root.render(children);
54
- if (viewRef.current) {
55
- viewRef.current.setPicture(root.getPicture());
56
- }
57
- }, [children, root]);
58
- (0, _react.useEffect)(() => {
59
- return () => {
60
- root.unmount();
61
- };
62
- }, [root]);
63
- const requestRedraw = (0, _react.useCallback)(() => {
64
- rafId.current = requestAnimationFrame(() => {
65
- root.render(children);
66
- if (viewRef.current) {
67
- viewRef.current.setPicture(root.getPicture());
68
- }
69
- if (mode === "continuous") {
70
- requestRedraw();
71
- }
72
- });
73
- }, [children, mode, root]);
74
- (0, _react.useEffect)(() => {
75
- if (mode === "continuous") {
76
- requestRedraw();
77
- }
78
- return () => {
79
- if (rafId.current !== null) {
80
- cancelAnimationFrame(rafId.current);
81
- }
82
- };
83
- }, [mode, requestRedraw]);
84
-
85
- // Component methods
86
- (0, _react.useImperativeHandle)(ref, () => ({
87
- makeImageSnapshot: rect => {
88
- return SkiaViewApi.makeImageSnapshot(nativeId, rect);
89
- },
90
- makeImageSnapshotAsync: rect => {
91
- return SkiaViewApi.makeImageSnapshotAsync(nativeId, rect);
92
- },
93
- redraw: () => {
94
- var _viewRef$current;
95
- (_viewRef$current = viewRef.current) === null || _viewRef$current === void 0 || _viewRef$current.redraw();
96
- },
97
- getNativeId: () => {
98
- return nativeId;
99
- }
100
- }));
101
- return /*#__PURE__*/React.createElement(_SkiaPictureView.SkiaPictureView, _extends({
102
- ref: viewRef,
103
- collapsable: false,
104
- nativeID: `${nativeId}`,
105
- debug: debug,
106
- opaque: opaque,
107
- onLayout: onLayout
108
- }, viewProps));
109
- });
110
- //# sourceMappingURL=Canvas.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_SkiaViewNativeId","_Reconciler","_skia","_SkiaPictureView","_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","useOnSizeEvent","resultValue","onLayout","useCallback","event","width","height","nativeEvent","layout","value","Canvas","exports","forwardRef","mode","debug","opaque","children","onSize","_onLayout","viewProps","ref","viewRef","useRef","rafId","nativeId","useMemo","SkiaViewNativeId","current","root","SkiaSGRoot","Skia","useEffect","render","setPicture","getPicture","unmount","requestRedraw","requestAnimationFrame","cancelAnimationFrame","useImperativeHandle","makeImageSnapshot","rect","SkiaViewApi","makeImageSnapshotAsync","redraw","_viewRef$current","getNativeId","React","createElement","SkiaPictureView","collapsable","nativeID"],"sources":["Canvas.web.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from \"react\";\nimport type { LayoutChangeEvent, ViewProps } from \"react-native\";\nimport type { SharedValue } from \"react-native-reanimated\";\n\nimport { SkiaViewNativeId } from \"../views/SkiaViewNativeId\";\nimport type { SkRect, SkSize } from \"../skia/types\";\nimport { SkiaSGRoot } from \"../sksg/Reconciler\";\nimport { Skia } from \"../skia\";\nimport type { SkiaBaseViewProps } from \"../views\";\nimport { SkiaPictureView } from \"../views/SkiaPictureView.web\";\n\n// TODO: no need to go through the JS thread for this\nconst useOnSizeEvent = (\n resultValue: SkiaBaseViewProps[\"onSize\"],\n onLayout?: (event: LayoutChangeEvent) => void\n) => {\n return useCallback(\n (event: LayoutChangeEvent) => {\n if (onLayout) {\n onLayout(event);\n }\n const { width, height } = event.nativeEvent.layout;\n\n if (resultValue) {\n resultValue.value = { width, height };\n }\n },\n [onLayout, resultValue]\n );\n};\n\nexport interface CanvasProps extends ViewProps {\n debug?: boolean;\n opaque?: boolean;\n onSize?: SharedValue<SkSize>;\n mode?: \"continuous\" | \"default\";\n}\n\nexport const Canvas = forwardRef(\n (\n {\n mode,\n debug,\n opaque,\n children,\n onSize,\n onLayout: _onLayout,\n ...viewProps\n }: CanvasProps,\n ref\n ) => {\n const viewRef = useRef<SkiaPictureView>(null);\n const rafId = useRef<number | null>(null);\n const onLayout = useOnSizeEvent(onSize, _onLayout);\n // Native ID\n const nativeId = useMemo(() => {\n return SkiaViewNativeId.current++;\n }, []);\n\n // Root\n const root = useMemo(() => new SkiaSGRoot(Skia), []);\n\n // Render effects\n useEffect(() => {\n root.render(children);\n if (viewRef.current) {\n viewRef.current.setPicture(root.getPicture());\n }\n }, [children, root]);\n\n useEffect(() => {\n return () => {\n root.unmount();\n };\n }, [root]);\n\n const requestRedraw = useCallback(() => {\n rafId.current = requestAnimationFrame(() => {\n root.render(children);\n if (viewRef.current) {\n viewRef.current.setPicture(root.getPicture());\n }\n if (mode === \"continuous\") {\n requestRedraw();\n }\n });\n }, [children, mode, root]);\n\n useEffect(() => {\n if (mode === \"continuous\") {\n requestRedraw();\n }\n return () => {\n if (rafId.current !== null) {\n cancelAnimationFrame(rafId.current);\n }\n };\n }, [mode, requestRedraw]);\n\n // Component methods\n useImperativeHandle(ref, () => ({\n makeImageSnapshot: (rect?: SkRect) => {\n return SkiaViewApi.makeImageSnapshot(nativeId, rect);\n },\n makeImageSnapshotAsync: (rect?: SkRect) => {\n return SkiaViewApi.makeImageSnapshotAsync(nativeId, rect);\n },\n redraw: () => {\n viewRef.current?.redraw();\n },\n getNativeId: () => {\n return nativeId;\n },\n }));\n return (\n <SkiaPictureView\n ref={viewRef}\n collapsable={false}\n nativeID={`${nativeId}`}\n debug={debug}\n opaque={opaque}\n onLayout={onLayout}\n {...viewProps}\n />\n );\n }\n);\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +0,0 @@
1
- import type { ViewProps } from "react-native";
2
- import type { SharedValue } from "react-native-reanimated";
3
- import type { SkSize } from "../skia/types";
4
- export interface CanvasProps extends ViewProps {
5
- debug?: boolean;
6
- opaque?: boolean;
7
- onSize?: SharedValue<SkSize>;
8
- mode?: "continuous" | "default";
9
- }
10
- export declare const Canvas: import("react").ForwardRefExoticComponent<CanvasProps & import("react").RefAttributes<unknown>>;
@@ -1,105 +0,0 @@
1
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- import { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from "react";
3
- import { SkiaViewNativeId } from "../views/SkiaViewNativeId";
4
- import { SkiaSGRoot } from "../sksg/Reconciler";
5
- import { Skia } from "../skia";
6
- import { SkiaPictureView } from "../views/SkiaPictureView.web";
7
-
8
- // TODO: no need to go through the JS thread for this
9
- const useOnSizeEvent = (resultValue, onLayout) => {
10
- return useCallback(event => {
11
- if (onLayout) {
12
- onLayout(event);
13
- }
14
- const {
15
- width,
16
- height
17
- } = event.nativeEvent.layout;
18
- if (resultValue) {
19
- resultValue.value = {
20
- width,
21
- height
22
- };
23
- }
24
- }, [onLayout, resultValue]);
25
- };
26
- export const Canvas = /*#__PURE__*/forwardRef(({
27
- mode,
28
- debug,
29
- opaque,
30
- children,
31
- onSize,
32
- onLayout: _onLayout,
33
- ...viewProps
34
- }, ref) => {
35
- const viewRef = useRef(null);
36
- const rafId = useRef(null);
37
- const onLayout = useOnSizeEvent(onSize, _onLayout);
38
- // Native ID
39
- const nativeId = useMemo(() => {
40
- return SkiaViewNativeId.current++;
41
- }, []);
42
-
43
- // Root
44
- const root = useMemo(() => new SkiaSGRoot(Skia), []);
45
-
46
- // Render effects
47
- useEffect(() => {
48
- root.render(children);
49
- if (viewRef.current) {
50
- viewRef.current.setPicture(root.getPicture());
51
- }
52
- }, [children, root]);
53
- useEffect(() => {
54
- return () => {
55
- root.unmount();
56
- };
57
- }, [root]);
58
- const requestRedraw = useCallback(() => {
59
- rafId.current = requestAnimationFrame(() => {
60
- root.render(children);
61
- if (viewRef.current) {
62
- viewRef.current.setPicture(root.getPicture());
63
- }
64
- if (mode === "continuous") {
65
- requestRedraw();
66
- }
67
- });
68
- }, [children, mode, root]);
69
- useEffect(() => {
70
- if (mode === "continuous") {
71
- requestRedraw();
72
- }
73
- return () => {
74
- if (rafId.current !== null) {
75
- cancelAnimationFrame(rafId.current);
76
- }
77
- };
78
- }, [mode, requestRedraw]);
79
-
80
- // Component methods
81
- useImperativeHandle(ref, () => ({
82
- makeImageSnapshot: rect => {
83
- return SkiaViewApi.makeImageSnapshot(nativeId, rect);
84
- },
85
- makeImageSnapshotAsync: rect => {
86
- return SkiaViewApi.makeImageSnapshotAsync(nativeId, rect);
87
- },
88
- redraw: () => {
89
- var _viewRef$current;
90
- (_viewRef$current = viewRef.current) === null || _viewRef$current === void 0 || _viewRef$current.redraw();
91
- },
92
- getNativeId: () => {
93
- return nativeId;
94
- }
95
- }));
96
- return /*#__PURE__*/React.createElement(SkiaPictureView, _extends({
97
- ref: viewRef,
98
- collapsable: false,
99
- nativeID: `${nativeId}`,
100
- debug: debug,
101
- opaque: opaque,
102
- onLayout: onLayout
103
- }, viewProps));
104
- });
105
- //# sourceMappingURL=Canvas.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","SkiaViewNativeId","SkiaSGRoot","Skia","SkiaPictureView","useOnSizeEvent","resultValue","onLayout","event","width","height","nativeEvent","layout","value","Canvas","mode","debug","opaque","children","onSize","_onLayout","viewProps","ref","viewRef","rafId","nativeId","current","root","render","setPicture","getPicture","unmount","requestRedraw","requestAnimationFrame","cancelAnimationFrame","makeImageSnapshot","rect","SkiaViewApi","makeImageSnapshotAsync","redraw","_viewRef$current","getNativeId","React","createElement","_extends","collapsable","nativeID"],"sources":["Canvas.web.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from \"react\";\nimport type { LayoutChangeEvent, ViewProps } from \"react-native\";\nimport type { SharedValue } from \"react-native-reanimated\";\n\nimport { SkiaViewNativeId } from \"../views/SkiaViewNativeId\";\nimport type { SkRect, SkSize } from \"../skia/types\";\nimport { SkiaSGRoot } from \"../sksg/Reconciler\";\nimport { Skia } from \"../skia\";\nimport type { SkiaBaseViewProps } from \"../views\";\nimport { SkiaPictureView } from \"../views/SkiaPictureView.web\";\n\n// TODO: no need to go through the JS thread for this\nconst useOnSizeEvent = (\n resultValue: SkiaBaseViewProps[\"onSize\"],\n onLayout?: (event: LayoutChangeEvent) => void\n) => {\n return useCallback(\n (event: LayoutChangeEvent) => {\n if (onLayout) {\n onLayout(event);\n }\n const { width, height } = event.nativeEvent.layout;\n\n if (resultValue) {\n resultValue.value = { width, height };\n }\n },\n [onLayout, resultValue]\n );\n};\n\nexport interface CanvasProps extends ViewProps {\n debug?: boolean;\n opaque?: boolean;\n onSize?: SharedValue<SkSize>;\n mode?: \"continuous\" | \"default\";\n}\n\nexport const Canvas = forwardRef(\n (\n {\n mode,\n debug,\n opaque,\n children,\n onSize,\n onLayout: _onLayout,\n ...viewProps\n }: CanvasProps,\n ref\n ) => {\n const viewRef = useRef<SkiaPictureView>(null);\n const rafId = useRef<number | null>(null);\n const onLayout = useOnSizeEvent(onSize, _onLayout);\n // Native ID\n const nativeId = useMemo(() => {\n return SkiaViewNativeId.current++;\n }, []);\n\n // Root\n const root = useMemo(() => new SkiaSGRoot(Skia), []);\n\n // Render effects\n useEffect(() => {\n root.render(children);\n if (viewRef.current) {\n viewRef.current.setPicture(root.getPicture());\n }\n }, [children, root]);\n\n useEffect(() => {\n return () => {\n root.unmount();\n };\n }, [root]);\n\n const requestRedraw = useCallback(() => {\n rafId.current = requestAnimationFrame(() => {\n root.render(children);\n if (viewRef.current) {\n viewRef.current.setPicture(root.getPicture());\n }\n if (mode === \"continuous\") {\n requestRedraw();\n }\n });\n }, [children, mode, root]);\n\n useEffect(() => {\n if (mode === \"continuous\") {\n requestRedraw();\n }\n return () => {\n if (rafId.current !== null) {\n cancelAnimationFrame(rafId.current);\n }\n };\n }, [mode, requestRedraw]);\n\n // Component methods\n useImperativeHandle(ref, () => ({\n makeImageSnapshot: (rect?: SkRect) => {\n return SkiaViewApi.makeImageSnapshot(nativeId, rect);\n },\n makeImageSnapshotAsync: (rect?: SkRect) => {\n return SkiaViewApi.makeImageSnapshotAsync(nativeId, rect);\n },\n redraw: () => {\n viewRef.current?.redraw();\n },\n getNativeId: () => {\n return nativeId;\n },\n }));\n return (\n <SkiaPictureView\n ref={viewRef}\n collapsable={false}\n nativeID={`${nativeId}`}\n debug={debug}\n opaque={opaque}\n onLayout={onLayout}\n {...viewProps}\n />\n );\n }\n);\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +0,0 @@
1
- export const __esModule: boolean;
2
- export const Canvas: _react.ForwardRefExoticComponent<_react.RefAttributes<any>>;
3
- import _react = require("react");
@@ -1 +0,0 @@
1
- export const Canvas: import("react").ForwardRefExoticComponent<import("react").RefAttributes<any>>;
@@ -1,10 +0,0 @@
1
- import type { ViewProps } from "react-native";
2
- import type { SharedValue } from "react-native-reanimated";
3
- import type { SkSize } from "../skia/types";
4
- export interface CanvasProps extends ViewProps {
5
- debug?: boolean;
6
- opaque?: boolean;
7
- onSize?: SharedValue<SkSize>;
8
- mode?: "continuous" | "default";
9
- }
10
- export declare const Canvas: import("react").ForwardRefExoticComponent<CanvasProps & import("react").RefAttributes<unknown>>;
@@ -1,134 +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 type { SkRect, SkSize } from "../skia/types";
14
- import { SkiaSGRoot } from "../sksg/Reconciler";
15
- import { Skia } from "../skia";
16
- import type { SkiaBaseViewProps } from "../views";
17
- import { SkiaPictureView } from "../views/SkiaPictureView.web";
18
-
19
- // TODO: no need to go through the JS thread for this
20
- const useOnSizeEvent = (
21
- resultValue: SkiaBaseViewProps["onSize"],
22
- onLayout?: (event: LayoutChangeEvent) => void
23
- ) => {
24
- return useCallback(
25
- (event: LayoutChangeEvent) => {
26
- if (onLayout) {
27
- onLayout(event);
28
- }
29
- const { width, height } = event.nativeEvent.layout;
30
-
31
- if (resultValue) {
32
- resultValue.value = { width, height };
33
- }
34
- },
35
- [onLayout, resultValue]
36
- );
37
- };
38
-
39
- export interface CanvasProps extends ViewProps {
40
- debug?: boolean;
41
- opaque?: boolean;
42
- onSize?: SharedValue<SkSize>;
43
- mode?: "continuous" | "default";
44
- }
45
-
46
- export const Canvas = forwardRef(
47
- (
48
- {
49
- mode,
50
- debug,
51
- opaque,
52
- children,
53
- onSize,
54
- onLayout: _onLayout,
55
- ...viewProps
56
- }: CanvasProps,
57
- ref
58
- ) => {
59
- const viewRef = useRef<SkiaPictureView>(null);
60
- const rafId = useRef<number | null>(null);
61
- const onLayout = useOnSizeEvent(onSize, _onLayout);
62
- // Native ID
63
- const nativeId = useMemo(() => {
64
- return SkiaViewNativeId.current++;
65
- }, []);
66
-
67
- // Root
68
- const root = useMemo(() => new SkiaSGRoot(Skia), []);
69
-
70
- // Render effects
71
- useEffect(() => {
72
- root.render(children);
73
- if (viewRef.current) {
74
- viewRef.current.setPicture(root.getPicture());
75
- }
76
- }, [children, root]);
77
-
78
- useEffect(() => {
79
- return () => {
80
- root.unmount();
81
- };
82
- }, [root]);
83
-
84
- const requestRedraw = useCallback(() => {
85
- rafId.current = requestAnimationFrame(() => {
86
- root.render(children);
87
- if (viewRef.current) {
88
- viewRef.current.setPicture(root.getPicture());
89
- }
90
- if (mode === "continuous") {
91
- requestRedraw();
92
- }
93
- });
94
- }, [children, mode, root]);
95
-
96
- useEffect(() => {
97
- if (mode === "continuous") {
98
- requestRedraw();
99
- }
100
- return () => {
101
- if (rafId.current !== null) {
102
- cancelAnimationFrame(rafId.current);
103
- }
104
- };
105
- }, [mode, requestRedraw]);
106
-
107
- // Component methods
108
- useImperativeHandle(ref, () => ({
109
- makeImageSnapshot: (rect?: SkRect) => {
110
- return SkiaViewApi.makeImageSnapshot(nativeId, rect);
111
- },
112
- makeImageSnapshotAsync: (rect?: SkRect) => {
113
- return SkiaViewApi.makeImageSnapshotAsync(nativeId, rect);
114
- },
115
- redraw: () => {
116
- viewRef.current?.redraw();
117
- },
118
- getNativeId: () => {
119
- return nativeId;
120
- },
121
- }));
122
- return (
123
- <SkiaPictureView
124
- ref={viewRef}
125
- collapsable={false}
126
- nativeID={`${nativeId}`}
127
- debug={debug}
128
- opaque={opaque}
129
- onLayout={onLayout}
130
- {...viewProps}
131
- />
132
- );
133
- }
134
- );