You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor message and input UI components for improved state management and performance
- introduce `MessageAppearanceConfig`, `MessageRowBehaviorConfig`, and `MessageRowUiFlags` to centralize message rendering and interaction logic
- refactor `ChatInputBar` to use structured state objects (`ChatInputBarCapabilities`, `ComposerRowState`, `ComposerBotState`) for cleaner prop drilling
- implement `derivedStateOf` and `rememberUpdatedState` in `InputTextField` to optimize composition and avoid unnecessary rebuilds during text transformation
- decompose `VideoMessageBubble` into specialized sub-components (e.g., `VideoMuteToggle`, `VideoPlaybackBadge`, `VideoInteractionOverlay`) for better maintainability
- extract message bubble layout tracking into `MessageBubbleLayoutTracker` to standardize position reporting for context menus and replies
- modularize `ChatInputBarComposerSection` into `ComposerMainRow`, `ComposerInputSlot`, and `ComposerActionsSlot`
- consolidate sender grouping logic into a unified `buildSenderGrouping` utility
- update `MessageBubbleContainer` and `AlbumMessageBubbleContainer` to utilize the new configuration contracts for UI flags and behavior
- simplify `InputBarSendButton` by passing a single `InputBarSendButtonState` object
- refine `InputTextFieldContainer` logic to use `InputTextFieldUiState` for reactive visibility and action states
Copy file name to clipboardExpand all lines: presentation/src/main/java/org/monogram/presentation/features/chats/conversation/ui/AlbumMessageBubbleContainer.kt
0 commit comments