Profile picture display has been standardized across the board.
This commit is contained in:
@@ -296,6 +296,12 @@ function roomTitle(room: ConversationRoomDto) {
|
||||
return peer?.fullName ?? room.name;
|
||||
}
|
||||
|
||||
function roomAvatarProps(room: ConversationRoomDto) {
|
||||
if (room.kind !== 'dm') return { src: '' };
|
||||
const peer = peers.value.find((p) => p.id === room.peerUserId);
|
||||
return { userId: room.peerUserId, hasAvatar: peer?.hasAvatar };
|
||||
}
|
||||
|
||||
function roomKindLabel(kind: ConversationRoomDto['kind']) {
|
||||
if (kind === 'channel') return 'کانال';
|
||||
if (kind === 'group') return 'گروه';
|
||||
@@ -1912,7 +1918,7 @@ onUnmounted(() => {
|
||||
@click="openRoom(room)"
|
||||
>
|
||||
<span class="avatar-ring">
|
||||
<UserAvatar :name="roomTitle(room)" :size="40" />
|
||||
<UserAvatar v-bind="roomAvatarProps(room)" :name="roomTitle(room)" :size="40" />
|
||||
</span>
|
||||
<span class="room-meta">
|
||||
<strong>
|
||||
@@ -2019,7 +2025,7 @@ onUnmounted(() => {
|
||||
<UiIcon name="arrow-right" :size="20" />
|
||||
</button>
|
||||
<span class="stage-avatar">
|
||||
<UserAvatar :name="roomTitle(activeRoom)" :size="36" />
|
||||
<UserAvatar v-bind="roomAvatarProps(activeRoom)" :name="roomTitle(activeRoom)" :size="36" />
|
||||
</span>
|
||||
<div class="stage-titles">
|
||||
<h2>{{ roomTitle(activeRoom) }}</h2>
|
||||
@@ -2274,7 +2280,7 @@ onUnmounted(() => {
|
||||
:class="{ active: idx === mentionIndex }"
|
||||
@click="insertMention(peer)"
|
||||
>
|
||||
<UserAvatar :name="peer.fullName" :size="28" />
|
||||
<UserAvatar :name="peer.fullName" :user-id="peer.id" :has-avatar="peer.hasAvatar" :size="28" />
|
||||
<span>{{ peer.fullName }}</span>
|
||||
</button>
|
||||
</div>
|
||||
@@ -2521,7 +2527,7 @@ onUnmounted(() => {
|
||||
:class="{ on: dmPeerId === p.id }"
|
||||
@click="dmPeerId = p.id"
|
||||
>
|
||||
<UserAvatar :name="p.fullName" :size="40" />
|
||||
<UserAvatar :name="p.fullName" :user-id="p.id" :has-avatar="p.hasAvatar" :size="40" />
|
||||
<span class="peer-row-meta">
|
||||
<strong>{{ p.fullName }}</strong>
|
||||
<small>گفتگوی خصوصی</small>
|
||||
@@ -2563,7 +2569,7 @@ onUnmounted(() => {
|
||||
:title="`حذف ${p.fullName}`"
|
||||
@click="toggleGroupMember(p.id)"
|
||||
>
|
||||
<UserAvatar :name="p.fullName" :size="22" />
|
||||
<UserAvatar :name="p.fullName" :user-id="p.id" :has-avatar="p.hasAvatar" :size="22" />
|
||||
<span>{{ p.fullName }}</span>
|
||||
<UiIcon name="x" :size="12" />
|
||||
</button>
|
||||
@@ -2586,7 +2592,7 @@ onUnmounted(() => {
|
||||
:class="{ on: groupMemberIds.includes(p.id) }"
|
||||
@click="toggleGroupMember(p.id)"
|
||||
>
|
||||
<UserAvatar :name="p.fullName" :size="40" />
|
||||
<UserAvatar :name="p.fullName" :user-id="p.id" :has-avatar="p.hasAvatar" :size="40" />
|
||||
<span class="peer-row-meta">
|
||||
<strong>{{ p.fullName }}</strong>
|
||||
<small>{{ groupMemberIds.includes(p.id) ? 'انتخابشده' : 'برای افزودن بزنید' }}</small>
|
||||
@@ -2638,7 +2644,7 @@ onUnmounted(() => {
|
||||
:title="`حذف ${p.fullName}`"
|
||||
@click="toggleChannelMember(p.id)"
|
||||
>
|
||||
<UserAvatar :name="p.fullName" :size="22" />
|
||||
<UserAvatar :name="p.fullName" :user-id="p.id" :has-avatar="p.hasAvatar" :size="22" />
|
||||
<span>{{ p.fullName }}</span>
|
||||
<UiIcon name="x" :size="12" />
|
||||
</button>
|
||||
@@ -2661,7 +2667,7 @@ onUnmounted(() => {
|
||||
:class="{ on: channelMemberIds.includes(p.id) }"
|
||||
@click="toggleChannelMember(p.id)"
|
||||
>
|
||||
<UserAvatar :name="p.fullName" :size="40" />
|
||||
<UserAvatar :name="p.fullName" :user-id="p.id" :has-avatar="p.hasAvatar" :size="40" />
|
||||
<span class="peer-row-meta">
|
||||
<strong>{{ p.fullName }}</strong>
|
||||
<small>{{ channelMemberIds.includes(p.id) ? 'انتخابشده' : 'برای افزودن بزنید' }}</small>
|
||||
@@ -2853,7 +2859,7 @@ onUnmounted(() => {
|
||||
<div v-if="membersBusy && !roomMembers.length" class="muted center pad">در حال بارگذاری…</div>
|
||||
<div v-else class="peer-list members-list">
|
||||
<div v-for="m in roomMembers" :key="m.userId" class="peer-row member-static">
|
||||
<UserAvatar :name="m.fullName" :size="40" />
|
||||
<UserAvatar :name="m.fullName" :user-id="m.userId" :has-avatar="m.hasAvatar" :size="40" />
|
||||
<span class="peer-row-meta">
|
||||
<strong>{{ m.fullName }}{{ m.isMe ? ' (شما)' : '' }}</strong>
|
||||
<small>{{ m.role === 'admin' ? 'ادمین' : 'عضو' }}</small>
|
||||
@@ -2904,7 +2910,7 @@ onUnmounted(() => {
|
||||
:disabled="forwardBusy"
|
||||
@click="confirmForward(room.externalRoomId)"
|
||||
>
|
||||
<UserAvatar :name="roomTitle(room)" :size="36" />
|
||||
<UserAvatar v-bind="roomAvatarProps(room)" :name="roomTitle(room)" :size="36" />
|
||||
<span>{{ roomTitle(room) }}</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user