allow new line in message
This commit is contained in:
@@ -11,6 +11,7 @@ import androidx.compose.foundation.layout.Spacer
|
|||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
|
import androidx.compose.foundation.text.KeyboardOptions
|
||||||
import androidx.compose.material3.FilledTonalIconButton
|
import androidx.compose.material3.FilledTonalIconButton
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
@@ -23,6 +24,8 @@ import androidx.compose.runtime.Composable
|
|||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
|
import androidx.compose.ui.text.input.ImeAction
|
||||||
|
import androidx.compose.ui.text.input.KeyboardCapitalization
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import coop.composeapp.generated.resources.Res
|
import coop.composeapp.generated.resources.Res
|
||||||
import coop.composeapp.generated.resources.ic_add_circle
|
import coop.composeapp.generated.resources.ic_add_circle
|
||||||
@@ -52,6 +55,11 @@ fun ChatInput(
|
|||||||
value = value,
|
value = value,
|
||||||
onValueChange = onValueChange,
|
onValueChange = onValueChange,
|
||||||
placeholder = { Text("Message") },
|
placeholder = { Text("Message") },
|
||||||
|
maxLines = 5,
|
||||||
|
keyboardOptions = KeyboardOptions(
|
||||||
|
capitalization = KeyboardCapitalization.Sentences,
|
||||||
|
imeAction = ImeAction.Default
|
||||||
|
),
|
||||||
leadingIcon = {
|
leadingIcon = {
|
||||||
IconButton(onClick = onUpload) {
|
IconButton(onClick = onUpload) {
|
||||||
Icon(
|
Icon(
|
||||||
|
|||||||
@@ -10,14 +10,10 @@ fun PublicKey.short(): String {
|
|||||||
val URL_REGEX = Regex("(https?://\\S+)", RegexOption.IGNORE_CASE)
|
val URL_REGEX = Regex("(https?://\\S+)", RegexOption.IGNORE_CASE)
|
||||||
private val imageExtensions = setOf("jpg", "jpeg", "png", "gif", "webp", "bmp")
|
private val imageExtensions = setOf("jpg", "jpeg", "png", "gif", "webp", "bmp")
|
||||||
|
|
||||||
fun String.extractUrls(): List<String> {
|
|
||||||
return URL_REGEX.findAll(this).map { it.value }.toList()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun String.removeImageUrls(): String {
|
fun String.removeImageUrls(): String {
|
||||||
return URL_REGEX.replace(this) { result ->
|
return URL_REGEX.replace(this) { result ->
|
||||||
if (result.value.isImageUrl()) "" else result.value
|
if (result.value.isImageUrl()) "" else result.value
|
||||||
}.replace(Regex("\\s+"), " ").trim()
|
}.trim()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun String.isImageUrl(): Boolean {
|
fun String.isImageUrl(): Boolean {
|
||||||
|
|||||||
Reference in New Issue
Block a user