From 9ce6a38792639061ad8bb326223c4615b339c0f2 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Tue, 9 Jun 2026 10:26:08 +0700 Subject: [PATCH] Fix mobile composer send button shift --- packages/app/src/composer/index.tsx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/app/src/composer/index.tsx b/packages/app/src/composer/index.tsx index 06c18e376..d92e518d9 100644 --- a/packages/app/src/composer/index.tsx +++ b/packages/app/src/composer/index.tsx @@ -170,10 +170,12 @@ function buildCancelButtonStyle(isConnected: boolean, isCancellingAgent: boolean function buildRealtimeVoiceButtonStyle( hovered: boolean | undefined, voiceButtonDisabled: boolean, + reserveLeadingSpace: boolean, ): object[] { const hoveredStyle = hovered ? styles.iconButtonHovered : undefined; const disabledStyle = voiceButtonDisabled ? styles.buttonDisabled : undefined; - return [styles.realtimeVoiceButton, hoveredStyle, disabledStyle].filter( + const reserveStyle = reserveLeadingSpace ? styles.realtimeVoiceButtonCompactReserve : undefined; + return [styles.realtimeVoiceButton, reserveStyle, hoveredStyle, disabledStyle].filter( (value): value is object => Boolean(value), ); } @@ -1415,8 +1417,8 @@ export function Composer({ const voiceButtonDisabled = !isConnected || isVoiceSwitching; const realtimeVoiceButtonStyle = useCallback( (state: PressableStateCallbackType & { hovered?: boolean }) => - buildRealtimeVoiceButtonStyle(state.hovered, voiceButtonDisabled), - [voiceButtonDisabled], + buildRealtimeVoiceButtonStyle(state.hovered, voiceButtonDisabled, isCompactLayout), + [isCompactLayout, voiceButtonDisabled], ); const cancelButton = useMemo( @@ -1851,6 +1853,9 @@ const styles = StyleSheet.create((theme: Theme) => ({ alignItems: "center", justifyContent: "center", }, + realtimeVoiceButtonCompactReserve: { + marginLeft: theme.spacing[1], + }, realtimeVoiceButtonActive: { backgroundColor: theme.colors.palette.green[600], borderColor: theme.colors.palette.green[800],