make InteractiveCanvas callbacks mandatory and move viewMode check inside

This commit is contained in:
dwelle 2023-08-09 19:31:30 +02:00
parent 540e2422fd
commit 3b65f2aefa
2 changed files with 32 additions and 13 deletions

View File

@ -1253,11 +1253,7 @@ class App extends React.Component<AppProps, AppState> {
onPointerCancel={this.removePointer} onPointerCancel={this.removePointer}
onTouchMove={this.handleTouchMove} onTouchMove={this.handleTouchMove}
onPointerDown={this.handleCanvasPointerDown} onPointerDown={this.handleCanvasPointerDown}
onDoubleClick={ onDoubleClick={this.handleCanvasDoubleClick}
this.state.viewModeEnabled
? undefined
: this.handleCanvasDoubleClick
}
/> />
{this.renderFrameNames()} {this.renderFrameNames()}
</ExcalidrawActionManagerContext.Provider> </ExcalidrawActionManagerContext.Provider>

View File

@ -28,13 +28,34 @@ type InteractiveCanvasProps = {
data: RenderInteractiveSceneCallback, data: RenderInteractiveSceneCallback,
) => void; ) => void;
handleCanvasRef: (canvas: HTMLCanvasElement) => void; handleCanvasRef: (canvas: HTMLCanvasElement) => void;
onContextMenu: DOMAttributes<HTMLCanvasElement>["onContextMenu"]; onContextMenu: Exclude<
onPointerMove: DOMAttributes<HTMLCanvasElement>["onPointerMove"]; DOMAttributes<HTMLCanvasElement>["onContextMenu"],
onPointerUp: DOMAttributes<HTMLCanvasElement>["onPointerUp"]; undefined
onPointerCancel: DOMAttributes<HTMLCanvasElement>["onPointerCancel"]; >;
onTouchMove: DOMAttributes<HTMLCanvasElement>["onTouchMove"]; onPointerMove: Exclude<
onPointerDown: DOMAttributes<HTMLCanvasElement>["onPointerDown"]; DOMAttributes<HTMLCanvasElement>["onPointerMove"],
onDoubleClick: DOMAttributes<HTMLCanvasElement>["onDoubleClick"]; undefined
>;
onPointerUp: Exclude<
DOMAttributes<HTMLCanvasElement>["onPointerUp"],
undefined
>;
onPointerCancel: Exclude<
DOMAttributes<HTMLCanvasElement>["onPointerCancel"],
undefined
>;
onTouchMove: Exclude<
DOMAttributes<HTMLCanvasElement>["onTouchMove"],
undefined
>;
onPointerDown: Exclude<
DOMAttributes<HTMLCanvasElement>["onPointerDown"],
undefined
>;
onDoubleClick: Exclude<
DOMAttributes<HTMLCanvasElement>["onDoubleClick"],
undefined
>;
}; };
const InteractiveCanvas = (props: InteractiveCanvasProps) => { const InteractiveCanvas = (props: InteractiveCanvasProps) => {
@ -130,7 +151,9 @@ const InteractiveCanvas = (props: InteractiveCanvasProps) => {
onPointerCancel={props.onPointerCancel} onPointerCancel={props.onPointerCancel}
onTouchMove={props.onTouchMove} onTouchMove={props.onTouchMove}
onPointerDown={props.onPointerDown} onPointerDown={props.onPointerDown}
onDoubleClick={props.onDoubleClick} onDoubleClick={
props.appState.viewModeEnabled ? undefined : props.onDoubleClick
}
> >
{t("labels.drawingCanvas")} {t("labels.drawingCanvas")}
</canvas> </canvas>