28 lines
775 B
JavaScript
28 lines
775 B
JavaScript
import Component from "@ember/component";
|
|
import { gt } from "@ember/object/computed";
|
|
import { inject as service } from "@ember/service";
|
|
import discourseComputed, { on } from "discourse-common/utils/decorators";
|
|
import { TOPIC_TYPE } from "discourse/plugins/discourse-presence/discourse/lib/presence";
|
|
|
|
export default Component.extend({
|
|
topic: null,
|
|
presenceManager: service(),
|
|
|
|
@discourseComputed("topic.id")
|
|
users(topicId) {
|
|
return this.presenceManager.users(topicId);
|
|
},
|
|
|
|
shouldDisplay: gt("users.length", 0),
|
|
|
|
@on("didInsertElement")
|
|
subscribe() {
|
|
this.presenceManager.subscribe(this.get("topic.id"), TOPIC_TYPE);
|
|
},
|
|
|
|
@on("willDestroyElement")
|
|
_destroyed() {
|
|
this.presenceManager.unsubscribe(this.get("topic.id"), TOPIC_TYPE);
|
|
}
|
|
});
|