From c87d4e82d39e976fd5dbbc7ccea4dfc22e069b08 Mon Sep 17 00:00:00 2001 From: byGalax Date: Tue, 12 May 2026 18:50:29 +0200 Subject: [PATCH] feat(call): doubleclick on focused tile clears pin Co-Authored-By: Claude Sonnet 4.6 --- apps/desktop/src/components/CallParticipantTile.tsx | 3 +++ apps/desktop/src/components/InCallPanel.tsx | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/apps/desktop/src/components/CallParticipantTile.tsx b/apps/desktop/src/components/CallParticipantTile.tsx index a1b9694..6ea808c 100644 --- a/apps/desktop/src/components/CallParticipantTile.tsx +++ b/apps/desktop/src/components/CallParticipantTile.tsx @@ -83,6 +83,7 @@ export interface ParticipantTileProps { size?: 'default' | 'small'; focused?: boolean; onClick?: () => void; + onDoubleClick?: () => void; onContextMenu?: (e: React.MouseEvent) => void; } @@ -102,6 +103,7 @@ export function CallParticipantTile(props: ParticipantTileProps) { size = 'default', focused = false, onClick, + onDoubleClick, onContextMenu, } = props; @@ -120,6 +122,7 @@ export function CallParticipantTile(props: ParticipantTileProps) { return (
void; + onDoubleClick?: () => void; onContextMenu?: (e: React.MouseEvent) => void; }): JSX.Element { if (tile.kind === 'screen') { @@ -939,6 +941,7 @@ function TileRender({ return (
div]:h-full [&>div]:w-full ' + (onClick ? 'cursor-pointer' : '')} > @@ -969,6 +972,7 @@ function TileRender({ {...(size ? { size } : {})} {...(focused ? { focused } : {})} {...(onClick ? { onClick } : {})} + {...(onDoubleClick ? { onDoubleClick } : {})} {...(onContextMenu ? { onContextMenu } : {})} /> ); @@ -997,6 +1001,7 @@ function CallStage({ activeSpeakers={activeSpeakers} remoteScreenShares={remoteScreenShares} conversationMembers={conversationMembers} + onDoubleClick={() => onFocusTile(speaker.id)} {...(onTileContextMenu ? { onContextMenu: (e: React.MouseEvent) => onTileContextMenu(speaker, e) } : {})} @@ -1068,6 +1073,7 @@ function FocusedTile({ remoteScreenShares, conversationMembers, onContextMenu, + onDoubleClick, }: { tile: Tile; e2ee: boolean; @@ -1075,6 +1081,7 @@ function FocusedTile({ remoteScreenShares: StageProps['remoteScreenShares']; conversationMembers: StageProps['conversationMembers']; onContextMenu?: (e: React.MouseEvent) => void; + onDoubleClick?: () => void; }) { return (
@@ -1086,6 +1093,7 @@ function FocusedTile({ conversationMembers={conversationMembers} focused {...(onContextMenu ? { onContextMenu } : {})} + {...(onDoubleClick ? { onDoubleClick } : {})} />
); @@ -1226,6 +1234,7 @@ function FullscreenCall({
onFocusTile(speaker!.id)} + onDoubleClick={() => onFocusTile(speaker!.id)} title="Zurück zur Übersicht" >