fix(desktop): restore solid dot for top-level channel unreads (#1253)

Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
This commit is contained in:
Will Pfleger
2026-06-24 18:40:49 -04:00
committed by GitHub
co-authored by npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7
parent ebd74d11b4
commit 9d3bfd38b0
2 changed files with 29 additions and 9 deletions
@@ -70,6 +70,23 @@ function UnreadCountBadge({
);
}
function UnreadDotBadge({
channelName,
className,
}: {
channelName: string;
className?: string;
}) {
return (
<span
className={cn("h-2 w-2 shrink-0 rounded-full bg-primary", className)}
data-testid={`channel-unread-dot-${channelName}`}
>
<span className="sr-only">unread</span>
</span>
);
}
export type SidebarDmParticipant = {
avatarUrl: string | null;
label: string;
@@ -233,15 +250,16 @@ export function ChannelMenuButton({
)}
/>
) : null}
{hasUnread &&
unreadCount > 0 &&
!isActive &&
channel.channelType !== "dm" ? (
<UnreadCountBadge
channelName={channel.name}
className="ml-auto"
count={Math.max(unreadCount, 1)}
/>
{hasUnread && !isActive && channel.channelType !== "dm" ? (
unreadCount > 0 ? (
<UnreadCountBadge
channelName={channel.name}
className="ml-auto"
count={unreadCount}
/>
) : (
<UnreadDotBadge channelName={channel.name} className="ml-auto" />
)
) : null}
</SidebarMenuButton>
);
+2
View File
@@ -105,6 +105,7 @@ test("regular message bolds inactive channel without numeric badge", async ({
"600",
);
await expect(page.getByTestId("channel-unread-random")).toHaveCount(0);
await expect(page.getByTestId("channel-unread-dot-random")).toBeVisible();
await waitForBadgeState(page, withDotOnlyBadge(baselineBadge));
});
@@ -134,6 +135,7 @@ test("numeric badge increments for @mention in inactive channel", async ({
);
await expect(page.getByTestId("channel-unread-random")).toBeVisible();
await expect(page.getByTestId("channel-unread-dot-random")).toHaveCount(0);
await waitForBadgeState(page, withAdditionalBadgeCount(baselineBadge, 1));
});