مساعدة صغيرة في محدد CSS؟

من ما أراه في الكود، يمكنك توقع رؤية أسماء الفئات التالية:

  • is-staff
  • is-admin
  • is-moderator
  • is-new-user
  • group--primary_group_name

يمكنك إنشاء مجموعة وتعيينها كمجموعة أساسية.
يمكنك أيضًا استخدام بعض الأكواد لإضافة أسماء الفئات المفقودة.

import { apiInitializer } from "discourse/lib/api";

export default apiInitializer((api) => {
  // Add the groups you wants to add
  const allowedGroups = ["trust_level_4"];

  api.modifyClass("components:chat/message/info", () => {
    return class extends SuperClass {
      @service currentUser;

      get usernameClasses() {
        if (!this.currentUser) {
          return super.usernameClasses;
        }
        const allowedGroupClasses = this.currentUser.groups
          .filter((g) => allowedGroups.includes(g.name))
          .map((g) => `group--${g.name}`)
          .join(" ");

        return super.usernameClasses + " " + allowedGroupClasses;
      }
    };
  });
});

ثم يمكنك استهداف CSS باستخدام .group--trust_level_4.

مثال:

.chat-message-info__username.group--trust_level_4 {
    .chat-message-info__username__name {
        color: blue;
    }
}

بالنسبة لاسم المستخدم، لا تحتاج إلى الكود أعلاه:

.chat-message-info__username.[data-user-card="username_here"]  {
    .chat-message-info__username__name {
        color: red;
    }
}
إعجاب واحد (1)