canvu-react 0.4.50 → 0.4.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/native.cjs CHANGED
@@ -3925,11 +3925,12 @@ var MemoShape = react.memo(function MemoShape2({
3925
3925
  if (rotationTransform.length === 0) return shape;
3926
3926
  return /* @__PURE__ */ jsxRuntime.jsx(reactNativeSkia.Group, { transform: rotationTransform, origin: rotationOrigin, children: shape });
3927
3927
  });
3928
- function NativeSceneRenderer({
3928
+ var NativeSceneRenderer = react.memo(function NativeSceneRenderer2({
3929
3929
  items,
3930
3930
  camera,
3931
3931
  width,
3932
- height
3932
+ height,
3933
+ renderTick
3933
3934
  }) {
3934
3935
  const cameraTransform = skiaCameraTransform(camera.zoom, camera.x, camera.y);
3935
3936
  const visible = cullItemsByViewport(
@@ -3938,7 +3939,7 @@ function NativeSceneRenderer({
3938
3939
  );
3939
3940
  if (width <= 0 || height <= 0) return null;
3940
3941
  return /* @__PURE__ */ jsxRuntime.jsx(reactNativeSkia.Canvas, { style: { width, height }, children: /* @__PURE__ */ jsxRuntime.jsx(reactNativeSkia.Group, { transform: cameraTransform, children: visible.map((item) => /* @__PURE__ */ jsxRuntime.jsx(MemoShape, { item }, item.id)) }) });
3941
- }
3942
+ });
3942
3943
 
3943
3944
  // src/native/native-style-inspector-values.ts
3944
3945
  var NATIVE_STYLE_PALETTE = [
@@ -5723,6 +5724,11 @@ var NativeVectorViewport = react.forwardRef(function NativeVectorViewport2({
5723
5724
  return activeItems.filter((item) => !hidden.has(item.id));
5724
5725
  }, [activeItems, eraserPreviewIds]);
5725
5726
  const showResizeHandles = interactive && selectedItems.length === 1 && !selectedItems[0]?.locked && supportsNativeResizeHandles(selectedItems[0]);
5727
+ const eraserPreviewItems = react.useMemo(() => {
5728
+ if (eraserPreviewIds.length === 0) return [];
5729
+ const eraserPreviewIdSet = new Set(eraserPreviewIds);
5730
+ return activeItems.filter((item) => eraserPreviewIdSet.has(item.id));
5731
+ }, [activeItems, eraserPreviewIds]);
5726
5732
  const patchSelectedItemsStrokeStyle = react.useCallback(
5727
5733
  (patch) => {
5728
5734
  const change = onItemsChangeRef.current;
@@ -6529,7 +6535,8 @@ var NativeVectorViewport = react.forwardRef(function NativeVectorViewport2({
6529
6535
  items: sceneItems,
6530
6536
  camera,
6531
6537
  width: size.width,
6532
- height: size.height
6538
+ height: size.height,
6539
+ renderTick: cameraTick
6533
6540
  }
6534
6541
  ),
6535
6542
  interactive && /* @__PURE__ */ jsxRuntime.jsx(
@@ -6543,9 +6550,7 @@ var NativeVectorViewport = react.forwardRef(function NativeVectorViewport2({
6543
6550
  placementPreview,
6544
6551
  laserTrail,
6545
6552
  eraserTrail,
6546
- eraserPreviewItems: activeItems.filter(
6547
- (item) => eraserPreviewIds.includes(item.id)
6548
- ),
6553
+ eraserPreviewItems,
6549
6554
  previewStrokeStyle: strokeStyleState,
6550
6555
  remotePresence
6551
6556
  }