feat: Add emoji picker functionality to MessageInputBar and hide keyboard when picker is open
This commit is contained in:
@@ -16,10 +16,12 @@ import androidx.compose.material.icons.filled.*
|
||||
import androidx.compose.material3.*
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
@@ -391,6 +393,7 @@ private fun MessageBubble(
|
||||
* + Плавная анимация самолетика
|
||||
* + Эмодзи пикер
|
||||
*/
|
||||
@OptIn(ExperimentalComposeUiApi::class)
|
||||
@Composable
|
||||
private fun MessageInputBar(
|
||||
value: String,
|
||||
@@ -403,6 +406,14 @@ private fun MessageInputBar(
|
||||
) {
|
||||
// Состояние эмодзи пикера
|
||||
var showEmojiPicker by remember { mutableStateOf(false) }
|
||||
val keyboardController = LocalSoftwareKeyboardController.current
|
||||
|
||||
// Скрываем клавиатуру когда открыт эмодзи пикер
|
||||
LaunchedEffect(showEmojiPicker) {
|
||||
if (showEmojiPicker) {
|
||||
keyboardController?.hide()
|
||||
}
|
||||
}
|
||||
|
||||
// Цвета для glass morphism эффекта
|
||||
val glassBackground = if (isDarkTheme)
|
||||
|
||||
Reference in New Issue
Block a user