mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-06-23 20:46:05 +02:00
83 lines
2.7 KiB
Kotlin
83 lines
2.7 KiB
Kotlin
package eu.kanade.presentation.more.settings.screen.browse.components
|
|
|
|
import androidx.compose.foundation.layout.Arrangement
|
|
import androidx.compose.foundation.layout.PaddingValues
|
|
import androidx.compose.foundation.layout.Row
|
|
import androidx.compose.foundation.layout.fillMaxWidth
|
|
import androidx.compose.foundation.layout.padding
|
|
import androidx.compose.foundation.lazy.LazyColumn
|
|
import androidx.compose.foundation.lazy.LazyListState
|
|
import androidx.compose.material.icons.Icons
|
|
import androidx.compose.material.icons.automirrored.outlined.Label
|
|
import androidx.compose.material.icons.outlined.Delete
|
|
import androidx.compose.material3.ElevatedCard
|
|
import androidx.compose.material3.Icon
|
|
import androidx.compose.material3.IconButton
|
|
import androidx.compose.material3.MaterialTheme
|
|
import androidx.compose.material3.Text
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.ui.Alignment
|
|
import androidx.compose.ui.Modifier
|
|
import kotlinx.collections.immutable.ImmutableSet
|
|
import tachiyomi.presentation.core.components.material.padding
|
|
|
|
@Composable
|
|
fun ExtensionReposContent(
|
|
repos: ImmutableSet<String>,
|
|
lazyListState: LazyListState,
|
|
paddingValues: PaddingValues,
|
|
onClickDelete: (String) -> Unit,
|
|
modifier: Modifier = Modifier,
|
|
) {
|
|
LazyColumn(
|
|
state = lazyListState,
|
|
contentPadding = paddingValues,
|
|
verticalArrangement = Arrangement.spacedBy(MaterialTheme.padding.small),
|
|
modifier = modifier,
|
|
) {
|
|
repos.forEach {
|
|
item {
|
|
ExtensionRepoListItem(
|
|
modifier = Modifier.animateItemPlacement(),
|
|
repo = it,
|
|
onDelete = { onClickDelete(it) },
|
|
)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@Composable
|
|
private fun ExtensionRepoListItem(
|
|
repo: String,
|
|
onDelete: () -> Unit,
|
|
modifier: Modifier = Modifier,
|
|
) {
|
|
ElevatedCard(
|
|
modifier = modifier,
|
|
) {
|
|
Row(
|
|
modifier = Modifier
|
|
.fillMaxWidth()
|
|
.padding(
|
|
start = MaterialTheme.padding.medium,
|
|
top = MaterialTheme.padding.medium,
|
|
end = MaterialTheme.padding.medium,
|
|
),
|
|
verticalAlignment = Alignment.CenterVertically,
|
|
) {
|
|
Icon(imageVector = Icons.AutoMirrored.Outlined.Label, contentDescription = null)
|
|
Text(text = repo, modifier = Modifier.padding(start = MaterialTheme.padding.medium))
|
|
}
|
|
|
|
Row(
|
|
modifier = Modifier.fillMaxWidth(),
|
|
horizontalArrangement = Arrangement.End,
|
|
) {
|
|
IconButton(onClick = onDelete) {
|
|
Icon(imageVector = Icons.Outlined.Delete, contentDescription = null)
|
|
}
|
|
}
|
|
}
|
|
}
|