package eu.kanade.presentation.library import androidx.compose.foundation.layout.Column import androidx.compose.material3.AlertDialog import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.res.stringResource import eu.kanade.tachiyomi.R import tachiyomi.core.preference.CheckboxState import tachiyomi.presentation.core.components.LabeledCheckbox @Composable fun DeleteLibraryMangaDialog( containsLocalManga: Boolean, onDismissRequest: () -> Unit, onConfirm: (Boolean, Boolean) -> Unit, ) { var list by remember { mutableStateOf( buildList> { add(CheckboxState.State.None(R.string.manga_from_library)) if (!containsLocalManga) { add(CheckboxState.State.None(R.string.downloaded_chapters)) } }, ) } AlertDialog( onDismissRequest = onDismissRequest, dismissButton = { TextButton(onClick = onDismissRequest) { Text(text = stringResource(R.string.action_cancel)) } }, confirmButton = { TextButton( enabled = list.any { it.isChecked }, onClick = { onDismissRequest() onConfirm( list[0].isChecked, list.getOrElse(1) { CheckboxState.State.None(0) }.isChecked, ) }, ) { Text(text = stringResource(R.string.action_ok)) } }, title = { Text(text = stringResource(R.string.action_remove)) }, text = { Column { list.forEach { state -> LabeledCheckbox( label = stringResource(state.value), checked = state.isChecked, onCheckedChange = { val index = list.indexOf(state) if (index != -1) { val mutableList = list.toMutableList() mutableList[index] = state.next() as CheckboxState.State list = mutableList.toList() } }, ) } } }, ) }