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; align-self: stretch;
} }
.avatar-badge-wrapper { .avatar-wrapper {
--outline-color: var(--color-background); --outline-color: var(--color-background);
position: relative;
flex-shrink: 0;
}
.avatar-badge-wrapper {
position: absolute; position: absolute;
z-index: var(--z-badge); z-index: var(--z-badge);
right: 0.5rem; right: 0.5rem;
bottom: 0; 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 { .avatar-badge {

View File

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

View File

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