diff --git a/app/src/main/java/app/revanced/manager/ui/component/SocialItem.kt b/app/src/main/java/app/revanced/manager/ui/component/SocialItem.kt index cff15f1..f09145c 100644 --- a/app/src/main/java/app/revanced/manager/ui/component/SocialItem.kt +++ b/app/src/main/java/app/revanced/manager/ui/component/SocialItem.kt @@ -1,9 +1,8 @@ package app.revanced.manager.ui.component +import androidx.annotation.DrawableRes import androidx.annotation.StringRes import androidx.compose.foundation.clickable -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Code import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.ListItem @@ -11,32 +10,39 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector -import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource -import app.revanced.manager.R -import app.revanced.manager.util.ghOrganization -import app.revanced.manager.util.openUrl @OptIn(ExperimentalMaterial3Api::class) @Composable -fun SocialItem(@StringRes label: Int, vec: ImageVector, fn: () -> Unit) { - val rsc = stringResource(label) +fun SocialItem(@StringRes label: Int, imageVector: ImageVector? = null, fn: () -> Unit) { ListItem( modifier = Modifier.clickable { fn() }, leadingContent = { - Icon( - imageVector = vec, - contentDescription = rsc - ) + if (imageVector != null) { + Icon( + imageVector = imageVector, + contentDescription = stringResource(label) + ) + } }, - headlineText = { Text(rsc) } + headlineText = { Text(stringResource(label)) } ) } +@OptIn(ExperimentalMaterial3Api::class) @Composable -fun SocialItemPreview() { - val ctx = LocalContext.current.applicationContext - SocialItem(R.string.github, Icons.Default.Code) { - ctx.openUrl(ghOrganization) - } +fun SocialItem(@StringRes label: Int, @DrawableRes painterResource: Int? = null, fn: () -> Unit) { + ListItem( + modifier = Modifier.clickable { fn() }, + leadingContent = { + if (painterResource != null) { + Icon( + painter = painterResource(painterResource), + contentDescription = stringResource(label) + ) + } + }, + headlineText = { Text(stringResource(label)) } + ) } \ No newline at end of file