Gitnuro/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/TextLink.kt

42 lines
1.3 KiB
Kotlin

package com.jetpackduba.gitnuro.ui.components
import androidx.compose.foundation.hoverable
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.interaction.collectIsHoveredAsState
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import com.jetpackduba.gitnuro.extensions.handMouseClickable
import com.jetpackduba.gitnuro.extensions.openUrlInBrowser
@Composable
fun TextLink(
text: String,
url: String,
modifier: Modifier = Modifier,
colorsInverted: Boolean = false,
) {
val hoverInteraction = remember { MutableInteractionSource() }
val isHovered by hoverInteraction.collectIsHoveredAsState()
val textColor = if (isHovered == colorsInverted) {
MaterialTheme.colors.onBackground
} else {
MaterialTheme.colors.primaryVariant
}
Text(
text = text,
modifier = Modifier
.hoverable(hoverInteraction)
.handMouseClickable {
openUrlInBrowser(url)
}
.then(modifier),
color = textColor,
)
}