|
@@ -1,8 +1,10 @@
|
|
package eu.kanade.presentation.components
|
|
package eu.kanade.presentation.components
|
|
|
|
|
|
|
|
+import androidx.compose.foundation.clickable
|
|
import androidx.compose.foundation.layout.Column
|
|
import androidx.compose.foundation.layout.Column
|
|
import androidx.compose.foundation.layout.Row
|
|
import androidx.compose.foundation.layout.Row
|
|
import androidx.compose.foundation.layout.Spacer
|
|
import androidx.compose.foundation.layout.Spacer
|
|
|
|
+import androidx.compose.foundation.layout.fillMaxWidth
|
|
import androidx.compose.foundation.layout.padding
|
|
import androidx.compose.foundation.layout.padding
|
|
import androidx.compose.material3.AlertDialog
|
|
import androidx.compose.material3.AlertDialog
|
|
import androidx.compose.material3.Checkbox
|
|
import androidx.compose.material3.Checkbox
|
|
@@ -85,27 +87,30 @@ fun ChangeCategoryDialog(
|
|
text = {
|
|
text = {
|
|
Column {
|
|
Column {
|
|
selection.forEach { checkbox ->
|
|
selection.forEach { checkbox ->
|
|
|
|
+ val onChange: (CheckboxState<Category>) -> Unit = {
|
|
|
|
+ val index = selection.indexOf(it)
|
|
|
|
+ val mutableList = selection.toMutableList()
|
|
|
|
+ mutableList.removeAt(index)
|
|
|
|
+ mutableList.add(index, it.next())
|
|
|
|
+ selection = mutableList.toList()
|
|
|
|
+ }
|
|
Row(
|
|
Row(
|
|
|
|
+ modifier = Modifier
|
|
|
|
+ .fillMaxWidth()
|
|
|
|
+ .clickable { onChange(checkbox) },
|
|
verticalAlignment = Alignment.CenterVertically,
|
|
verticalAlignment = Alignment.CenterVertically,
|
|
) {
|
|
) {
|
|
- val onCheckboxChange: (CheckboxState<Category>) -> Unit = {
|
|
|
|
- val index = selection.indexOf(it)
|
|
|
|
- val mutableList = selection.toMutableList()
|
|
|
|
- mutableList.removeAt(index)
|
|
|
|
- mutableList.add(index, it.next())
|
|
|
|
- selection = mutableList.toList()
|
|
|
|
- }
|
|
|
|
when (checkbox) {
|
|
when (checkbox) {
|
|
is CheckboxState.TriState -> {
|
|
is CheckboxState.TriState -> {
|
|
TriStateCheckbox(
|
|
TriStateCheckbox(
|
|
state = checkbox.asState(),
|
|
state = checkbox.asState(),
|
|
- onClick = { onCheckboxChange(checkbox) },
|
|
|
|
|
|
+ onClick = { onChange(checkbox) },
|
|
)
|
|
)
|
|
}
|
|
}
|
|
is CheckboxState.State -> {
|
|
is CheckboxState.State -> {
|
|
Checkbox(
|
|
Checkbox(
|
|
checked = checkbox.isChecked,
|
|
checked = checkbox.isChecked,
|
|
- onCheckedChange = { onCheckboxChange(checkbox) },
|
|
|
|
|
|
+ onCheckedChange = { onChange(checkbox) },
|
|
)
|
|
)
|
|
}
|
|
}
|
|
}
|
|
}
|