Przeglądaj źródła

move where datesRender/datesDestroy happens

Adam Shaw 7 lat temu
rodzic
commit
949d4ce61c
2 zmienionych plików z 24 dodań i 15 usunięć
  1. 24 1
      src/Calendar.ts
  2. 0 14
      src/View.ts

+ 24 - 1
src/Calendar.ts

@@ -95,6 +95,7 @@ export default class Calendar {
   delayedRerender: any
   afterSizingTriggers: any = {}
   isViewNew: boolean = false
+  isDatesNew: boolean = false
 
   el: HTMLElement
   component: CalendarComponent
@@ -287,6 +288,18 @@ export default class Calendar {
         this.publiclyTrigger('loading', [ false ])
       }
 
+      if (oldState.dateProfile !== newState.dateProfile) {
+        if (oldState.dateProfile) {
+          this.publiclyTrigger('datesDestroy', [
+            {
+              view: this.component.view,
+              el: this.component.view.el
+            }
+          ])
+        }
+        this.isDatesNew = true
+      }
+
       if (oldState.viewType !== newState.viewType) {
         if (oldState.viewType) {
           this.publiclyTrigger('viewSkeletonDestroy', [
@@ -421,7 +434,17 @@ export default class Calendar {
 
     if (this.isViewNew) {
       this.isViewNew = false
-      this.publiclyTriggerAfterSizing('viewSkeletonRender', [
+      this.publiclyTrigger('viewSkeletonRender', [
+        {
+          view: component.view,
+          el: component.view.el
+        }
+      ])
+    }
+
+    if (this.isDatesNew) {
+      this.isDatesNew = false
+      this.publiclyTrigger('datesRender', [
         {
           view: component.view,
           el: component.view.el

+ 0 - 14
src/View.ts

@@ -236,24 +236,10 @@ export default abstract class View extends DateComponent<ViewProps> {
   afterDatesRender() {
     this.addScroll({ isDateInit: true })
     this.startNowIndicator() // shouldn't render yet because updateSize will be called soon
-
-    this.publiclyTriggerAfterSizing('datesRender', [
-      {
-        view: this,
-        el: this.el
-      }
-    ])
   }
 
 
   beforeDatesUnrender() {
-    this.publiclyTrigger('datesDestroy', [
-      {
-        view: this,
-        el: this.el
-      }
-    ])
-
     this.stopNowIndicator()
   }