Explorar el Código

move window resizing stuff into CalendarComponent

Adam Shaw hace 5 años
padre
commit
c8dcf49fc6
Se han modificado 2 ficheros con 28 adiciones y 25 borrados
  1. 0 25
      packages/core/src/Calendar.tsx
  2. 28 0
      packages/core/src/CalendarComponent.tsx

+ 0 - 25
packages/core/src/Calendar.tsx

@@ -97,7 +97,6 @@ export class Calendar {
     if (!this.isRendering) {
       this.isRendering = true
       this.renderRunner.request()
-      window.addEventListener('resize', this.handleWindowResize)
     } else {
       // hack for RERENDERING
       this.setOption('renderId', guid())
@@ -109,8 +108,6 @@ export class Calendar {
     if (this.isRendering) {
       this.isRendering = false
       this.renderRunner.request()
-      this.resizeRunner.clear()
-      window.removeEventListener('resize', this.handleWindowResize)
     }
   }
 
@@ -490,28 +487,6 @@ export class Calendar {
   }
 
 
-  // RE-Sizing
-  // -----------------------------------------------------------------------------------------------------------------
-
-
-  resizeRunner = new DelayedRunner(() => {
-    this.emitter.trigger('_resize', true) // should window resizes be considered "forced" ?
-    this.emitter.trigger('windowResize')
-  })
-
-
-  handleWindowResize = (ev: UIEvent) => {
-    let { options } = this.state
-
-    if (
-      options.handleWindowResize &&
-      ev.target === window // avoid jqui events
-    ) {
-      this.resizeRunner.request(options.windowResizeDelay)
-    }
-  }
-
-
   // Date Selection / Event Selection / DayClick
   // -----------------------------------------------------------------------------------------------------------------
 

+ 28 - 0
packages/core/src/CalendarComponent.tsx

@@ -23,6 +23,7 @@ import { EventClicking } from './interactions/EventClicking'
 import { EventHovering } from './interactions/EventHovering'
 import { getNow } from './reducers/current-date'
 import { CalendarInteraction } from './Calendar'
+import { DelayedRunner } from './util/runner'
 
 
 export interface CalendarComponentProps extends CalendarState {
@@ -154,6 +155,8 @@ export class CalendarComponent extends Component<CalendarComponentProps, Calenda
         return new calendarInteractionClass(props)
       })
 
+    window.addEventListener('resize', this.handleWindowResize)
+
     this.props.emitter.trigger('datesDidUpdate')
   }
 
@@ -169,6 +172,9 @@ export class CalendarComponent extends Component<CalendarComponentProps, Calenda
     window.removeEventListener('beforeprint', this.handleBeforePrint)
     window.removeEventListener('afterprint', this.handleAfterPrint)
 
+    window.removeEventListener('resize', this.handleWindowResize)
+    this.resizeRunner.clear()
+
     for (let interaction of this.calendarInteractions) {
       interaction.destroy()
     }
@@ -297,6 +303,28 @@ export class CalendarComponent extends Component<CalendarComponentProps, Calenda
     delete interactionSettingsStore[component.uid]
   }
 
+
+  // Resizing
+  // -----------------------------------------------------------------------------------------------------------------
+
+
+  resizeRunner = new DelayedRunner(() => {
+    this.props.emitter.trigger('_resize', true) // should window resizes be considered "forced" ?
+    this.props.emitter.trigger('windowResize')
+  })
+
+
+  handleWindowResize = (ev: UIEvent) => {
+    let { options } = this.props
+
+    if (
+      options.handleWindowResize &&
+      ev.target === window // avoid jqui events
+    ) {
+      this.resizeRunner.request(options.windowResizeDelay)
+    }
+  }
+
 }