Adam Shaw 7 лет назад
Родитель
Сommit
d3ad7ac1cc

+ 1 - 5
src/Calendar.ts

@@ -1060,17 +1060,13 @@ export default class Calendar {
   // -----------------------------------------------------------------------------------------------------------------
 
 
-  addEvent(eventInput: EventInput, isSticky: boolean = false): EventApi | null {
+  addEvent(eventInput: EventInput): EventApi | null {
     let activeRange = this.state.dateProfile.activeRange
     let subset = parseEventStore([ eventInput ], '', this, activeRange)
     let def: EventDef = objectValues(subset.defs)[0]
 
     if (def) {
 
-      if (!isSticky) {
-        def.isTemporary = true // will mutate subet, which is good for ADD_EVENTS
-      }
-
       // TODO: make this regenerate recurring events
       this.dispatch({
         type: 'ADD_EVENTS',

+ 0 - 4
src/interactions-external/ExternalElementDragging.ts

@@ -175,10 +175,6 @@ function computeEventForDateSpan(dateSpan: DateSpan, dragMeta: DragMeta, calenda
     Boolean(dragMeta.duration) // hasEnd
   )
 
-  if (!dragMeta.stick) {
-    def.isTemporary = true
-  }
-
   let start = dateSpan.range.start
 
   // only rely on time info if drop zone is all-day,

+ 9 - 13
src/reducers/eventStore.ts

@@ -30,13 +30,11 @@ export default function(eventStore: EventStore, action: Action, sourceHash: Even
       return excludeInstances(eventStore, action.instances)
 
     case 'REMOVE_EVENT_SOURCE':
-      return filterDefs(eventStore, function(eventDef: EventDef) {
-        return eventDef.sourceId !== action.sourceId
-      })
+      return excludeEventsBySourceId(eventStore, action.sourceId)
 
     case 'REMOVE_ALL_EVENT_SOURCES':
       return filterDefs(eventStore, function(eventDef: EventDef) {
-        return !eventDef.sourceId
+        return !eventDef.sourceId // only keep events with no source id
       })
 
     case 'REMOVE_ALL_EVENTS':
@@ -64,20 +62,12 @@ function receiveEvents(
     rawEvents = runEventDataTransform(rawEvents, eventSource.eventDataTransform)
     rawEvents = runEventDataTransform(rawEvents, calendar.opt('eventDataTransform'))
 
-    let dest = filterDefs(
-      eventStore,
-      function(eventDef: EventDef) {
-        // not the best isTemporary solution
-        return eventDef.sourceId !== eventSource.sourceId && !eventDef.isTemporary
-      }
-    )
-
     return parseEventStore(
       rawEvents,
       eventSource.sourceId,
       calendar,
       fetchRange,
-      dest
+      excludeEventsBySourceId(eventStore, eventSource.sourceId)
     )
   }
 
@@ -115,6 +105,12 @@ function excludeInstances(eventStore: EventStore, removals: EventInstanceHash):
   }
 }
 
+function excludeEventsBySourceId(eventStore, sourceId) {
+  return filterDefs(eventStore, function(eventDef: EventDef) {
+    return eventDef.sourceId !== sourceId
+  })
+}
+
 // has extra bonus feature of removing temporary events
 function filterDefs(eventStore: EventStore, filterFunc: (eventDef: EventDef) => boolean): EventStore {
   let defs = filterHash(eventStore.defs, filterFunc)

+ 0 - 1
src/structs/event.ts

@@ -65,7 +65,6 @@ export interface EventDef extends EventDefAttrs {
   isAllDay: boolean
   recurringDef: { typeId: number, typeData: {} } | null
   extendedProps: object
-  isTemporary?: boolean // if true, will disappear upon navigation
 }
 
 export interface EventInstance {