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, 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) } } } }