diff --git a/android/app/src/main/java/com/fabledsword/minstrel/admin/ui/AdminUsersScreen.kt b/android/app/src/main/java/com/fabledsword/minstrel/admin/ui/AdminUsersScreen.kt index dcef667d..9b42a9fa 100644 --- a/android/app/src/main/java/com/fabledsword/minstrel/admin/ui/AdminUsersScreen.kt +++ b/android/app/src/main/java/com/fabledsword/minstrel/admin/ui/AdminUsersScreen.kt @@ -95,24 +95,42 @@ fun AdminUsersScreen( } } + PendingDialogs( + resetPasswordFor = resetPasswordFor, + deleteCandidate = deleteCandidate, + onClearReset = { resetPasswordFor = null }, + onClearDelete = { deleteCandidate = null }, + onConfirmReset = viewModel::resetPassword, + onConfirmDelete = viewModel::delete, + ) +} + +@Composable +private fun PendingDialogs( + resetPasswordFor: AdminUserRef?, + deleteCandidate: AdminUserRef?, + onClearReset: () -> Unit, + onClearDelete: () -> Unit, + onConfirmReset: (String, String) -> Unit, + onConfirmDelete: (String) -> Unit, +) { resetPasswordFor?.let { user -> ResetPasswordDialog( user = user, - onDismiss = { resetPasswordFor = null }, + onDismiss = onClearReset, onConfirm = { newPassword -> - viewModel.resetPassword(user.id, newPassword) - resetPasswordFor = null + onConfirmReset(user.id, newPassword) + onClearReset() }, ) } - deleteCandidate?.let { user -> DeleteConfirmDialog( user = user, - onDismiss = { deleteCandidate = null }, + onDismiss = onClearDelete, onConfirm = { - viewModel.delete(user.id) - deleteCandidate = null + onConfirmDelete(user.id) + onClearDelete() }, ) }