fix: payment detail not loading on filter or search when not in memory
This commit is contained in:
@@ -72,7 +72,7 @@ sealed class TabItem(val route: String, val label: String, val icon: ImageVector
|
||||
private const val ROUTE_HOME = "home"
|
||||
private const val ROUTE_SCANNER = "scanner"
|
||||
private const val ROUTE_HISTORY = "history"
|
||||
private const val ROUTE_PAYMENT_DETAIL = "payment_detail/{paymentHash}"
|
||||
private const val ROUTE_PAYMENT_DETAIL = "payment_detail/{checkingId}"
|
||||
|
||||
@Composable
|
||||
fun WalletScreen(
|
||||
@@ -317,7 +317,7 @@ fun WalletScreen(
|
||||
navController.popBackStack(ROUTE_HOME, inclusive = false)
|
||||
},
|
||||
onPaymentClick = { payment ->
|
||||
navController.navigate("payment_detail/${payment.paymentHash}")
|
||||
navController.navigate("payment_detail/${payment.checkingId}")
|
||||
}
|
||||
)
|
||||
}
|
||||
@@ -325,13 +325,12 @@ fun WalletScreen(
|
||||
// Payment detail — back → history (natural back stack)
|
||||
composable(
|
||||
route = ROUTE_PAYMENT_DETAIL,
|
||||
arguments = listOf(navArgument("paymentHash") { type = NavType.StringType })
|
||||
arguments = listOf(navArgument("checkingId") { type = NavType.StringType })
|
||||
) { backStackEntry ->
|
||||
val paymentHash = backStackEntry.arguments?.getString("paymentHash") ?: ""
|
||||
val historyState by historyVm.state.collectAsState()
|
||||
val payment = (historyState as? HistoryState.Success)
|
||||
?.payments
|
||||
?.firstOrNull { it.paymentHash == paymentHash }
|
||||
val checkingId = backStackEntry.arguments?.getString("checkingId") ?: ""
|
||||
// val historyState by historyVm.state.collectAsState()
|
||||
val historyState by historyVm.filteredState.collectAsState()
|
||||
val payment = historyVm.findPayment(checkingId)
|
||||
|
||||
if (payment != null) {
|
||||
PaymentDetailScreen(
|
||||
@@ -340,7 +339,7 @@ fun WalletScreen(
|
||||
onBack = { navController.popBackStack() }
|
||||
)
|
||||
} else {
|
||||
LaunchedEffect(paymentHash) { historyVm.refresh() }
|
||||
LaunchedEffect(checkingId) { historyVm.refresh() }
|
||||
Box(
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
contentAlignment = Alignment.Center
|
||||
|
||||
Reference in New Issue
Block a user