feat: Preload emojis asynchronously and improve keyboard height handling in ChatDetailScreen
This commit is contained in:
@@ -247,7 +247,15 @@ fun ChatDetailScreen(
|
||||
// Высота эмодзи панели - берём высоту клавиатуры если она открыта, иначе 280dp
|
||||
val imeInsets = WindowInsets.ime
|
||||
val imeHeight = with(density) { imeInsets.getBottom(density).toDp() }
|
||||
val emojiPanelHeight = if (imeHeight > 50.dp) imeHeight else 280.dp
|
||||
|
||||
// 🔥 Запоминаем высоту клавиатуры когда она открыта
|
||||
var savedKeyboardHeight by remember { mutableStateOf(280.dp) }
|
||||
LaunchedEffect(imeHeight) {
|
||||
if (imeHeight > 50.dp) {
|
||||
savedKeyboardHeight = imeHeight
|
||||
}
|
||||
}
|
||||
val emojiPanelHeight = savedKeyboardHeight
|
||||
|
||||
// 🔥 Reply/Forward state
|
||||
val replyMessages by viewModel.replyMessages.collectAsState()
|
||||
@@ -1927,8 +1935,16 @@ private fun MessageInputBar(
|
||||
val imeHeight = with(density) { imeInsets.getBottom(density).toDp() }
|
||||
val isKeyboardVisible = imeHeight > 0.dp
|
||||
|
||||
// Высота панели эмодзи = высота клавиатуры (или 280dp по умолчанию)
|
||||
val emojiPanelHeight = if (imeHeight > 50.dp) imeHeight else 280.dp
|
||||
// 🔥 Запоминаем высоту клавиатуры когда она открыта
|
||||
var savedKeyboardHeight by remember { mutableStateOf(280.dp) }
|
||||
LaunchedEffect(imeHeight) {
|
||||
if (imeHeight > 50.dp) {
|
||||
savedKeyboardHeight = imeHeight
|
||||
}
|
||||
}
|
||||
|
||||
// Высота панели эмодзи = сохранённая высота клавиатуры
|
||||
val emojiPanelHeight = savedKeyboardHeight
|
||||
|
||||
// Состояние отправки
|
||||
val canSend = remember(value) { value.isNotBlank() }
|
||||
|
||||
Reference in New Issue
Block a user