Refactor dnd event handler (#1221)
This commit is contained in:
parent
d243f3901c
commit
adc099ed15
@ -223,34 +223,7 @@ export class App extends React.Component<any, AppState> {
|
|||||||
onPointerMove={this.handleCanvasPointerMove}
|
onPointerMove={this.handleCanvasPointerMove}
|
||||||
onPointerUp={this.removePointer}
|
onPointerUp={this.removePointer}
|
||||||
onPointerCancel={this.removePointer}
|
onPointerCancel={this.removePointer}
|
||||||
onDrop={(event) => {
|
onDrop={this.handleCanvasOnDrop}
|
||||||
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"),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
>
|
>
|
||||||
{t("labels.drawingCanvas")}
|
{t("labels.drawingCanvas")}
|
||||||
</canvas>
|
</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 = (
|
private handleCanvasContextMenu = (
|
||||||
event: React.PointerEvent<HTMLCanvasElement>,
|
event: React.PointerEvent<HTMLCanvasElement>,
|
||||||
) => {
|
) => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user