feat: Enhance emoji picker transition with fade animations and optimize imePadding behavior

This commit is contained in:
k1ngsterr1
2026-01-15 14:18:48 +05:00
parent 911f9ebb5a
commit ed4622ae27
3 changed files with 71 additions and 58 deletions

View File

@@ -905,10 +905,18 @@ fun ChatDetailScreen(
} // Закрытие AnimatedVisibility для normal header
},
containerColor = backgroundColor, // Фон всего чата
// 🔥 Bottom bar - инпут с imePadding автоматически поднимается над клавиатурой
// 🔥 Bottom bar - инпут с умным padding:
// - Когда showEmojiPicker=false → imePadding (поднимается над клавиатурой)
// - Когда showEmojiPicker=true → НЕТ imePadding (Box с эмодзи сам даёт высоту)
bottomBar = {
// 🔥 Весь bottomBar поднимается над клавиатурой
Column(modifier = Modifier.imePadding()) {
// 🔥 Telegram-style: когда Box с эмодзи виден, НЕ используем imePadding
// isEmojiBoxVisible учитывает анимацию fade-out (alpha > 0.01)
val bottomModifier = if (coordinator.isEmojiBoxVisible) {
Modifier // Без imePadding - Box с эмодзи заменяет клавиатуру
} else {
Modifier.imePadding() // С imePadding - клавиатура поднимает инпут
}
Column(modifier = bottomModifier) {
// 🔥 FLOATING INPUT BAR - плавает поверх сообщений, поднимается с клавиатурой
// Скрываем когда в режиме выбора
AnimatedVisibility(