FIX: Chat member user card rendered out of view (#20332)

This commit is contained in:
Jan Cernik 2023-02-17 10:14:00 -03:00 committed by GitHub
parent a0b83dac86
commit f48e25b215
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 45 additions and 12 deletions

View File

@ -29,15 +29,9 @@
<div role="list" class="channel-members-view__list"> <div role="list" class="channel-members-view__list">
{{#each this.members as |membership|}} {{#each this.members as |membership|}}
<a <div class="channel-members-view__list-item">
class="channel-members-view__list-item" <ChatUserInfo @user={{membership.user}} />
href={{membership.user.userPath}} </div>
data-user-card={{membership.user.username}}
tabindex="0"
>
<ChatUserAvatar @user={{membership.user}} @avatarSize="medium" />
<ChatUserDisplayName @user={{membership.user}} />
</a>
{{else}} {{else}}
{{#unless this.isFetchingMembers}} {{#unless this.isFetchingMembers}}
{{i18n "chat.channel.no_memberships_found"}} {{i18n "chat.channel.no_memberships_found"}}

View File

@ -0,0 +1,8 @@
{{#if @user}}
<a href={{this.userPath}} data-user-card={{@user.username}}>
<ChatUserAvatar @user={{@user}} @avatarSize="medium" />
</a>
<a href={{this.userPath}} data-user-card={{@user.username}}>
<ChatUserDisplayName @user={{@user}} />
</a>
{{/if}}

View File

@ -0,0 +1,8 @@
import Component from "@glimmer/component";
import { userPath } from "discourse/lib/url";
export default class ChatUserInfo extends Component {
get userPath() {
return userPath(this.args.user.username);
}
}

View File

@ -112,9 +112,8 @@ input.channel-members-view__search-input {
align-items: center; align-items: center;
padding: 0.5rem 0 0.5rem 1px; padding: 0.5rem 0 0.5rem 1px;
&:hover { &:not(:last-child) {
background-color: var(--tertiary-very-low); border-bottom: 1px solid var(--primary-low);
border-radius: 0.25rem;
} }
.chat-user-avatar { .chat-user-avatar {

View File

@ -0,0 +1,24 @@
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
import hbs from "htmlbars-inline-precompile";
import { module, test } from "qunit";
import { render } from "@ember/test-helpers";
module("Discourse Chat | Component | chat-user-info", function (hooks) {
setupRenderingTest(hooks);
test("avatar and name", async function (assert) {
this.set("user", this.currentUser);
await render(hbs`<ChatUserInfo @user={{this.user}} />`);
assert
.dom(`a[data-user-card=${this.user.username}] div.chat-user-avatar`)
.exists();
assert
.dom(
`a[data-user-card=${this.user.username}] span.chat-user-display-name`
)
.includesText(this.user.username);
});
});