|
@@ -12,7 +12,7 @@ type TempCanvasMeasureAtom = Omit<CanvasMeasureAtom, "canvas"> & {
|
|
|
|
|
|
let prevMeasure: TempCanvasMeasureAtom
|
|
|
|
|
|
-export const startMeasure = (type: MeasureType) => {
|
|
|
+export const startMeasure = (type: MeasureType, firstClickMarker?: () => void) => {
|
|
|
if (prevMeasure) {
|
|
|
prevMeasure.canvas.bus.emit("quit")
|
|
|
prevMeasure = null;
|
|
@@ -57,6 +57,7 @@ export const startMeasure = (type: MeasureType) => {
|
|
|
currentMeasure.canvas.bus.off("end", endHandler);
|
|
|
currentMeasure.canvas.bus.off("quit", quitHandler);
|
|
|
currentMeasure.canvas.bus.off("invalidPoint", invalidPointHandler);
|
|
|
+ firstClickMarker && currentMeasure.canvas.bus.off("firstClickMarker", firstClickMarker)
|
|
|
if (prevMeasure === currentMeasure) {
|
|
|
prevMeasure = null;
|
|
|
}
|
|
@@ -65,20 +66,22 @@ export const startMeasure = (type: MeasureType) => {
|
|
|
currentMeasure.canvas.bus.on("quit", quitHandler);
|
|
|
currentMeasure.canvas.bus.on("end", endHandler);
|
|
|
currentMeasure.canvas.bus.on("invalidPoint", invalidPointHandler);
|
|
|
+ firstClickMarker && currentMeasure.canvas.bus.on("firstClickMarker", firstClickMarker)
|
|
|
prevMeasure = currentMeasure
|
|
|
})
|
|
|
}
|
|
|
|
|
|
export const continuedMeasure = (
|
|
|
type: MeasureType,
|
|
|
- onAddMeasure: (data: MeasureAtom) => void
|
|
|
+ onAddMeasure: (data: MeasureAtom) => void,
|
|
|
+ firstClickMarker?: () => void
|
|
|
) => {
|
|
|
|
|
|
- startMeasure(type)
|
|
|
+ startMeasure(type, firstClickMarker)
|
|
|
.then(data => {
|
|
|
if (data) {
|
|
|
onAddMeasure(data);
|
|
|
- continuedMeasure(type, onAddMeasure)
|
|
|
+ continuedMeasure(type, onAddMeasure, firstClickMarker)
|
|
|
}
|
|
|
})
|
|
|
}
|