aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/calendarBox/CalendarBox.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/nodes/calendarBox/CalendarBox.tsx')
-rw-r--r--src/client/views/nodes/calendarBox/CalendarBox.tsx35
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>
);