diff --git a/desktop/src/features/channels/ui/ChannelPane.tsx b/desktop/src/features/channels/ui/ChannelPane.tsx index 121e211f47..c52edecb2b 100644 --- a/desktop/src/features/channels/ui/ChannelPane.tsx +++ b/desktop/src/features/channels/ui/ChannelPane.tsx @@ -322,7 +322,6 @@ export const ChannelPane = React.memo(function ChannelPane({ isSending; const knownAgentPubkeys = React.useMemo(() => { const pubkeys = new Set(); - for (const pubkey of agentPubkeys ?? []) { pubkeys.add(pubkey.toLowerCase()); } @@ -332,14 +331,12 @@ export const ChannelPane = React.memo(function ChannelPane({ for (const agent of activityAgents) { pubkeys.add(agent.pubkey.toLowerCase()); } - return pubkeys; }, [activityAgents, agentPubkeys, agentSessionAgents]); const completeWelcomeComposerBanner = React.useCallback(() => { if (!activeChannelId || !isActiveWelcomeChannel) { return; } - clearWelcomeComposerDismissTimer(); completedWelcomeBannerChannelIdsRef.current.add(activeChannelId); setWelcomeComposerBannerState("complete"); @@ -748,11 +745,42 @@ export const ChannelPane = React.memo(function ChannelPane({ /> ) : null} + {hasComposerBotActivity || hasTypingActivity ? ( +
+
+ {hasComposerBotActivity ? ( +
+ +
+ ) : null} + {hasTypingActivity ? ( + + ) : null} +
+
+ ) : null} -
-
- {hasComposerBotActivity ? ( -
- -
- ) : null} - {hasTypingActivity ? ( - - ) : null} -
-
)} diff --git a/desktop/src/features/messages/ui/MessageThreadPanel.tsx b/desktop/src/features/messages/ui/MessageThreadPanel.tsx index c7624e43a5..42df131192 100644 --- a/desktop/src/features/messages/ui/MessageThreadPanel.tsx +++ b/desktop/src/features/messages/ui/MessageThreadPanel.tsx @@ -823,6 +823,32 @@ export function MessageThreadPanel({ hasConstrainedColumn ? { maxWidth: columnMaxWidthPx } : undefined } > + {toolbarExtraActions || threadTypingPubkeys.length > 0 ? ( +
+
+ {toolbarExtraActions ? ( +
+ {toolbarExtraActions} +
+ ) : null} + {threadTypingPubkeys.length > 0 ? ( + + ) : null} +
+
+ ) : null} -
-
- {toolbarExtraActions ? ( -
- {toolbarExtraActions} -
- ) : null} - {threadTypingPubkeys.length > 0 ? ( - - ) : null} -
-
diff --git a/desktop/src/shared/styles/globals/composer.css b/desktop/src/shared/styles/globals/composer.css index 912ed1c799..6ebe89226a 100644 --- a/desktop/src/shared/styles/globals/composer.css +++ b/desktop/src/shared/styles/globals/composer.css @@ -1,7 +1,7 @@ .composer-overlay-corner-masks::before, .composer-overlay-corner-masks::after { position: absolute; - bottom: 2.5rem; + bottom: 1.25rem; z-index: 0; width: 1rem; height: 1rem; diff --git a/desktop/tests/e2e/channels.spec.ts b/desktop/tests/e2e/channels.spec.ts index 7da20334f3..6a20150b18 100644 --- a/desktop/tests/e2e/channels.spec.ts +++ b/desktop/tests/e2e/channels.spec.ts @@ -1740,14 +1740,6 @@ test("channel date divider keeps the date sticky while the separator rule scroll "backdrop-filter", "none", ); - const composerActivityRow = composerOverlay.getByTestId( - "channel-composer-activity-row", - ); - await expect(composerActivityRow).toHaveCSS("backdrop-filter", "none"); - await expect(composerActivityRow).not.toHaveCSS( - "background-color", - "rgba(0, 0, 0, 0)", - ); await expect .poll(async () => { const composerOverlayZIndex = await page