amethyst/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ClickableUrl.kt

29 wiersze
872 B
Kotlin
Czysty Zwykły widok Historia

2023-01-16 15:51:10 +00:00
package com.vitorpamplona.amethyst.ui.components
import androidx.compose.foundation.text.ClickableText
2023-09-29 17:57:10 +00:00
import androidx.compose.material3.LocalTextStyle
import androidx.compose.material3.MaterialTheme
2023-01-16 15:51:10 +00:00
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
2023-01-16 15:51:10 +00:00
import androidx.compose.ui.platform.LocalUriHandler
import androidx.compose.ui.text.AnnotatedString
@Composable
fun ClickableUrl(urlText: String, url: String) {
2023-03-07 18:46:44 +00:00
val uri = LocalUriHandler.current
2023-01-16 15:51:10 +00:00
val doubleCheckedUrl = remember(url) {
if (url.contains("://")) url else "https://$url"
}
val text = remember(urlText) {
AnnotatedString(urlText)
}
2023-04-27 21:13:56 +00:00
2023-03-07 18:46:44 +00:00
ClickableText(
text = text,
2023-04-27 21:13:56 +00:00
onClick = { runCatching { uri.openUri(doubleCheckedUrl) } },
2023-09-29 17:57:10 +00:00
style = LocalTextStyle.current.copy(color = MaterialTheme.colorScheme.primary)
2023-03-07 18:46:44 +00:00
)
}