Thanks - that’ll teach me to copy stuff from core
So in terms of using dispatch
from my plugin, I have modified the parent component that contains the post-avatar
widget, to add the dispatch line.
api.modifyClass('component:scrolling-post-stream', {
didInsertElement() {
this._super();
this.dispatch('whosonline:changed', 'post-avatar');
}
});
I discovered that the second argument to dispatch
is not the name of the widget, it is in fact the buildKey
… This presents a problem for me. I need the event to be distributed to every instance of post-avatar
, but obviously each user’s avatar is presented differently, so assigning the same buildKey
to all of them makes very weird things happen.
Is implementing something like this the right thing to be do? Register/deregister for the appEvent
in the parent component, set dirtyKeys
to the buildKeys
that require re-rendering, then queue a re-render of the whole post stream widget?
Is there any way for me to set a wildcard dirtyKey
, something like post-avatar-*
?