temporary hack to avoid excessive observers
This commit is contained in:
parent
2a86425c90
commit
c8c7c03864
|
@ -138,12 +138,9 @@
|
||||||
&& timelineValue !== $firstTimelineItemId
|
&& timelineValue !== $firstTimelineItemId
|
||||||
&& timelineValue
|
&& timelineValue
|
||||||
},
|
},
|
||||||
itemIdsToAdd: (timeline, $currentInstance, $timelines) => {
|
itemIdsToAdd: ($itemIdsToAdd) => $itemIdsToAdd,
|
||||||
return ($timelines &&
|
// hack to avoid getting called too often
|
||||||
$timelines[$currentInstance] &&
|
itemIdsToAddStringified: (itemIdsToAdd) => JSON.stringify(itemIdsToAdd),
|
||||||
$timelines[$currentInstance][timeline] &&
|
|
||||||
$timelines[$currentInstance][timeline].itemIdsToAdd) || []
|
|
||||||
},
|
|
||||||
headerProps: (itemIdsToAdd) => {
|
headerProps: (itemIdsToAdd) => {
|
||||||
return {
|
return {
|
||||||
count: (itemIdsToAdd && itemIdsToAdd.length) || 0,
|
count: (itemIdsToAdd && itemIdsToAdd.length) || 0,
|
||||||
|
@ -207,7 +204,9 @@
|
||||||
this.store.setForTimeline(instanceName, timelineName, {shouldShowHeader: true})
|
this.store.setForTimeline(instanceName, timelineName, {shouldShowHeader: true})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.observe('itemIdsToAdd', itemIdsToAdd => {
|
this.observe('itemIdsToAddStringified', itemIdsToAddStringified => {
|
||||||
|
let itemIdsToAdd = typeof itemIdsToAddStringified === 'undefined' ? undefined :
|
||||||
|
JSON.parse(itemIdsToAddStringified)
|
||||||
if (itemIdsToAdd && itemIdsToAdd.length) {
|
if (itemIdsToAdd && itemIdsToAdd.length) {
|
||||||
scheduleIdleTask(handleItemIdsToAdd)
|
scheduleIdleTask(handleItemIdsToAdd)
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,24 +33,29 @@
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
oncreate () {
|
oncreate () {
|
||||||
|
this.fireScrollToBottom = throttle(() => {
|
||||||
|
this.fire('scrollToBottom')
|
||||||
|
}, SCROLL_EVENT_THROTTLE)
|
||||||
|
this.fireScrollToTop = throttle(() => {
|
||||||
|
this.fire('scrollToTop')
|
||||||
|
}, SCROLL_EVENT_THROTTLE)
|
||||||
this.observe('showFooter', showFooter => {
|
this.observe('showFooter', showFooter => {
|
||||||
|
mark('set showFooter')
|
||||||
this.store.setForRealm({showFooter: showFooter})
|
this.store.setForRealm({showFooter: showFooter})
|
||||||
|
mark('set showFooter')
|
||||||
})
|
})
|
||||||
this.observe('showHeader', showHeader => {
|
this.observe('showHeader', showHeader => {
|
||||||
|
mark('set showHeader')
|
||||||
this.store.setForRealm({showHeader: showHeader})
|
this.store.setForRealm({showHeader: showHeader})
|
||||||
|
stop('set showHeader')
|
||||||
})
|
})
|
||||||
this.observe('items', (items) => {
|
this.observe('itemsStringified', (itemsStringified) => {
|
||||||
|
let items = typeof itemsStringified === 'undefined' ? undefined :
|
||||||
|
JSON.parse(itemsStringified)
|
||||||
mark('set items')
|
mark('set items')
|
||||||
this.store.setForRealm({items: items})
|
this.store.setForRealm({items: items})
|
||||||
stop('set items')
|
stop('set items')
|
||||||
this.fireScrollToBottom = throttle(() => {
|
|
||||||
this.fire('scrollToBottom')
|
|
||||||
}, SCROLL_EVENT_THROTTLE)
|
|
||||||
this.fireScrollToTop = throttle(() => {
|
|
||||||
this.fire('scrollToTop')
|
|
||||||
}, SCROLL_EVENT_THROTTLE)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
this.observe('allVisibleItemsHaveHeight', allVisibleItemsHaveHeight => {
|
this.observe('allVisibleItemsHaveHeight', allVisibleItemsHaveHeight => {
|
||||||
if (allVisibleItemsHaveHeight) {
|
if (allVisibleItemsHaveHeight) {
|
||||||
this.fire('initializedVisibleItems')
|
this.fire('initializedVisibleItems')
|
||||||
|
@ -91,7 +96,9 @@
|
||||||
},
|
},
|
||||||
distanceFromTop: ($scrollTop) => $scrollTop,
|
distanceFromTop: ($scrollTop) => $scrollTop,
|
||||||
// TODO: bug in svelte store, shouldn't need to do this
|
// TODO: bug in svelte store, shouldn't need to do this
|
||||||
allVisibleItemsHaveHeight: ($allVisibleItemsHaveHeight) => $allVisibleItemsHaveHeight
|
allVisibleItemsHaveHeight: ($allVisibleItemsHaveHeight) => $allVisibleItemsHaveHeight,
|
||||||
|
// hack to avoid getting called too often
|
||||||
|
itemsStringified: (items) => JSON.stringify(items)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
Loading…
Reference in New Issue