Skip to content

Commit b544bfa

Browse files
kartikey004therajanmaurya
authored andcommitted
requested changes made
1 parent 71b624b commit b544bfa

File tree

2 files changed

+39
-28
lines changed

2 files changed

+39
-28
lines changed

feature/client/src/commonMain/kotlin/com/mifos/feature/client/clientIdentifiersList/ClientIdentifiersListScreen.kt

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,7 @@ import androidx.compose.material3.Icon
3939
import androidx.compose.material3.Text
4040
import androidx.compose.runtime.Composable
4141
import androidx.compose.runtime.getValue
42-
import androidx.compose.runtime.mutableStateOf
4342
import androidx.compose.runtime.remember
44-
import androidx.compose.runtime.setValue
4543
import androidx.compose.ui.Modifier
4644
import androidx.lifecycle.compose.collectAsStateWithLifecycle
4745
import androidx.navigation.NavController
@@ -98,7 +96,6 @@ internal fun ClientIdentifiersListScreen(
9896
onAction: (ClientIdentifiersListAction) -> Unit,
9997
) {
10098
val emptyMessage = stringResource(Res.string.client_identifiers_not_available)
101-
var itemToDelete by remember { mutableStateOf<Pair<Int, String>?>(null) }
10299

103100
MifosScaffold(
104101
onBackPressed = {
@@ -172,7 +169,9 @@ internal fun ClientIdentifiersListScreen(
172169
is Actions.DeleteDocument -> {
173170
val id = item.id
174171
if (id != null) {
175-
itemToDelete = id to uniqueKeyForHandleDocument
172+
onAction.invoke(
173+
ClientIdentifiersListAction.ShowDeleteConfirmation(id, uniqueKeyForHandleDocument),
174+
)
176175
}
177176
}
178177
else -> {}
@@ -196,26 +195,6 @@ internal fun ClientIdentifiersListScreen(
196195
}
197196
}
198197
}
199-
if (itemToDelete != null) {
200-
MifosAlertDialog(
201-
dialogTitle = stringResource(Res.string.delete_dialog_title),
202-
dialogText = stringResource(Res.string.document_delete_dialog_message),
203-
onDismissRequest = {
204-
itemToDelete = null
205-
},
206-
onConfirmation = {
207-
onAction.invoke(
208-
ClientIdentifiersListAction.DeleteDocument(
209-
itemToDelete!!.first,
210-
itemToDelete!!.second,
211-
),
212-
)
213-
itemToDelete = null
214-
},
215-
confirmationText = stringResource(Res.string.remove),
216-
dismissText = stringResource(Res.string.cancel),
217-
)
218-
}
219198
}
220199

221200
@Composable
@@ -266,11 +245,11 @@ private fun ClientIdentifiersDialog(
266245
state: ClientIdentifiersListState,
267246
onAction: (ClientIdentifiersListAction) -> Unit,
268247
) {
269-
when (state.dialogState) {
248+
when (val dialogState = state.dialogState) {
270249
is ClientIdentifiersListState.DialogState.Error -> {
271250
MifosAlertDialog(
272251
dialogTitle = stringResource(Res.string.client_identifiers_error_text),
273-
dialogText = state.dialogState.message,
252+
dialogText = dialogState.message,
274253
onDismissRequest = { onAction.invoke(ClientIdentifiersListAction.CloseDialog) },
275254
onConfirmation = { onAction.invoke(ClientIdentifiersListAction.CloseDialog) },
276255
)
@@ -288,12 +267,32 @@ private fun ClientIdentifiersDialog(
288267
MifosAlertDialog(
289268
dialogTitle = stringResource(Res.string.client_identifiers_identities_success_text),
290269
dialogText = stringResource(Res.string.client_identifiers_identities_client_identifier_deletion_success) +
291-
" " + state.dialogState.id,
270+
" " + dialogState.id,
292271
onDismissRequest = { onAction.invoke(ClientIdentifiersListAction.CloseDialog) },
293272
onConfirmation = { onAction.invoke(ClientIdentifiersListAction.CloseDialog) },
294273
)
295274
}
296275

276+
is ClientIdentifiersListState.DialogState.DeleteConfirmation -> {
277+
MifosAlertDialog(
278+
dialogTitle = stringResource(Res.string.delete_dialog_title),
279+
dialogText = stringResource(Res.string.document_delete_dialog_message),
280+
onDismissRequest = {
281+
onAction.invoke(ClientIdentifiersListAction.CloseDialog)
282+
},
283+
onConfirmation = {
284+
onAction.invoke(
285+
ClientIdentifiersListAction.DeleteDocument(
286+
dialogState.id,
287+
dialogState.uniqueKey,
288+
),
289+
)
290+
},
291+
confirmationText = stringResource(Res.string.remove),
292+
dismissText = stringResource(Res.string.cancel),
293+
)
294+
}
295+
297296
null -> {}
298297

299298
ClientIdentifiersListState.DialogState.NoInternet -> {

feature/client/src/commonMain/kotlin/com/mifos/feature/client/clientIdentifiersList/ClientIdentifiersListViewModel.kt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,17 @@ class ClientIdentifiersListViewModel(
8080
deleteClientIdentity(route.clientId, action.identifier, action.uniqueKeyForHandleDocument)
8181
}
8282

83+
is ClientIdentifiersListAction.ShowDeleteConfirmation -> {
84+
mutableStateFlow.update {
85+
it.copy(
86+
dialogState = ClientIdentifiersListState.DialogState.DeleteConfirmation(
87+
id = action.identifier,
88+
uniqueKey = action.uniqueKeyForHandleDocument,
89+
),
90+
)
91+
}
92+
}
93+
8394
ClientIdentifiersListAction.ToggleSearch -> {
8495
mutableStateFlow.update {
8596
it.copy(isSearchBarActive = !it.isSearchBarActive)
@@ -296,6 +307,7 @@ data class ClientIdentifiersListState(
296307
data object Loading : DialogState
297308
data object NoInternet : DialogState
298309
data class DeletedSuccessfully(val id: Int) : DialogState
310+
data class DeleteConfirmation(val id: Int, val uniqueKey: String?) : DialogState
299311
}
300312
}
301313

@@ -315,9 +327,9 @@ sealed interface ClientIdentifiersListAction {
315327
data class ToggleShowMenu(val index: Int) : ClientIdentifiersListAction
316328
data class ViewDocument(val uniqueKeyForHandleDocument: String?) : ClientIdentifiersListAction
317329
data class DeleteDocument(val identifier: Int, val uniqueKeyForHandleDocument: String?) : ClientIdentifiersListAction
330+
data class ShowDeleteConfirmation(val identifier: Int, val uniqueKeyForHandleDocument: String?) : ClientIdentifiersListAction
318331
data class UploadAgain(val uniqueKeyForHandleDocument: String?) : ClientIdentifiersListAction
319332
data object CloseDialog : ClientIdentifiersListAction
320333
data object NavigateBack : ClientIdentifiersListAction
321-
322334
data object Refresh : ClientIdentifiersListAction
323335
}

0 commit comments

Comments
 (0)