diff options
Diffstat (limited to 'src/client/views/nodes/calendarBox/CalendarBox.tsx')
-rw-r--r-- | src/client/views/nodes/calendarBox/CalendarBox.tsx | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/src/client/views/nodes/calendarBox/CalendarBox.tsx b/src/client/views/nodes/calendarBox/CalendarBox.tsx index a4183a11a..a2fa83b5a 100644 --- a/src/client/views/nodes/calendarBox/CalendarBox.tsx +++ b/src/client/views/nodes/calendarBox/CalendarBox.tsx @@ -298,10 +298,9 @@ export class CalendarBox extends CollectionSubView() { ev.preventDefault(); }); }} - // for dragging and dropping (mirror) - eventDragStart={(arg) => { + eventDragStart={arg => { const mirror = arg.el.cloneNode(true) as HTMLElement; const rect = arg.el.getBoundingClientRect(); @@ -312,25 +311,24 @@ export class CalendarBox extends CollectionSubView() { mirror.classList.add('custom-drag-mirror'); mirror.style.width = `${rect.width}px`; mirror.style.height = `${rect.height}px`; - + document.body.appendChild(mirror); - + const moveListener = (ev: MouseEvent) => { - mirror.style.left = `${ev.clientX}px`; - mirror.style.top = `${ev.clientY}px`; + mirror.style.left = `${ev.clientX}px`; + mirror.style.top = `${ev.clientY}px`; }; - + window.addEventListener('mousemove', moveListener); // hide the actual box arg.el.style.visibility = 'hidden'; arg.el.style.opacity = '0'; - + (arg.el as any)._mirrorElement = mirror; (arg.el as any)._moveListener = moveListener; }} - - eventDragStop={(arg) => { + eventDragStop={arg => { const el = arg.el as any; const mirror = el._mirrorElement; const moveListener = el._moveListener; @@ -338,15 +336,18 @@ export class CalendarBox extends CollectionSubView() { // show the actual box el.style.visibility = 'visible'; el.style.opacity = '1'; - + if (mirror) document.body.removeChild(mirror); if (moveListener) window.removeEventListener('mousemove', moveListener); }} - /> ); } + setRef = (r: HTMLDivElement | null) => { + this.createDashEventsTarget(r); + this.fixWheelEvents(r, this._props.isContentActive); + }; render() { const scale = this._props.ScreenToLocalTransform().Scale; const scaledWidth = this._props.PanelWidth(); @@ -361,11 +362,8 @@ export class CalendarBox extends CollectionSubView() { height: scaledHeight, overflow: 'hidden', position: 'relative', - }} - ref={r => { - this.createDashEventsTarget(r); - this.fixWheelEvents(r, this._props.isContentActive); }} + ref={this.setRef} onPointerDown={e => { setTimeout( action(() => { @@ -383,9 +381,8 @@ export class CalendarBox extends CollectionSubView() { transformOrigin: 'top left', width: scaledWidth / scale, height: scaledHeight / scale, - }} - > - {this.renderCalendar} + }}> + {this.renderCalendar} </div> </div> ); |