You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
2.1 KiB
59 lines
2.1 KiB
import androidx.compose.foundation.background |
|
import androidx.compose.foundation.clickable |
|
import androidx.compose.foundation.layout.Row |
|
import androidx.compose.foundation.layout.fillMaxWidth |
|
import androidx.compose.foundation.layout.padding |
|
import androidx.compose.material.Icon |
|
import androidx.compose.material.MaterialTheme |
|
import androidx.compose.material.Text |
|
import androidx.compose.material.TextField |
|
import androidx.compose.material.TextFieldDefaults |
|
import androidx.compose.material.icons.Icons |
|
import androidx.compose.material.icons.filled.Send |
|
import androidx.compose.runtime.Composable |
|
import androidx.compose.runtime.getValue |
|
import androidx.compose.runtime.mutableStateOf |
|
import androidx.compose.runtime.remember |
|
import androidx.compose.runtime.setValue |
|
import androidx.compose.ui.Alignment |
|
import androidx.compose.ui.Modifier |
|
import androidx.compose.ui.graphics.Color |
|
import androidx.compose.ui.unit.dp |
|
|
|
@Composable |
|
fun SendMessage(sendMessage: (String) -> Unit) { |
|
var inputText by remember { mutableStateOf("") } |
|
TextField( |
|
modifier = Modifier.fillMaxWidth() |
|
.background(MaterialTheme.colors.background) |
|
.padding(10.dp), |
|
colors = TextFieldDefaults.textFieldColors(backgroundColor = Color.White), |
|
value = inputText, |
|
placeholder = { |
|
Text("Type message...") |
|
}, |
|
onValueChange = { |
|
inputText = it |
|
}, |
|
trailingIcon = { |
|
if (inputText.isNotEmpty()) { |
|
Row( |
|
modifier = Modifier |
|
.clickable { |
|
sendMessage(inputText) |
|
inputText = "" |
|
} |
|
.padding(10.dp), |
|
verticalAlignment = Alignment.CenterVertically, |
|
) { |
|
Icon( |
|
imageVector = Icons.Default.Send, |
|
contentDescription = "Send", |
|
tint = MaterialTheme.colors.primary |
|
) |
|
Text("Send") |
|
} |
|
} |
|
} |
|
) |
|
} |