package mihon.feature.migration.config import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.ListItem import androidx.compose.material3.ListItemDefaults import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Switch import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import eu.kanade.domain.source.service.SourcePreferences import eu.kanade.presentation.components.AdaptiveSheet import tachiyomi.core.common.preference.toggle import tachiyomi.i18n.MR import tachiyomi.presentation.core.components.material.Button import tachiyomi.presentation.core.components.material.padding import tachiyomi.presentation.core.i18n.stringResource import tachiyomi.presentation.core.util.collectAsState @Composable fun MigrationConfigScreenSheet( preferences: SourcePreferences, onDismissRequest: () -> Unit, onStartMigration: () -> Unit, ) { val skipMigrationConfig by preferences.skipMigrationConfig().collectAsState() AdaptiveSheet(onDismissRequest = onDismissRequest) { Column(modifier = Modifier.fillMaxWidth()) { Column( modifier = Modifier .fillMaxWidth() .verticalScroll(rememberScrollState()), verticalArrangement = Arrangement.spacedBy(8.dp), ) { MigrationSheetItem( title = stringResource(MR.strings.migrationConfigScreen_skipMigrationConfigTitle), subtitle = stringResource(MR.strings.migrationConfigScreen_skipMigrationConfigSubtitle), action = { Switch( checked = skipMigrationConfig, onCheckedChange = null, ) }, onClick = { preferences.skipMigrationConfig().toggle() }, ) } HorizontalDivider() Button( onClick = onStartMigration, modifier = Modifier .fillMaxWidth() .padding( horizontal = MaterialTheme.padding.medium, vertical = MaterialTheme.padding.small, ), ) { Text(text = stringResource(MR.strings.migrationConfigScreen_continueButtonText)) } } } } @Composable private fun MigrationSheetItem( title: String, subtitle: String?, action: @Composable () -> Unit, onClick: () -> Unit, ) { ListItem( headlineContent = { Text(text = title) }, supportingContent = subtitle?.let { { Text(text = subtitle) } }, trailingContent = action, colors = ListItemDefaults.colors(containerColor = Color.Transparent), modifier = Modifier.clickable(onClick = onClick), ) }