2
0
Adam Shaw 5 жил өмнө
parent
commit
bc23a4c972

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

@@ -62,9 +62,6 @@ export class Calendar {
   currentClassNames: string[] = []
   currentClassNames: string[] = []
   componentRef = createRef<CalendarComponent>()
   componentRef = createRef<CalendarComponent>()
 
 
-  // interaction
-  calendarInteractions: CalendarInteraction[] // this tooooo
-
   get view() { return this.state.viewApi } // for public API
   get view() { return this.state.viewApi } // for public API
 
 
 
 
@@ -88,11 +85,6 @@ export class Calendar {
       type: 'INIT',
       type: 'INIT',
       optionOverrides
       optionOverrides
     })
     })
-
-    this.calendarInteractions = this.state.pluginHooks.calendarInteractions
-      .map((calendarInteractionClass) => {
-        return new calendarInteractionClass(this.state)
-      })
   }
   }
 
 
 
 
@@ -185,27 +177,13 @@ export class Calendar {
 
 
   renderComponent() {
   renderComponent() {
     let { state } = this
     let { state } = this
-    let { viewType } = state
-    let viewSpec = state.viewSpecs[viewType]
 
 
     render(
     render(
       <CalendarComponent
       <CalendarComponent
         ref={this.componentRef}
         ref={this.componentRef}
         { ...state }
         { ...state }
-        viewSpec={viewSpec}
-        dateProfileGenerator={state.dateProfileGenerator}
-        dateProfile={state.dateProfile}
-        eventStore={state.renderableEventStore}
-        eventUiBases={state.eventUiBases}
-        dateSelection={state.dateSelection}
-        eventSelection={state.eventSelection}
-        eventDrag={state.eventDrag}
-        eventResize={state.eventResize}
         onClassNameChange={this.handleClassNames}
         onClassNameChange={this.handleClassNames}
         onHeightChange={this.handleHeightChange}
         onHeightChange={this.handleHeightChange}
-        toolbarConfig={state.toolbarConfig}
-        emitter={this.emitter}
-        calendar={this}
       />,
       />,
       this.el
       this.el
     )
     )
@@ -215,12 +193,6 @@ export class Calendar {
 
 
   destroyComponent() {
   destroyComponent() {
     render(null, this.el)
     render(null, this.el)
-
-    for (let interaction of this.calendarInteractions) {
-      interaction.destroy()
-    }
-
-    this.emitter.trigger('_destroyed')
   }
   }
 
 
 
 

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

@@ -22,6 +22,7 @@ import { DateComponent } from './component/DateComponent'
 import { EventClicking } from './interactions/EventClicking'
 import { EventClicking } from './interactions/EventClicking'
 import { EventHovering } from './interactions/EventHovering'
 import { EventHovering } from './interactions/EventHovering'
 import { getNow } from './reducers/current-date'
 import { getNow } from './reducers/current-date'
+import { CalendarInteraction } from './Calendar'
 
 
 
 
 export interface CalendarComponentProps extends CalendarState {
 export interface CalendarComponentProps extends CalendarState {
@@ -48,6 +49,7 @@ export class CalendarComponent extends Component<CalendarComponentProps, Calenda
   private footerRef = createRef<Toolbar>()
   private footerRef = createRef<Toolbar>()
   private viewRef = createRef<ViewComponent>()
   private viewRef = createRef<ViewComponent>()
   private interactionsStore: { [componentUid: string]: Interaction[] } = {}
   private interactionsStore: { [componentUid: string]: Interaction[] } = {}
+  private calendarInteractions: CalendarInteraction[]
 
 
   state = {
   state = {
     forPrint: false
     forPrint: false
@@ -146,6 +148,12 @@ export class CalendarComponent extends Component<CalendarComponentProps, Calenda
     window.addEventListener('beforeprint', this.handleBeforePrint)
     window.addEventListener('beforeprint', this.handleBeforePrint)
     window.addEventListener('afterprint', this.handleAfterPrint)
     window.addEventListener('afterprint', this.handleAfterPrint)
 
 
+    let { props } = this
+    this.calendarInteractions = props.pluginHooks.calendarInteractions
+      .map((calendarInteractionClass) => {
+        return new calendarInteractionClass(props)
+      })
+
     this.props.emitter.trigger('datesDidUpdate')
     this.props.emitter.trigger('datesDidUpdate')
   }
   }
 
 
@@ -161,6 +169,10 @@ export class CalendarComponent extends Component<CalendarComponentProps, Calenda
     window.removeEventListener('beforeprint', this.handleBeforePrint)
     window.removeEventListener('beforeprint', this.handleBeforePrint)
     window.removeEventListener('afterprint', this.handleAfterPrint)
     window.removeEventListener('afterprint', this.handleAfterPrint)
 
 
+    for (let interaction of this.calendarInteractions) {
+      interaction.destroy()
+    }
+
     if (this.props.onClassNameChange) {
     if (this.props.onClassNameChange) {
       this.props.onClassNameChange([])
       this.props.onClassNameChange([])
     }
     }
@@ -168,6 +180,8 @@ export class CalendarComponent extends Component<CalendarComponentProps, Calenda
     if (this.props.onHeightChange) {
     if (this.props.onHeightChange) {
       this.props.onHeightChange('')
       this.props.onHeightChange('')
     }
     }
+
+    this.props.emitter.trigger('_destroyed')
   }
   }