mirror of
https://github.com/discourse/discourse.git
synced 2026-08-15 17:24:47 +08:00
- convert chat/channels-list -> gjs - convert chat/chat-channel-archive-status -> gjs - convert chat/chat-channel-card -> gjs - convert chat/chat-channel-leave-btn -> gjs - convert chat/chat-channel-metadata -> gjs - convert chat/chat-channel-preview-card -> gjs - convert chat/chat-channel-status -> gjs - convert chat/chat-channel-unread-indicator -> gjs - convert chat/chat-composer-dropdown -> gjs - convert chat/chat-composer-message-details -> gjs - convert chat/chat-composer-upload -> gjs - convert chat/channel -> gjs - convert chat/header -> gjs - convert chat/back-link -> gjs - convert chat/channel-title -> gjs - convert chat/close-button -> gjs - convert chat/full-page-button -> gjs - convert chat/left-actions -> gjs - convert chat/right-actions -> gjs - convert chat/toggle-expand-button -> gjs - convert chat/index -> gjs - convert chat/chat-emoji-avatar -> gjs - convert chat/chat-mention-warnings -> gjs - convert chat/chat-message-in-reply-to-indicator -> gjs - convert chat/chat-message-separator-date -> gjs - convert chat/chat-message-separator-new -> gjs - convert chat/chat-message-text -> gjs - convert chat/chat-message-thread-indicator -> gjs - convert chat/chat-notice -> gjs - convert chat/chat-notices -> gjs - convert chat/chat-replying-indicator -> gjs - convert chat/chat-side-panel-resizer -> gjs - convert chat/chat-side-panel -> gjs - convert chat/chat-skeleton -> gjs - convert chat/chat-upload-drop-zone -> gjs - convert chat/chat-upload -> gjs - convert chat/chat-user-display-name -> gjs - convert chat/export-messages -> gjs - convert chat/button -> gjs - convert chat/separator -> gjs - convert chat/avatar -> gjs - convert chat/error -> gjs - convert chat/info -> gjs - convert chat/left-gutter -> gjs - convert chat/archive-channel -> gjs - convert chat/channel-summary -> gjs - convert chat/delete-channel -> gjs - convert chat/edit-channel-name -> gjs - convert chat/move-message-to-channel -> gjs - convert chat/thread-settings -> gjs - convert chat/toggle-channel-status -> gjs - convert chat/mention_without_membership -> gjs - convert chat/scroll-to-bottom-arrow -> gjs - convert chat/item -> gjs - convert chat/unread-indicator -> gjs - convert chat/user-card-button -> gjs - convert chat/full-page-chat -> gjs - convert chat/reviewable-chat-message -> gjs - convert chat/chat -> gjs - convert chat/toggle-channel-membership-button -> gjs - convert chat/chat-preferences -> gjs
75 lines
2.2 KiB
Text
Vendored
75 lines
2.2 KiB
Text
Vendored
import Component from "@glimmer/component";
|
|
import dIcon from "discourse-common/helpers/d-icon";
|
|
import I18n from "discourse-i18n";
|
|
import {
|
|
CHANNEL_STATUSES,
|
|
channelStatusIcon,
|
|
} from "discourse/plugins/chat/discourse/models/chat-channel";
|
|
import ChatChannelArchiveStatus from "./chat-channel-archive-status";
|
|
|
|
export default class ChatChannelStatus extends Component {
|
|
LONG_FORMAT = "long";
|
|
SHORT_FORMAT = "short";
|
|
VALID_FORMATS = [this.SHORT_FORMAT, this.LONG_FORMAT];
|
|
|
|
get format() {
|
|
return this.VALID_FORMATS.includes(this.args.format)
|
|
? this.args.format
|
|
: this.LONG_FORMAT;
|
|
}
|
|
|
|
get shouldRender() {
|
|
return (
|
|
this.channelStatusIcon &&
|
|
this.args.channel.status !== CHANNEL_STATUSES.open
|
|
);
|
|
}
|
|
|
|
get channelStatusMessage() {
|
|
if (this.format === this.LONG_FORMAT) {
|
|
return this.#longStatusMessage(this.args.channel.status);
|
|
} else {
|
|
return this.#shortStatusMessage(this.args.channel.status);
|
|
}
|
|
}
|
|
|
|
get channelStatusIcon() {
|
|
return channelStatusIcon(this.args.channel.status);
|
|
}
|
|
|
|
#shortStatusMessage(status) {
|
|
switch (status) {
|
|
case CHANNEL_STATUSES.archived:
|
|
return I18n.t("chat.channel_status.archived");
|
|
case CHANNEL_STATUSES.closed:
|
|
return I18n.t("chat.channel_status.closed");
|
|
case CHANNEL_STATUSES.open:
|
|
return I18n.t("chat.channel_status.open");
|
|
case CHANNEL_STATUSES.readOnly:
|
|
return I18n.t("chat.channel_status.read_only");
|
|
}
|
|
}
|
|
|
|
#longStatusMessage(status) {
|
|
switch (status) {
|
|
case CHANNEL_STATUSES.archived:
|
|
return I18n.t("chat.channel_status.archived_header");
|
|
case CHANNEL_STATUSES.closed:
|
|
return I18n.t("chat.channel_status.closed_header");
|
|
case CHANNEL_STATUSES.open:
|
|
return I18n.t("chat.channel_status.open_header");
|
|
case CHANNEL_STATUSES.readOnly:
|
|
return I18n.t("chat.channel_status.read_only_header");
|
|
}
|
|
}
|
|
|
|
<template>
|
|
{{#if this.shouldRender}}
|
|
<div class="chat-channel-status">
|
|
{{dIcon this.channelStatusIcon}}
|
|
<span>{{this.channelStatusMessage}}</span>
|
|
<ChatChannelArchiveStatus @channel={{@channel}} />
|
|
</div>
|
|
{{/if}}
|
|
</template>
|
|
}
|