Mark VanLandingham 9c65e2140a
DEV: Use Notice API for mention warnings ()
This PR swaps out the custom pathway to publishing and rendering mention warnings after a message is sent.

ChatPublisher#publish_notice is used, and expanded. Now, instead of only accepting text_content as an argument, component and component_args are accepted and there is a renderer for these components.

Translations moved to server, as notices expect text to be passed in unless a component is rendered

The warnings are rendered at the top now, outside of the scope of the single message that sent it.

I entirely removed the jit_messages_spec b/c it's duplicate testing of other parts of the app. IMO we don't need a backend test for a feature, a component test for the feature AND a system test (that is slow and potentially even flakey due to timing issues with wait) to test the same thing. So jit_messages_spec is gone.
2023-09-01 09:07:23 -05:00

22 lines
646 B
JavaScript

import Component from "@glimmer/component";
import MentionWithoutMembership from "discourse/plugins/chat/discourse/components/chat/notices/mention_without_membership";
import { action } from "@ember/object";
import { inject as service } from "@ember/service";
const COMPONENT_DICT = {
mention_without_membership: MentionWithoutMembership,
};
export default class ChatNotices extends Component {
@service("chat-channel-pane-subscriptions-manager") subscriptionsManager;
@action
clearNotice() {
this.subscriptionsManager.clearNotice(this.args.notice);
}
get component() {
return COMPONENT_DICT[this.args.notice.type];
}
}