canvu-react 0.4.57 → 0.4.58

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
@@ -5547,6 +5547,58 @@ function NativeSelectionContextMenuButton({
5547
5547
  }
5548
5548
  );
5549
5549
  }
5550
+ var NativeCameraRenderLayer = react.forwardRef(function NativeCameraRenderLayer2({
5551
+ items,
5552
+ camera,
5553
+ width,
5554
+ height,
5555
+ interactive,
5556
+ selectedItems,
5557
+ showResizeHandles,
5558
+ placementPreview,
5559
+ laserTrail,
5560
+ eraserTrail,
5561
+ eraserPreviewItems,
5562
+ previewStrokeStyle,
5563
+ remotePresence
5564
+ }, ref) {
5565
+ const [cameraTick, setCameraTick] = react.useState(0);
5566
+ react.useImperativeHandle(
5567
+ ref,
5568
+ () => ({
5569
+ requestRender: () => setCameraTick((n) => n + 1)
5570
+ }),
5571
+ []
5572
+ );
5573
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5574
+ /* @__PURE__ */ jsxRuntime.jsx(
5575
+ NativeSceneRenderer,
5576
+ {
5577
+ items,
5578
+ camera,
5579
+ width,
5580
+ height,
5581
+ renderTick: cameraTick
5582
+ }
5583
+ ),
5584
+ interactive && /* @__PURE__ */ jsxRuntime.jsx(
5585
+ NativeInteractionOverlay,
5586
+ {
5587
+ camera,
5588
+ width,
5589
+ height,
5590
+ selectedItems,
5591
+ showResizeHandles,
5592
+ placementPreview,
5593
+ laserTrail,
5594
+ eraserTrail,
5595
+ eraserPreviewItems,
5596
+ previewStrokeStyle,
5597
+ remotePresence
5598
+ }
5599
+ )
5600
+ ] });
5601
+ });
5550
5602
  var NativeVectorViewport = react.forwardRef(function NativeVectorViewport2({
5551
5603
  items,
5552
5604
  selectedIds = [],
@@ -5574,6 +5626,7 @@ var NativeVectorViewport = react.forwardRef(function NativeVectorViewport2({
5574
5626
  }, ref) {
5575
5627
  const [size, setSize] = react.useState({ width: 0, height: 0 });
5576
5628
  const cameraRef = react.useRef(null);
5629
+ const cameraRenderLayerRef = react.useRef(null);
5577
5630
  const toolIdRef = react.useRef(toolId);
5578
5631
  toolIdRef.current = toolId;
5579
5632
  const toolLockedRef = react.useRef(toolLocked);
@@ -5768,7 +5821,6 @@ var NativeVectorViewport = react.forwardRef(function NativeVectorViewport2({
5768
5821
  cameraRef.current = new Camera2D({ minZoom: 0.05, maxZoom: 32 });
5769
5822
  }
5770
5823
  const camera = cameraRef.current;
5771
- const [cameraTick, setCameraTick] = react.useState(0);
5772
5824
  const selectedItems = react.useMemo(
5773
5825
  () => activeItems.filter((item) => selectedIds.includes(item.id)),
5774
5826
  [activeItems, selectedIds]
@@ -5845,7 +5897,7 @@ var NativeVectorViewport = react.forwardRef(function NativeVectorViewport2({
5845
5897
  onWorldPointerLeaveRef.current?.();
5846
5898
  }, []);
5847
5899
  const requestRender = react.useCallback(() => {
5848
- setCameraTick((n) => n + 1);
5900
+ cameraRenderLayerRef.current?.requestRender();
5849
5901
  onCameraChangeRef.current?.();
5850
5902
  }, []);
5851
5903
  const onLayout = react.useCallback((e) => {
@@ -6752,7 +6804,7 @@ var NativeVectorViewport = react.forwardRef(function NativeVectorViewport2({
6752
6804
  const nativeLinkCanSubmit = pendingNativeLinkRequest !== null && normalizedNativeLinkHref !== null && onItemsChange != null;
6753
6805
  return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: { flex: 1, overflow: "hidden" }, onLayout, children: [
6754
6806
  size.width > 0 && size.height > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6755
- /* @__PURE__ */ jsxRuntime.jsxs(
6807
+ /* @__PURE__ */ jsxRuntime.jsx(
6756
6808
  reactNative.View,
6757
6809
  {
6758
6810
  style: reactNative.StyleSheet.absoluteFill,
@@ -6765,34 +6817,25 @@ var NativeVectorViewport = react.forwardRef(function NativeVectorViewport2({
6765
6817
  notifyWorldPointerLeave();
6766
6818
  },
6767
6819
  ...panResponder.panHandlers,
6768
- children: [
6769
- /* @__PURE__ */ jsxRuntime.jsx(
6770
- NativeSceneRenderer,
6771
- {
6772
- items: sceneItems,
6773
- camera,
6774
- width: size.width,
6775
- height: size.height,
6776
- renderTick: cameraTick
6777
- }
6778
- ),
6779
- interactive && /* @__PURE__ */ jsxRuntime.jsx(
6780
- NativeInteractionOverlay,
6781
- {
6782
- camera,
6783
- width: size.width,
6784
- height: size.height,
6785
- selectedItems,
6786
- showResizeHandles,
6787
- placementPreview,
6788
- laserTrail,
6789
- eraserTrail,
6790
- eraserPreviewItems,
6791
- previewStrokeStyle: strokeStyleState,
6792
- remotePresence
6793
- }
6794
- )
6795
- ]
6820
+ children: /* @__PURE__ */ jsxRuntime.jsx(
6821
+ NativeCameraRenderLayer,
6822
+ {
6823
+ ref: cameraRenderLayerRef,
6824
+ items: sceneItems,
6825
+ camera,
6826
+ width: size.width,
6827
+ height: size.height,
6828
+ interactive,
6829
+ selectedItems,
6830
+ showResizeHandles,
6831
+ placementPreview,
6832
+ laserTrail,
6833
+ eraserTrail,
6834
+ eraserPreviewItems,
6835
+ previewStrokeStyle: strokeStyleState,
6836
+ remotePresence
6837
+ }
6838
+ )
6796
6839
  }
6797
6840
  ),
6798
6841
  overlay ? /* @__PURE__ */ jsxRuntime.jsx(