This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/plugins/chat/assets/javascripts/discourse/components/chat-message-info.js
Joffrey JAFFEUX 479c0a3051
DEV: adds is-new-user and primary group class (#20322)
This commit also refactors chat-message-info to use glimmer.
2023-02-16 17:17:16 +01:00

78 lines
1.6 KiB
JavaScript

import Component from "@glimmer/component";
import { prioritizeNameInUx } from "discourse/lib/settings";
import { inject as service } from "@ember/service";
import { bind } from "discourse-common/utils/decorators";
export default class ChatMessageInfo extends Component {
@service siteSettings;
@bind
trackStatus() {
this.#user?.trackStatus?.();
}
@bind
stopTrackingStatus() {
this.#user?.stopTrackingStatus?.();
}
get usernameClasses() {
const user = this.#user;
const classes = this.prioritizeName ? ["is-full-name"] : ["is-username"];
if (!user) {
return classes;
}
if (user.staff) {
classes.push("is-staff");
}
if (user.admin) {
classes.push("is-admin");
}
if (user.moderator) {
classes.push("is-moderator");
}
if (user.groupModerator) {
classes.push("is-category-moderator");
}
if (user.new_user) {
classes.push("is-new-user");
}
if (user.primary_group_name) {
classes.push("group--" + user.primary_group_name);
}
return classes.join(" ");
}
get name() {
return this.prioritizeName
? this.#user?.get("name")
: this.#user?.get("username");
}
get isFlagged() {
return (
this.#message?.get("reviewable_id") ||
this.#message?.get("user_flag_status") === 0
);
}
get prioritizeName() {
return (
this.siteSettings.display_name_on_posts &&
prioritizeNameInUx(this.#user?.get("name"))
);
}
get showStatus() {
return !!this.#user?.get("status");
}
get #user() {
return this.#message?.get("user");
}
get #message() {
return this.args.message;
}
}