mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-04 03:57:09 +00:00
refactor(folio): resolve ViewModels through LocalAppGraph in routes
Each *Route composable now reads the AppGraph from CompositionLocal and pulls its VM via the appropriate accessor or AssistedFactory.
This commit is contained in:
1 parent
9cadf27301
commit
02f28aeac1
5 files changed
+15
-15
No files matched your search
+3
-3
@@ -12,7 +12,7 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.platform.testTag
|
import androidx.compose.ui.platform.testTag
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import app.folio.LocalAppComponent
|
import app.folio.di.LocalAppGraph
|
||||||
import app.folio.ui.BackHandler
|
import app.folio.ui.BackHandler
|
||||||
import app.folio.ui.component.AppButton
|
import app.folio.ui.component.AppButton
|
||||||
import app.folio.ui.component.BackButton
|
import app.folio.ui.component.BackButton
|
||||||
@@ -27,8 +27,8 @@ import app.folio.ui.theme.Type
|
|||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun AddAccountRoute() {
|
fun AddAccountRoute() {
|
||||||
val component = LocalAppComponent.current
|
val graph = LocalAppGraph.current
|
||||||
val vm: AddAccountViewModel = viewModel { AddAccountViewModel(component.repository, component.navigator) }
|
val vm: AddAccountViewModel = viewModel { graph.addAccountViewModel }
|
||||||
val state by vm.state.collectAsState()
|
val state by vm.state.collectAsState()
|
||||||
AddAccountScreen(state = state, onEvent = vm::onEvent)
|
AddAccountScreen(state = state, onEvent = vm::onEvent)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -15,7 +15,7 @@ import androidx.compose.ui.platform.testTag
|
|||||||
import androidx.compose.ui.text.input.KeyboardType
|
import androidx.compose.ui.text.input.KeyboardType
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import app.folio.LocalAppComponent
|
import app.folio.di.LocalAppGraph
|
||||||
import app.folio.ui.component.AppButton
|
import app.folio.ui.component.AppButton
|
||||||
import app.folio.ui.component.ButtonStyle
|
import app.folio.ui.component.ButtonStyle
|
||||||
import app.folio.ui.component.Card
|
import app.folio.ui.component.Card
|
||||||
@@ -28,8 +28,8 @@ import app.folio.ui.theme.Type
|
|||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun LoginRoute() {
|
fun LoginRoute() {
|
||||||
val component = LocalAppComponent.current
|
val graph = LocalAppGraph.current
|
||||||
val vm: LoginViewModel = viewModel { LoginViewModel(component.repository, component.navigator) }
|
val vm: LoginViewModel = viewModel { graph.loginViewModel }
|
||||||
val state by vm.state.collectAsState()
|
val state by vm.state.collectAsState()
|
||||||
LoginScreen(state = state, onEvent = vm::onEvent)
|
LoginScreen(state = state, onEvent = vm::onEvent)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -23,7 +23,7 @@ import androidx.compose.ui.semantics.Role
|
|||||||
import androidx.compose.ui.text.style.TextOverflow
|
import androidx.compose.ui.text.style.TextOverflow
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import app.folio.LocalAppComponent
|
import app.folio.di.LocalAppGraph
|
||||||
import app.folio.util.balanceOf
|
import app.folio.util.balanceOf
|
||||||
import app.folio.util.formatCents
|
import app.folio.util.formatCents
|
||||||
import app.folio.util.initialsOf
|
import app.folio.util.initialsOf
|
||||||
@@ -41,8 +41,8 @@ import app.folio.ui.theme.Type
|
|||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun HomeRoute() {
|
fun HomeRoute() {
|
||||||
val component = LocalAppComponent.current
|
val graph = LocalAppGraph.current
|
||||||
val vm: HomeViewModel = viewModel { HomeViewModel(component.repository, component.navigator) }
|
val vm: HomeViewModel = viewModel { graph.homeViewModel }
|
||||||
val state by vm.state.collectAsState()
|
val state by vm.state.collectAsState()
|
||||||
HomeScreen(state = state, onEvent = vm::onEvent)
|
HomeScreen(state = state, onEvent = vm::onEvent)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -13,8 +13,8 @@ import androidx.compose.ui.text.input.KeyboardType
|
|||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import app.folio.LocalAppComponent
|
|
||||||
import app.folio.core.data.TxnType
|
import app.folio.core.data.TxnType
|
||||||
|
import app.folio.di.LocalAppGraph
|
||||||
import app.folio.ui.BackHandler
|
import app.folio.ui.BackHandler
|
||||||
import app.folio.ui.component.AppButton
|
import app.folio.ui.component.AppButton
|
||||||
import app.folio.ui.component.BackButton
|
import app.folio.ui.component.BackButton
|
||||||
@@ -30,9 +30,9 @@ import app.folio.ui.theme.Type
|
|||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun AddTransactionRoute(accountId: String) {
|
fun AddTransactionRoute(accountId: String) {
|
||||||
val component = LocalAppComponent.current
|
val graph = LocalAppGraph.current
|
||||||
val vm: AddTransactionViewModel = viewModel(key = "addTxn:$accountId") {
|
val vm: AddTransactionViewModel = viewModel(key = "addTxn:$accountId") {
|
||||||
AddTransactionViewModel(component.repository, component.navigator, accountId)
|
graph.addTransactionViewModelFactory.create(accountId)
|
||||||
}
|
}
|
||||||
val state by vm.state.collectAsState()
|
val state by vm.state.collectAsState()
|
||||||
AddTransactionScreen(state = state, onEvent = vm::onEvent)
|
AddTransactionScreen(state = state, onEvent = vm::onEvent)
|
||||||
|
|||||||
+3
-3
@@ -22,8 +22,8 @@ import androidx.compose.ui.platform.testTag
|
|||||||
import androidx.compose.ui.text.style.TextOverflow
|
import androidx.compose.ui.text.style.TextOverflow
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import app.folio.LocalAppComponent
|
|
||||||
import app.folio.core.data.TxnType
|
import app.folio.core.data.TxnType
|
||||||
|
import app.folio.di.LocalAppGraph
|
||||||
import app.folio.util.balanceOf
|
import app.folio.util.balanceOf
|
||||||
import app.folio.util.formatCents
|
import app.folio.util.formatCents
|
||||||
import app.folio.util.formatDate
|
import app.folio.util.formatDate
|
||||||
@@ -42,9 +42,9 @@ import app.folio.ui.theme.Type
|
|||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun LedgerRoute(accountId: String) {
|
fun LedgerRoute(accountId: String) {
|
||||||
val component = LocalAppComponent.current
|
val graph = LocalAppGraph.current
|
||||||
val vm: LedgerViewModel = viewModel(key = "ledger:$accountId") {
|
val vm: LedgerViewModel = viewModel(key = "ledger:$accountId") {
|
||||||
LedgerViewModel(component.repository, component.navigator, accountId)
|
graph.ledgerViewModelFactory.create(accountId)
|
||||||
}
|
}
|
||||||
val state by vm.state.collectAsState()
|
val state by vm.state.collectAsState()
|
||||||
LedgerScreen(state = state, onEvent = vm::onEvent)
|
LedgerScreen(state = state, onEvent = vm::onEvent)
|
||||||
|
|||||||
Reference in new issue
Block a user