From 3b65f2aefa5959258b0c4ce9d720daf68b8d5562 Mon Sep 17 00:00:00 2001 From: dwelle Date: Wed, 9 Aug 2023 19:31:30 +0200 Subject: [PATCH] make `InteractiveCanvas` callbacks mandatory and move viewMode check inside --- src/components/App.tsx | 6 +-- src/components/canvases/InteractiveCanvas.tsx | 39 +++++++++++++++---- 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/src/components/App.tsx b/src/components/App.tsx index 011d9e150..ea4927d76 100644 --- a/src/components/App.tsx +++ b/src/components/App.tsx @@ -1253,11 +1253,7 @@ class App extends React.Component { onPointerCancel={this.removePointer} onTouchMove={this.handleTouchMove} onPointerDown={this.handleCanvasPointerDown} - onDoubleClick={ - this.state.viewModeEnabled - ? undefined - : this.handleCanvasDoubleClick - } + onDoubleClick={this.handleCanvasDoubleClick} /> {this.renderFrameNames()} diff --git a/src/components/canvases/InteractiveCanvas.tsx b/src/components/canvases/InteractiveCanvas.tsx index b81a86654..4099ffc8d 100644 --- a/src/components/canvases/InteractiveCanvas.tsx +++ b/src/components/canvases/InteractiveCanvas.tsx @@ -28,13 +28,34 @@ type InteractiveCanvasProps = { data: RenderInteractiveSceneCallback, ) => void; handleCanvasRef: (canvas: HTMLCanvasElement) => void; - onContextMenu: DOMAttributes["onContextMenu"]; - onPointerMove: DOMAttributes["onPointerMove"]; - onPointerUp: DOMAttributes["onPointerUp"]; - onPointerCancel: DOMAttributes["onPointerCancel"]; - onTouchMove: DOMAttributes["onTouchMove"]; - onPointerDown: DOMAttributes["onPointerDown"]; - onDoubleClick: DOMAttributes["onDoubleClick"]; + onContextMenu: Exclude< + DOMAttributes["onContextMenu"], + undefined + >; + onPointerMove: Exclude< + DOMAttributes["onPointerMove"], + undefined + >; + onPointerUp: Exclude< + DOMAttributes["onPointerUp"], + undefined + >; + onPointerCancel: Exclude< + DOMAttributes["onPointerCancel"], + undefined + >; + onTouchMove: Exclude< + DOMAttributes["onTouchMove"], + undefined + >; + onPointerDown: Exclude< + DOMAttributes["onPointerDown"], + undefined + >; + onDoubleClick: Exclude< + DOMAttributes["onDoubleClick"], + undefined + >; }; const InteractiveCanvas = (props: InteractiveCanvasProps) => { @@ -130,7 +151,9 @@ const InteractiveCanvas = (props: InteractiveCanvasProps) => { onPointerCancel={props.onPointerCancel} onTouchMove={props.onTouchMove} onPointerDown={props.onPointerDown} - onDoubleClick={props.onDoubleClick} + onDoubleClick={ + props.appState.viewModeEnabled ? undefined : props.onDoubleClick + } > {t("labels.drawingCanvas")}