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