Chat List: Move unread badge on forum view (#6837)

This commit is contained in:
Alexander Zinchuk 2026-04-14 14:36:24 +02:00
parent 854ee08d7e
commit e98306c8b3
3 changed files with 32 additions and 27 deletions

View File

@ -137,22 +137,18 @@
align-self: stretch;
}
.avatar-badge-wrapper {
.avatar-wrapper {
--outline-color: var(--color-background);
position: relative;
flex-shrink: 0;
}
.avatar-badge-wrapper {
position: absolute;
z-index: var(--z-badge);
right: 0.5rem;
bottom: 0;
.chat-badge-transition {
position: relative;
transition: opacity var(--layer-transition), transform var(--layer-transition);
body.no-page-transitions & {
transition: opacity var(--layer-transition);
}
}
}
.avatar-badge {

View File

@ -422,24 +422,26 @@ const Chat: FC<OwnProps & StateProps> = ({
onDragLeave={onDragLeave}
>
<div className={buildClassName('status', 'status-clickable')}>
<Avatar
peer={isMonoforum ? monoforumChannel : peer}
isSavedMessages={user?.isSelf}
isSavedDialog={isSavedDialog}
size={isPreview ? 'medium' : 'large'}
asMessageBubble={isMonoforum}
withStory={!user?.isSelf && !isMonoforum}
withStoryGap={isAvatarOnlineShown || Boolean(chat.subscriptionUntil)}
storyViewerOrigin={StoryViewerOrigin.ChatList}
storyViewerMode="single-peer"
/>
<div className="avatar-badge-wrapper">
<div
className={buildClassName('avatar-online', 'avatar-badge', isAvatarOnlineShown && 'avatar-online-shown')}
<div className="avatar-wrapper">
<Avatar
peer={isMonoforum ? monoforumChannel : peer}
isSavedMessages={user?.isSelf}
isSavedDialog={isSavedDialog}
size={isPreview ? 'medium' : 'large'}
asMessageBubble={isMonoforum}
withStory={!user?.isSelf && !isMonoforum}
withStoryGap={isAvatarOnlineShown || Boolean(chat.subscriptionUntil)}
storyViewerOrigin={StoryViewerOrigin.ChatList}
storyViewerMode="single-peer"
/>
{!isAvatarOnlineShown && Boolean(chat.subscriptionUntil) && (
<StarIcon type="gold" className="avatar-badge avatar-subscription" size="adaptive" />
)}
<div className="avatar-badge-wrapper">
<div
className={buildClassName('avatar-online', 'avatar-badge', isAvatarOnlineShown && 'avatar-online-shown')}
/>
{!isAvatarOnlineShown && Boolean(chat.subscriptionUntil) && (
<StarIcon type="gold" className="avatar-badge avatar-subscription" size="adaptive" />
)}
</div>
<ChatBadge
chat={chat}
isMuted={isMuted}

View File

@ -50,6 +50,13 @@
display: flex;
}
.onAvatar {
position: absolute;
z-index: 1;
top: 0.0625rem;
right: 0.3125rem;
}
.mention,
.unread,
.unopened {