fix: show fiat conversion on paymentsent

This commit is contained in:
2026-06-02 15:16:37 +02:00
parent 441a258b10
commit 9a1bb3e008
@@ -25,6 +25,8 @@ import com.bitcointxoko.gudariwallet.ui.send.LnurlInvoiceConfirmCard
import com.bitcointxoko.gudariwallet.ui.send.LnurlPayForm
import com.bitcointxoko.gudariwallet.util.SendInputDetector
import com.bitcointxoko.gudariwallet.util.feePpm
import com.bitcointxoko.gudariwallet.util.formatFiat
import com.bitcointxoko.gudariwallet.util.satsToFiat
import kotlinx.coroutines.launch
@Composable
@@ -35,11 +37,11 @@ fun SendScreen(vm: WalletViewModel) {
val activity = context as FragmentActivity
val clipboard = LocalClipboard.current
val scope = rememberCoroutineScope()
// Read rate directly from VM cache — same source HomeTab uses.
// Both are null when no currency is selected; fiat display is suppressed.
val fiatRate = vm.fiatRate // Double?
val fiatCurrency = vm.fiatCurrency // String?
val balanceState by vm.balanceState.collectAsStateWithLifecycle()
val fiatRate = (balanceState as? BalanceState.Success)?.let { s ->
s.fiatAmount?.let { if (s.sats > 0) s.sats.toDouble() / it else null }
}
val fiatCurrency = (balanceState as? BalanceState.Success)?.fiatCurrency
DisposableEffect(Unit) { onDispose { vm.resetSendState() } }
@@ -169,7 +171,16 @@ fun SendScreen(vm: WalletViewModel) {
text = "${state.amountSats} sats",
color = MaterialTheme.colorScheme.onSurfaceVariant
)
val fiatAmount = if (fiatRate != null && fiatCurrency != null) {
satsToFiat(state.amountSats, fiatRate)
} else null
if (fiatAmount != null && fiatCurrency != null) {
Text(
text = "${formatFiat(fiatAmount, fiatCurrency)}",
style = MaterialTheme.typography.bodyMedium,
color = MaterialTheme.colorScheme.onSurfaceVariant
)
}
Spacer(Modifier.height(4.dp))
val feeText = when {
state.feeSats == null || state.feeSats == 0L -> "No fees"