Skip to content

Commit 7a1c726

Browse files
authored
refactor(region-selection): rename module and simplify VM list generation (#839)
Rename currency-selection module to region-selection. Consolidate CurrencyViewModel to generate list items directly from source flows in a single combine, eliminating two-phase rendering that caused scroll position issues with keyed LazyColumn items. Remove local list splitting/mutation from RegionList composable. Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent d313bb9 commit 7a1c726

16 files changed

Lines changed: 152 additions & 261 deletions

File tree

apps/flipcash/app/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,8 @@ dependencies {
148148
implementation(project(":apps:flipcash:shared:router"))
149149
implementation(project(":apps:flipcash:shared:session"))
150150
implementation(project(":apps:flipcash:shared:google-play-billing"))
151-
implementation(project(":apps:flipcash:shared:currency-selection:core"))
152-
implementation(project(":apps:flipcash:shared:currency-selection:ui"))
151+
implementation(project(":apps:flipcash:shared:region-selection:core"))
152+
implementation(project(":apps:flipcash:shared:region-selection:ui"))
153153
implementation(project(":apps:flipcash:shared:contacts"))
154154
implementation(project(":apps:flipcash:shared:notifications"))
155155
implementation(project(":apps:flipcash:shared:onramp:coinbase"))

apps/flipcash/shared/currency-selection/ui/src/main/kotlin/com/flipcash/app/currency/internal/components/RegionList.kt

Lines changed: 0 additions & 194 deletions
This file was deleted.

apps/flipcash/shared/google-play-billing/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ dependencies {
1313
api(libs.google.play.billing.ktx)
1414

1515
implementation(project(":apps:flipcash:shared:analytics"))
16-
implementation(project(":apps:flipcash:shared:currency-selection:core"))
16+
implementation(project(":apps:flipcash:shared:region-selection:core"))
1717
implementation(project(":libs:datetime"))
1818
}

apps/flipcash/shared/currency-selection/core/.gitignore renamed to apps/flipcash/shared/region-selection/core/.gitignore

File renamed without changes.

apps/flipcash/shared/currency-selection/core/build.gradle.kts renamed to apps/flipcash/shared/region-selection/core/build.gradle.kts

File renamed without changes.

apps/flipcash/shared/currency-selection/core/src/main/kotlin/com/flipcash/app/currency/PreferredCurrencyController.kt renamed to apps/flipcash/shared/region-selection/core/src/main/kotlin/com/flipcash/app/currency/PreferredCurrencyController.kt

File renamed without changes.
File renamed without changes.

apps/flipcash/shared/currency-selection/ui/build.gradle.kts renamed to apps/flipcash/shared/region-selection/ui/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ android {
99
dependencies {
1010
implementation(libs.androidx.datastore)
1111

12-
implementation(project(":apps:flipcash:shared:currency-selection:core"))
12+
implementation(project(":apps:flipcash:shared:region-selection:core"))
1313
implementation(project(":libs:datetime"))
1414
}

apps/flipcash/shared/currency-selection/ui/src/main/kotlin/com/flipcash/app/currency/RegionSelectionScreen.kt renamed to apps/flipcash/shared/region-selection/ui/src/main/kotlin/com/flipcash/app/currency/RegionSelectionScreen.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import androidx.compose.ui.Alignment
77
import androidx.compose.ui.Modifier
88
import androidx.compose.ui.res.stringResource
99
import androidx.hilt.navigation.compose.hiltViewModel
10-
import com.flipcash.app.currency.internal.CurrencyViewModel
11-
import com.flipcash.app.currency.internal.RegionSelectionModalContent
10+
import com.flipcash.app.currency.internal.RegionSelectionViewModel
11+
import com.flipcash.app.currency.internal.RegionSelectionScreen
1212
import com.flipcash.core.R
1313
import com.getcode.navigation.core.LocalCodeNavigator
1414
import com.getcode.ui.components.AppBarWithTitle
@@ -30,7 +30,7 @@ fun RegionSelectionScreen() {
3030
}
3131
)
3232

33-
val viewModel = hiltViewModel<CurrencyViewModel>()
34-
RegionSelectionModalContent(viewModel)
33+
val viewModel = hiltViewModel<RegionSelectionViewModel>()
34+
RegionSelectionScreen(viewModel)
3535
}
3636
}

apps/flipcash/shared/currency-selection/ui/src/main/kotlin/com/flipcash/app/currency/internal/CurrencyListItem.kt renamed to apps/flipcash/shared/region-selection/ui/src/main/kotlin/com/flipcash/app/currency/internal/RegionListItem.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.flipcash.app.currency.internal
22

33
import com.getcode.opencode.model.financial.Currency
44

5-
sealed interface CurrencyListItem {
6-
data class TitleItem(val text: String) : CurrencyListItem
7-
data class RegionCurrencyItem(val currency: Currency, val isRecent: Boolean) : CurrencyListItem
5+
sealed interface RegionListItem {
6+
data class TitleItem(val text: String) : RegionListItem
7+
data class RegionCurrencyItem(val currency: Currency, val isRecent: Boolean) : RegionListItem
88
}

0 commit comments

Comments
 (0)