add observeSafely()
This commit is contained in:
parent
82e003f7f5
commit
321a90251a
|
@ -32,10 +32,10 @@
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
oncreate () {
|
oncreate () {
|
||||||
this.observe('showFooter', showFooter => {
|
this.observeSafely('showFooter', showFooter => {
|
||||||
this.store.setForRealm({showFooter: showFooter})
|
this.store.setForRealm({showFooter: showFooter})
|
||||||
})
|
})
|
||||||
this.observe('items', (items) => {
|
this.observeSafely('items', (items) => {
|
||||||
mark('set items')
|
mark('set items')
|
||||||
this.store.setForRealm({items: items})
|
this.store.setForRealm({items: items})
|
||||||
stop('set items')
|
stop('set items')
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
}, SCROLL_TO_BOTTOM_DELAY)
|
}, SCROLL_TO_BOTTOM_DELAY)
|
||||||
})
|
})
|
||||||
|
|
||||||
this.observe('allVisibleItemsHaveHeight', allVisibleItemsHaveHeight => {
|
this.observeSafely('allVisibleItemsHaveHeight', allVisibleItemsHaveHeight => {
|
||||||
if (allVisibleItemsHaveHeight) {
|
if (allVisibleItemsHaveHeight) {
|
||||||
this.fire('initializedVisibleItems')
|
this.fire('initializedVisibleItems')
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
|
|
||||||
let observedOnce = false
|
let observedOnce = false
|
||||||
|
|
||||||
this.observe('distanceFromBottom', (distanceFromBottom) => {
|
this.observeSafely('distanceFromBottom', (distanceFromBottom) => {
|
||||||
if (!observedOnce) {
|
if (!observedOnce) {
|
||||||
observedOnce = true // TODO: the first time is always 0... need better way to handle this
|
observedOnce = true // TODO: the first time is always 0... need better way to handle this
|
||||||
return
|
return
|
||||||
|
@ -77,6 +77,19 @@
|
||||||
},
|
},
|
||||||
// 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
|
||||||
|
},
|
||||||
|
ondestroy() {
|
||||||
|
this.__destroyed = true
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
observeSafely(val, callback) {
|
||||||
|
// TODO: feels like this shouldn't be necessary... bug in Svelte?
|
||||||
|
this.observe(val, val => {
|
||||||
|
if (!this.__destroyed) {
|
||||||
|
callback(val)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
Loading…
Reference in a new issue