feat: Preload emojis asynchronously and improve keyboard height handling in ChatDetailScreen

This commit is contained in:
k1ngsterr1
2026-01-14 00:03:37 +05:00
parent dfaef56fb7
commit f9c1425403
3 changed files with 26 additions and 11 deletions

View File

@@ -36,7 +36,6 @@ import coil.request.ImageRequest
import com.rosetta.messenger.ui.onboarding.PrimaryBlue
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withContext
/**
@@ -608,15 +607,11 @@ fun AppleEmojiPickerPanel(
var selectedCategory by remember { mutableStateOf(EMOJI_CATEGORIES[0]) }
val gridState = rememberLazyGridState()
// 🚀 Предзагружаем эмодзи СИНХРОННО при создании компонента
val emojisReady = remember {
// 🚀 Загружаем эмодзи АСИНХРОННО - без блокировки UI
LaunchedEffect(Unit) {
if (!EmojiCache.isLoaded) {
// Загружаем синхронно для мгновенного отображения
runBlocking {
EmojiCache.loadEmojis(context)
}
EmojiCache.loadEmojis(context)
}
true
}
// Текущие эмодзи для выбранной категории - используем derivedStateOf для оптимизации