Refactor dnd event handler (#1221)

This commit is contained in:
Faustino Kialungila 2020-04-04 15:27:53 +02:00 committed by GitHub
parent d243f3901c
commit adc099ed15
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -223,34 +223,7 @@ export class App extends React.Component<any, AppState> {
onPointerMove={this.handleCanvasPointerMove}
onPointerUp={this.removePointer}
onPointerCancel={this.removePointer}
onDrop={(event) => {
const file = event.dataTransfer.files[0];
if (
file?.type === "application/json" ||
file?.name.endsWith(".excalidraw")
) {
this.setState({ isLoading: true });
loadFromBlob(file)
.then(({ elements, appState }) =>
this.syncActionResult({
elements,
appState: {
...(appState || this.state),
isLoading: false,
},
commitToHistory: false,
}),
)
.catch((error) => {
this.setState({ isLoading: false, errorMessage: error });
});
} else {
this.setState({
isLoading: false,
errorMessage: t("alerts.couldNotLoadInvalidFile"),
});
}
}}
onDrop={this.handleCanvasOnDrop}
>
{t("labels.drawingCanvas")}
</canvas>
@ -2587,6 +2560,35 @@ export class App extends React.Component<any, AppState> {
}
};
private handleCanvasOnDrop = (event: React.DragEvent<HTMLCanvasElement>) => {
const file = event.dataTransfer?.files[0];
if (
file?.type === "application/json" ||
file?.name.endsWith(".excalidraw")
) {
this.setState({ isLoading: true });
loadFromBlob(file)
.then(({ elements, appState }) =>
this.syncActionResult({
elements,
appState: {
...(appState || this.state),
isLoading: false,
},
commitToHistory: false,
}),
)
.catch((error) => {
this.setState({ isLoading: false, errorMessage: error });
});
} else {
this.setState({
isLoading: false,
errorMessage: t("alerts.couldNotLoadInvalidFile"),
});
}
};
private handleCanvasContextMenu = (
event: React.PointerEvent<HTMLCanvasElement>,
) => {