Skip to content

Commit 1b99790

Browse files
Nagarjuna0033therajanmaurya
authored andcommitted
feat: loan account ui & viewModel
1 parent 3bd6a89 commit 1b99790

File tree

31 files changed

+818
-850
lines changed

31 files changed

+818
-850
lines changed

cmp-navigation/src/commonMain/kotlin/cmp/navigation/authenticated/AuthenticatedNavigation.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ import cmp.navigation.authenticatednavbar.AuthenticatedNavbarRoute
1919
import cmp.navigation.authenticatednavbar.authenticatedNavbarGraph
2020
import kotlinx.serialization.Serializable
2121
import org.mifos.mobile.core.common.Constants
22-
import org.mifos.mobile.feature.accounts.navigation.accountTransactionsDestination
23-
import org.mifos.mobile.feature.accounts.navigation.accountsDestination
24-
import org.mifos.mobile.feature.accounts.navigation.navigateToAccountsScreen
22+
import org.mifos.mobile.feature.accounts.accountTransactions.accountTransactionsDestination
23+
import org.mifos.mobile.feature.accounts.accounts.accountsDestination
24+
import org.mifos.mobile.feature.accounts.accounts.navigateToAccountsScreen
2525
import org.mifos.mobile.feature.auth.login.navigateToLoginScreen
2626
import org.mifos.mobile.feature.auth.navigation.AuthGraphRoute
2727
import org.mifos.mobile.feature.charge.navigation.clientChargeNavGraph
@@ -51,8 +51,8 @@ internal fun NavGraphBuilder.authenticatedGraph(
5151
authenticatedNavbarGraph(
5252
navigateToNotificationScreen = navController::navigateToNotificationScreen,
5353
navigateToAccountsScreen = {
54-
when {
55-
it == Constants.SAVINGS_ACCOUNT -> navController.navigateToAccountsScreen(it)
54+
when (it) {
55+
Constants.SAVINGS_ACCOUNT, Constants.LOAN_ACCOUNT -> navController.navigateToAccountsScreen(it)
5656
else -> Unit
5757
}
5858
},

core/designsystem/src/commonMain/kotlin/org/mifos/mobile/core/designsystem/icon/MifosIcons.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,4 +205,6 @@ object MifosIcons {
205205
val Download = FluentIcons.Filled.ArrowDownload
206206
val CaretDown = FluentIcons.Filled.CaretDown
207207
val CaretUp = FluentIcons.Filled.CaretUp
208+
209+
val CoinMultiple = FluentIcons.Filled.CoinMultiple
208210
}

core/model/src/commonMain/kotlin/org/mifos/mobile/core/model/LoanStatus.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,10 @@ enum class LoanStatus(val status: String) {
1919
APPROVED("Approved"),
2020

2121
SUBMIT_AND_PENDING_APPROVAL("Submitted and pending approval"),
22+
23+
DISBURSED("Disbursed"),
24+
25+
REJECTED("Rejected"),
26+
27+
WITHDRAWN("Withdrawn by applicant"),
2228
}
Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
* See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md
99
*/
10-
package org.mifos.mobile.feature.savingsaccount.components
10+
package org.mifos.mobile.core.ui.component
1111

1212
import androidx.compose.foundation.background
1313
import androidx.compose.foundation.clickable
@@ -29,6 +29,7 @@ import androidx.compose.runtime.Composable
2929
import androidx.compose.ui.Alignment
3030
import androidx.compose.ui.Modifier
3131
import androidx.compose.ui.graphics.Color
32+
import androidx.compose.ui.graphics.vector.ImageVector
3233
import androidx.compose.ui.unit.dp
3334
import org.jetbrains.compose.ui.tooling.preview.Preview
3435
import org.mifos.mobile.core.designsystem.icon.MifosIcons
@@ -38,13 +39,14 @@ import org.mifos.mobile.core.designsystem.theme.MifosMobileTheme
3839
import org.mifos.mobile.core.designsystem.theme.MifosTypography
3940

4041
@Composable
41-
internal fun SavingsAccountCard(
42+
fun MifosAccountCard(
4243
accountId: Long,
4344
accountNumber: String?,
4445
accountType: String?,
4546
accountStatus: String,
4647
accountStatusColor: Color,
4748
onAccountClick: (Long) -> Unit,
49+
icon: ImageVector,
4850
modifier: Modifier = Modifier,
4951
) {
5052
Box(
@@ -60,7 +62,7 @@ internal fun SavingsAccountCard(
6062
horizontalArrangement = Arrangement.SpaceBetween,
6163
) {
6264
Icon(
63-
imageVector = MifosIcons.PersonAccounts,
65+
imageVector = icon,
6466
contentDescription = "Person Account",
6567
tint = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.3f),
6668
modifier = Modifier
@@ -119,13 +121,14 @@ private fun Savings_Account_Preview() {
119121
.fillMaxSize()
120122
.padding(DesignToken.padding.large),
121123
) {
122-
SavingsAccountCard(
124+
MifosAccountCard(
123125
accountId = 1L,
124126
accountNumber = "2689-7897-6666",
125127
accountType = "Wallet Account",
126128
accountStatus = "$ 23,315,500",
127129
accountStatusColor = AppColors.customEnable,
128130
onAccountClick = {},
131+
icon = MifosIcons.PersonAccounts,
129132
)
130133
}
131134
}
Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
* See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md
99
*/
10-
package org.mifos.mobile.feature.savingsaccount.components
10+
package org.mifos.mobile.core.ui.component
1111

1212
import androidx.compose.foundation.background
1313
import androidx.compose.foundation.clickable
@@ -30,17 +30,18 @@ import androidx.compose.ui.Alignment
3030
import androidx.compose.ui.Modifier
3131
import androidx.compose.ui.graphics.vector.ImageVector
3232
import androidx.compose.ui.unit.dp
33+
import mifos_mobile.core.ui.generated.resources.Res
34+
import mifos_mobile.core.ui.generated.resources.savings_account
3335
import org.jetbrains.compose.resources.StringResource
3436
import org.jetbrains.compose.resources.stringResource
3537
import org.jetbrains.compose.ui.tooling.preview.Preview
3638
import org.mifos.mobile.core.designsystem.icon.MifosIcons
37-
import org.mifos.mobile.core.designsystem.theme.AppColors
3839
import org.mifos.mobile.core.designsystem.theme.DesignToken
3940
import org.mifos.mobile.core.designsystem.theme.MifosMobileTheme
4041
import org.mifos.mobile.core.designsystem.theme.MifosTypography
4142

4243
@Composable
43-
internal fun SavingsActionsCard(
44+
fun MifosActionCard(
4445
title: StringResource,
4546
subTitle: StringResource,
4647
icon: ImageVector,
@@ -102,20 +103,18 @@ internal fun SavingsActionsCard(
102103

103104
@Preview
104105
@Composable
105-
private fun Savings_Account_Preview() {
106+
private fun Savings_Action_Preview() {
106107
MifosMobileTheme {
107108
Column(
108109
modifier = Modifier
109110
.fillMaxSize()
110111
.padding(DesignToken.padding.large),
111112
) {
112-
SavingsAccountCard(
113-
accountId = 1L,
114-
accountNumber = "2689-7897-6666",
115-
accountType = "Wallet Account",
116-
accountStatus = "$ 23,315,500",
117-
accountStatusColor = AppColors.customEnable,
118-
onAccountClick = {},
113+
MifosActionCard(
114+
title = Res.string.savings_account,
115+
subTitle = Res.string.savings_account,
116+
icon = MifosIcons.Money,
117+
onClick = {},
119118
)
120119
}
121120
}

feature/accounts/src/commonMain/composeResources/values/strings.xml

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -12,29 +12,20 @@
1212

1313
<string name="feature_account_title">Accounts</string>
1414

15-
<!-- Filter dialog actions-->
16-
<string name="feature_account_clear_filters">Clear Filters</string>
17-
<string name="feature_account_cancel">Cancel</string>
18-
<string name="feature_account_filter">Filter</string>
19-
<string name="feature_account_select_you_want">Select all filters you want to apply</string>
20-
21-
22-
<!-- Filter dialog checkbox labels-->
23-
<string name="feature_account_active">Active</string>
24-
<string name="feature_account_approval_pending">Approval Pending</string>
25-
<string name="feature_account_closed">Closed</string>
26-
<string name="feature_account_matured">Matured</string>
27-
<string name="feature_account_rejected">Rejected</string>
28-
<string name="feature_account_disburse">Waiting for Disburse</string>
29-
<string name="feature_account_overpaid">Overpaid</string>
30-
<string name="feature_account_approved">Approved</string>
31-
<string name="feature_account_in_arrears">In Arrears</string>
32-
<string name="feature_account_withdrawn">Withdrawn</string>
33-
34-
<!-- tabs-->
35-
<string name="feature_account_savings_account">Savings Account</string>
36-
<string name="feature_account_share_account">Share Account</string>
37-
<string name="feature_account_loan_account">Loan Account</string>
15+
<!-- Loan Account Filters-->
16+
17+
<string name="feature_loan_account_filter_active">Active</string>
18+
<string name="feature_loan_account_filter_approval_pending">Approval Pending</string>
19+
<string name="feature_loan_account_filter_closed">Closed</string>
20+
<string name="feature_loan_account_filter_disburse">Waiting for Disburse</string>
21+
<string name="feature_loan_account_filter_overpaid">Overpaid</string>
22+
<string name="feature_loan_account_filter_in_arrears">In Arrears</string>
23+
<string name="feature_loan_account_filter_withdrawn">Withdrawn</string>
24+
<string name="feature_loan_account_filter_matured">Matured</string>
25+
<string name="feature_loan_account_filter_rejected">Rejected</string>
26+
27+
<string name="feature_loan_account_filter_personal">Personal</string>
28+
<string name="feature_loan_account_filter_bronze">Bronze</string>
3829

3930
<!-- Savings account filters-->
4031
<string name="feature_savings_filter_wallet_account">Wallet Account</string>
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,13 @@
99
*/
1010
@file:Suppress("MatchingDeclarationName")
1111

12-
package org.mifos.mobile.feature.accounts.navigation
12+
package org.mifos.mobile.feature.accounts.accountTransactions
1313

1414
import androidx.navigation.NavController
1515
import androidx.navigation.NavGraphBuilder
1616
import androidx.navigation.NavOptions
1717
import kotlinx.serialization.Serializable
1818
import org.mifos.mobile.core.ui.composableWithSlideTransitions
19-
import org.mifos.mobile.feature.accounts.screen.TransactionScreen
2019

2120
@Serializable
2221
data class AccountTransactionsNavRoute(

feature/accounts/src/commonMain/kotlin/org/mifos/mobile/feature/accounts/screen/TransactionScreen.kt renamed to feature/accounts/src/commonMain/kotlin/org/mifos/mobile/feature/accounts/accountTransactions/TransactionScreen.kt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
* See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md
99
*/
10-
package org.mifos.mobile.feature.accounts.screen
10+
package org.mifos.mobile.feature.accounts.accountTransactions
1111

1212
import androidx.compose.foundation.clickable
1313
import androidx.compose.foundation.layout.Arrangement
@@ -51,11 +51,6 @@ import org.mifos.mobile.core.designsystem.theme.MifosTypography
5151
import org.mifos.mobile.core.ui.component.MifosPoweredCard
5252
import org.mifos.mobile.core.ui.component.TransactionScreenItem
5353
import org.mifos.mobile.core.ui.utils.EventsEffect
54-
import org.mifos.mobile.feature.accounts.viewmodel.AccountTransactionAction
55-
import org.mifos.mobile.feature.accounts.viewmodel.AccountTransactionEvent
56-
import org.mifos.mobile.feature.accounts.viewmodel.AccountTransactionState
57-
import org.mifos.mobile.feature.accounts.viewmodel.AccountsTransactionViewModel
58-
import org.mifos.mobile.feature.accounts.viewmodel.getTransactionCreditStatus
5954

6055
@Composable
6156
internal fun TransactionScreen(
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
* See https://github.com/openMF/mobile-mobile/blob/master/LICENSE.md
99
*/
10-
package org.mifos.mobile.feature.accounts.viewmodel
10+
package org.mifos.mobile.feature.accounts.accountTransactions
1111

1212
import androidx.lifecycle.SavedStateHandle
1313
import androidx.lifecycle.viewModelScope
@@ -21,7 +21,6 @@ import org.mifos.mobile.core.data.repository.SavingsAccountRepository
2121
import org.mifos.mobile.core.model.entity.accounts.savings.TransactionType
2222
import org.mifos.mobile.core.model.entity.accounts.savings.Transactions
2323
import org.mifos.mobile.core.ui.utils.BaseViewModel
24-
import org.mifos.mobile.feature.accounts.navigation.AccountTransactionsNavRoute
2524

2625
internal class AccountsTransactionViewModel(
2726
private val savingsAccountRepositoryImp: SavingsAccountRepository,
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,13 @@
99
*/
1010
@file:Suppress("MatchingDeclarationName")
1111

12-
package org.mifos.mobile.feature.accounts.navigation
12+
package org.mifos.mobile.feature.accounts.accounts
1313

1414
import androidx.navigation.NavController
1515
import androidx.navigation.NavGraphBuilder
1616
import androidx.navigation.NavOptions
1717
import kotlinx.serialization.Serializable
1818
import org.mifos.mobile.core.ui.composableWithSlideTransitions
19-
import org.mifos.mobile.feature.accounts.screen.AccountsScreen
2019

2120
@Serializable
2221
data class AccountNavRoute(

0 commit comments

Comments
 (0)