-
+ {/* Local video PIP (bottom-right) */}
+ {hasLocalVideo && (
+
+
+
+ )}
+
+ {/* Duration badge */}
+
+ {formatDuration(duration)}
- )}
- {/* Duration badge */}
-
-
{formatDuration(duration)}
+ {/* Top-right buttons */}
+
+
+
+
-
- {/* Top-right buttons: minimize + fullscreen */}
-
-
-
-
-
- ) : (
- /* === Voice / calling / incoming layout === */
-
- {/* Minimize button (top-right) */}
- {callState === 'connected' && (
-
- )}
- {/* Avatar with pulse — right-click for volume */}
-
{
- if (callState === 'connected') {
- e.preventDefault();
- setShowVolumeSlider(true);
- }
- }}
- title={callState === 'connected' ? t('rightClickVolume') : undefined}
- >
- {(callState === 'calling' || callState === 'connected') && (
- <>
-
-
- >
+ ) : (
+ /* === Voice / calling / incoming layout === */
+
+ {/* Minimize button (top-right) */}
+ {callState === 'connected' && (
+
)}
- {callState === 'incoming' && (
- <>
-
-
- >
- )}
-
- {displayAvatar ? (
-

- ) : (
-
- {initials}
-
+
+
+ {(callState === 'calling' || callState === 'connected') && (
+ <>
+
+
+ >
)}
+ {callState === 'incoming' && (
+ <>
+
+
+ >
+ )}
+
+ {displayAvatar ? (
+

+ ) : (
+
+ {initials}
+
+ )}
+
+
+
{displayName}
+
+ {callState === 'calling' && t('calling')}
+ {callState === 'incoming' && (callType === 'video' ? t('incomingVideoCall') : t('incomingCall'))}
+ {callState === 'connected' && formatDuration(duration)}
+ {callState === 'ended' && t('callEnded')}
+
+
+ {/* Local video preview (during calling with camera) */}
+ {hasLocalVideo && callState === 'calling' && (
+
+
+
+ )}
-
-
{displayName}
-
- {callState === 'calling' && t('calling')}
- {callState === 'incoming' && (callType === 'video' ? t('incomingVideoCall') : t('incomingCall'))}
- {callState === 'connected' && formatDuration(duration)}
- {callState === 'ended' && t('callEnded')}
-
-
- {/* Local video preview (during calling with camera) */}
- {hasLocalVideo && callState === 'calling' && (
-
-
-
- )}
-
- {/* Hidden remote video element */}
-
-
- )}
+ )}
+
{/* === Controls === */}