53 lines
1.8 KiB
Kotlin
53 lines
1.8 KiB
Kotlin
package dev.beefers.vendetta.manager.ui.widgets.about
|
|
|
|
import androidx.annotation.DrawableRes
|
|
import androidx.annotation.StringRes
|
|
import androidx.compose.foundation.clickable
|
|
import androidx.compose.foundation.interaction.MutableInteractionSource
|
|
import androidx.compose.foundation.layout.Arrangement
|
|
import androidx.compose.foundation.layout.Column
|
|
import androidx.compose.foundation.layout.padding
|
|
import androidx.compose.foundation.layout.size
|
|
import androidx.compose.material.ripple.rememberRipple
|
|
import androidx.compose.material3.Icon
|
|
import androidx.compose.material3.MaterialTheme
|
|
import androidx.compose.material3.Text
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.runtime.remember
|
|
import androidx.compose.ui.Alignment
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.compose.ui.platform.LocalUriHandler
|
|
import androidx.compose.ui.res.painterResource
|
|
import androidx.compose.ui.res.stringResource
|
|
import androidx.compose.ui.unit.dp
|
|
|
|
@Composable
|
|
fun LinkItem(
|
|
@DrawableRes icon: Int,
|
|
@StringRes label: Int,
|
|
link: String
|
|
) {
|
|
val uriHandler = LocalUriHandler.current
|
|
|
|
Column(
|
|
verticalArrangement = Arrangement.spacedBy(8.dp),
|
|
horizontalAlignment = Alignment.CenterHorizontally,
|
|
modifier = Modifier
|
|
.clickable(
|
|
onClick = { uriHandler.openUri(link) },
|
|
indication = rememberRipple(bounded = false, radius = 40.dp),
|
|
interactionSource = remember { MutableInteractionSource() }
|
|
)
|
|
.padding(8.dp)
|
|
) {
|
|
Icon(
|
|
painter = painterResource(icon),
|
|
contentDescription = stringResource(label),
|
|
modifier = Modifier.size(30.dp)
|
|
)
|
|
Text(
|
|
text = stringResource(label),
|
|
style = MaterialTheme.typography.labelMedium
|
|
)
|
|
}
|
|
} |