feat(bulk-favorite): Show progress indicator when running bulk-favorite (#923)
* Show progress indicator when running `bulk-favorite` * Deduplicate action title
This commit is contained in:
parent
262c6315fd
commit
cfa9f6bfef
1 changed files with 24 additions and 7 deletions
|
|
@ -1,11 +1,14 @@
|
||||||
package eu.kanade.presentation.browse.components
|
package eu.kanade.presentation.browse.components
|
||||||
|
|
||||||
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
import androidx.compose.material.icons.outlined.Checklist
|
import androidx.compose.material.icons.outlined.Checklist
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.CircularProgressIndicator
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.collectAsState
|
import androidx.compose.runtime.collectAsState
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.unit.dp
|
||||||
import cafe.adriel.voyager.core.model.rememberScreenModel
|
import cafe.adriel.voyager.core.model.rememberScreenModel
|
||||||
import cafe.adriel.voyager.core.screen.Screen
|
import cafe.adriel.voyager.core.screen.Screen
|
||||||
import cafe.adriel.voyager.navigator.LocalNavigator
|
import cafe.adriel.voyager.navigator.LocalNavigator
|
||||||
|
|
@ -223,9 +226,23 @@ private fun BulkAllowDuplicateDialog(
|
||||||
fun bulkSelectionButton(
|
fun bulkSelectionButton(
|
||||||
isRunning: Boolean,
|
isRunning: Boolean,
|
||||||
toggleSelectionMode: () -> Unit,
|
toggleSelectionMode: () -> Unit,
|
||||||
) = AppBar.Action(
|
): AppBar.AppBarAction {
|
||||||
title = stringResource(KMR.strings.action_bulk_select),
|
val title = stringResource(KMR.strings.action_bulk_select)
|
||||||
icon = Icons.Outlined.Checklist,
|
return if (isRunning) {
|
||||||
iconTint = MaterialTheme.colorScheme.primary.takeIf { isRunning },
|
AppBar.ActionCompose(
|
||||||
onClick = toggleSelectionMode,
|
title = title,
|
||||||
)
|
) {
|
||||||
|
CircularProgressIndicator(
|
||||||
|
modifier = Modifier
|
||||||
|
.size(24.dp),
|
||||||
|
strokeWidth = 2.dp,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
AppBar.Action(
|
||||||
|
title = title,
|
||||||
|
icon = Icons.Outlined.Checklist,
|
||||||
|
onClick = toggleSelectionMode,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue