<view class="app-message-group {{expanded ? 'app-message-group--expanded' : ''}} {{homogeneous ? 'app-message-group--homogeneous' : 'app-message-group--mixed'}}">
  <view
    class="app-message-group__header"
    bindtap="onToggle"
    hover-class="app-message-group__header--hover"
    aria-label="{{expanded ? collapseLabel : expandLabel}}"
  >
    <view class="app-message-group__avatar-slot">
      <image wx:if="{{resolvedAvatarUrl}}" class="app-message-group__avatar-img" src="{{resolvedAvatarUrl}}" mode="{{avatarImageMode}}" data-avatar-url="{{resolvedAvatarUrl}}" binderror="onAvatarError" />
      <view wx:else class="app-message-group__avatar-initials">{{avatarInitials}}</view>
    </view>
    <view class="app-message-group__meta">
      <view class="app-message-group__title-row">
        <text class="app-message-group__title">{{displayName}}</text>
        <text wx:if="{{formattedTimestamp}}" class="app-message-group__time">{{formattedTimestamp}}</text>
      </view>
      <view wx:if="{{latestPreview}}" class="app-message-group__preview">
        <text class="app-message-group__preview-text">{{latestPreview}}</text>
      </view>
    </view>
    <view class="app-message-group__count-badge">
      <text class="app-message-group__count-label">{{countLabel}}</text>
      <view class="app-message-group__chevron icon icon--sm icon--chevron-down {{expanded ? 'app-message-group__chevron--expanded' : ''}}" aria-label="{{expanded ? collapseLabel : expandLabel}}"></view>
    </view>
  </view>
  <block wx:if="{{expanded}}">
    <view class="app-message-group__body">
      <block wx:for="{{items}}" wx:key="key">
        <view class="app-message-group__item {{homogeneous ? 'app-message-group__item--condensed' : ''}}">
          <message-bubble
            message="{{item.message}}"
            locale-version="{{localeVersion}}"
            show-author="{{homogeneous ? false : item.showAuthor}}"
            last-in-group="{{item.lastInGroup}}"
            pending-status="{{item.pendingStatus}}"
            client-message-id="{{item.clientMessageId}}"
            thread-channel-id="{{item.threadChannelId}}"
            thread-parent-message-id="{{item.threadParentMessageId}}"
            thread-reply-count="{{item.threadReplyCount}}"
            thread-participants="{{item.threadParticipants}}"
            bindopenthread="onOpenThread"
            bindmentiontap="onMentionTap"
            bindagenttap="onAgentTap"
            bindagentlongpress="onAgentLongPress"
            bindretrymessage="onRetryMessage"
          />
        </view>
      </block>
    </view>
  </block>
</view>
