Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions lib/features/ark/ui/ark_balance_detail_widget.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'package:bb_mobile/core/ark/entities/ark_balance.dart';
import 'package:bb_mobile/core/themes/app_theme.dart';
import 'package:bb_mobile/core/utils/build_context_x.dart';
import 'package:bb_mobile/core/widgets/bottom_sheet/x.dart';
import 'package:bb_mobile/features/bitcoin_price/ui/currency_text.dart';
import 'package:bb_mobile/features/wallet/ui/widgets/eye_toggle.dart';
Expand Down Expand Up @@ -29,7 +30,7 @@ class ArkBalanceDetailWidget extends StatelessWidget {
child: Column(
mainAxisSize: .min,
children: [
Text('Balance Breakdown', style: context.font.headlineMedium),
Text(context.loc.arkBalanceBreakdown, style: context.font.headlineMedium),
const Gap(24),
if (arkBalance != null) ...[
// Boarding Unconfirmed
Expand All @@ -44,7 +45,7 @@ class ArkBalanceDetailWidget extends StatelessWidget {
),
const Gap(8),
Text(
'Boarding Unconfirmed',
context.loc.arkBoardingUnconfirmed,
style: context.font.bodyLarge,
),
],
Expand All @@ -69,7 +70,7 @@ class ArkBalanceDetailWidget extends StatelessWidget {
),
const Gap(8),
Text(
'Boarding Confirmed',
context.loc.arkBoardingConfirmed,
style: context.font.bodyLarge,
),
],
Expand All @@ -93,7 +94,7 @@ class ArkBalanceDetailWidget extends StatelessWidget {
color: context.appColors.warning,
),
const Gap(8),
Text('Preconfirmed', style: context.font.bodyLarge),
Text(context.loc.arkPreconfirmed, style: context.font.bodyLarge),
],
),
CurrencyText(
Expand All @@ -115,7 +116,7 @@ class ArkBalanceDetailWidget extends StatelessWidget {
color: context.appColors.success,
),
const Gap(8),
Text('Settled', style: context.font.bodyLarge),
Text(context.loc.arkSettled, style: context.font.bodyLarge),
],
),
CurrencyText(
Expand All @@ -137,7 +138,7 @@ class ArkBalanceDetailWidget extends StatelessWidget {
color: context.appColors.primary,
),
const Gap(8),
Text('Available', style: context.font.bodyLarge),
Text(context.loc.arkAvailable, style: context.font.bodyLarge),
],
),
CurrencyText(
Expand All @@ -154,7 +155,7 @@ class ArkBalanceDetailWidget extends StatelessWidget {
Row(
mainAxisAlignment: .spaceBetween,
children: [
Text('Total', style: context.font.titleLarge),
Text(context.loc.arkTotal, style: context.font.titleLarge),
CurrencyText(
arkBalance!.completeTotal,
style: context.font.titleLarge,
Expand All @@ -164,7 +165,7 @@ class ArkBalanceDetailWidget extends StatelessWidget {
),
] else ...[
Text(
'No balance data available',
context.loc.arkNoBalanceData,
style: context.font.bodyLarge,
),
],
Expand Down Expand Up @@ -229,7 +230,7 @@ class ArkBalanceDetailWidget extends StatelessWidget {
Icons.info_outline,
color: context.appColors.onPrimary,
),
tooltip: 'Balance breakdown',
tooltip: context.loc.arkBalanceBreakdownTooltip,
),
),
],
Expand Down
27 changes: 14 additions & 13 deletions lib/features/ark/ui/ark_transaction_details_page.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'package:ark_wallet/ark_wallet.dart' as ark_wallet;
import 'package:bb_mobile/core/themes/app_theme.dart';
import 'package:bb_mobile/core/utils/build_context_x.dart';
import 'package:bb_mobile/core/utils/mempool_url.dart';
import 'package:bb_mobile/core/utils/string_formatting.dart';
import 'package:bb_mobile/core/widgets/badges/transaction_direction_badge.dart';
Expand Down Expand Up @@ -36,22 +37,22 @@ class ArkTransactionDetailsPage extends StatelessWidget {
if (tx.confirmedAt != null) {
date = DateTime.fromMillisecondsSinceEpoch(tx.confirmedAt! * 1000);
}
type = 'Boarding';
statusLabel = date != null ? 'Confirmed' : 'Pending';
type = context.loc.arkTxBoarding;
statusLabel = date != null ? context.loc.arkStatusConfirmed : context.loc.arkTxPending;
case final ark_wallet.Transaction_Commitment tx:
txid = tx.txid;
sats = tx.sats;
date = DateTime.fromMillisecondsSinceEpoch(tx.createdAt * 1000);
type = 'Settlement';
statusLabel = 'Confirmed';
type = context.loc.arkTxSettlement;
statusLabel = context.loc.arkStatusConfirmed;
isIncoming = false;
isSwap = true;
case final ark_wallet.Transaction_Redeem tx:
txid = tx.txid;
sats = tx.sats;
date = DateTime.fromMillisecondsSinceEpoch(tx.createdAt * 1000);
type = 'Payment';
statusLabel = tx.isSettled ? 'Settled' : 'Pending';
type = context.loc.arkTxPayment;
statusLabel = tx.isSettled ? context.loc.arkStatusSettled : context.loc.arkTxPending;
isIncoming = false;
}

Expand All @@ -64,7 +65,7 @@ class ArkTransactionDetailsPage extends StatelessWidget {
forceMaterialTransparency: true,
automaticallyImplyLeading: false,
flexibleSpace: TopBar(
title: 'Transaction details',
title: context.loc.arkTransactionDetails,
actionIcon: Icons.close,
onAction: () => context.pop(),
),
Expand Down Expand Up @@ -101,7 +102,7 @@ class ArkTransactionDetailsPage extends StatelessWidget {
DetailsTable(
items: [
DetailsTableItem(
label: 'Transaction ID',
label: context.loc.arkTransactionId,
displayValue: StringFormatting.truncateMiddle(txid),
copyValue: txid,
displayWidget:
Expand All @@ -120,14 +121,14 @@ class ArkTransactionDetailsPage extends StatelessWidget {
)
: null,
),
DetailsTableItem(label: 'Type', displayValue: type),
DetailsTableItem(label: context.loc.arkType, displayValue: type),
DetailsTableItem(
label: 'Status',
label: context.loc.arkStatus,
displayValue: statusLabel,
),
DetailsTableItem(
label: 'Amount',
displayValue: '$sats sats',
label: context.loc.arkAmount,
displayValue: '$sats ${context.loc.arkSatsUnit}',
),
// Note: Network fee is not currently available from the ark_wallet library
// When the library exposes fee information, it can be added here like:
Expand All @@ -138,7 +139,7 @@ class ArkTransactionDetailsPage extends StatelessWidget {
// ),
if (date != null)
DetailsTableItem(
label: 'Date',
label: context.loc.arkDate,
displayValue: DateFormat(
'MMM d, y, h:mm a',
).format(date),
Expand Down
13 changes: 7 additions & 6 deletions lib/features/ark/ui/ark_tx_widget.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'package:ark_wallet/ark_wallet.dart' as ark_wallet;
import 'package:bb_mobile/core/themes/app_theme.dart';
import 'package:bb_mobile/core/utils/build_context_x.dart';
import 'package:bb_mobile/core/utils/mempool_url.dart';
import 'package:bb_mobile/core/utils/string_formatting.dart';
import 'package:bb_mobile/core/widgets/text/text.dart';
Expand All @@ -14,14 +15,14 @@ import 'package:url_launcher/url_launcher.dart';
enum ArkTransactionType { boarding, commitment, redeem }

extension ArkTransactionTypeExtension on ArkTransactionType {
String get name {
String toTranslated(BuildContext context) {
switch (this) {
case ArkTransactionType.boarding:
return 'Boarding';
return context.loc.arkTxBoarding;
case ArkTransactionType.commitment:
return 'Settlement';
return context.loc.arkTxSettlement;
case ArkTransactionType.redeem:
return 'Payment';
return context.loc.arkTxPayment;
}
}
}
Expand Down Expand Up @@ -130,7 +131,7 @@ class ArkTxWidget extends StatelessWidget {
borderRadius: BorderRadius.circular(2.0),
),
child: BBText(
StringFormatting.capitalize(transactionType.name),
transactionType.toTranslated(context),
style: context.font.labelSmall?.copyWith(
color: context.appColors.onSecondary,
),
Expand Down Expand Up @@ -158,7 +159,7 @@ class ArkTxWidget extends StatelessWidget {
Row(
children: [
BBText(
'Pending',
context.loc.arkTxPending,
style: context.font.labelSmall?.copyWith(
color: context.appColors.primary,
),
Expand Down
9 changes: 5 additions & 4 deletions lib/features/ark/ui/collaborative_redeem_bottom_sheet.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'package:bb_mobile/core/themes/app_theme.dart';
import 'package:bb_mobile/core/utils/build_context_x.dart';
import 'package:bb_mobile/core/widgets/buttons/button.dart';
import 'package:bb_mobile/core/widgets/text/text.dart';
import 'package:bb_mobile/features/ark/presentation/cubit.dart';
Expand Down Expand Up @@ -56,7 +57,7 @@ class CollaborativeRedeemBottomSheet extends StatelessWidget {
children: [
const Gap(24),
BBText(
'Collaborative Redeem',
context.loc.arkCollaborativeRedeem,
style: context.font.headlineMedium,
),
GestureDetector(
Expand All @@ -78,7 +79,7 @@ class CollaborativeRedeemBottomSheet extends StatelessWidget {
value: state.withRecoverableVtxos,
onChanged: cubit.onChangedSelectRecoverableVtxos,
title: BBText(
'Recoverable Vtxos',
context.loc.arkRecoverableVtxos,
style: context.font.bodyMedium,
),
contentPadding: EdgeInsets.zero,
Expand All @@ -88,7 +89,7 @@ class CollaborativeRedeemBottomSheet extends StatelessWidget {
children: [
Expanded(
child: BBButton.big(
label: 'Cancel',
label: context.loc.arkCancelButton,
onPressed: () => Navigator.of(context).pop(),
bgColor: context.appColors.surface,
textColor: context.appColors.onSurface,
Expand All @@ -97,7 +98,7 @@ class CollaborativeRedeemBottomSheet extends StatelessWidget {
const Gap(16),
Expanded(
child: BBButton.big(
label: 'Redeem',
label: context.loc.arkRedeemButton,
onPressed: () async {
Navigator.of(context).pop();
await cubit.onSendConfirmed();
Expand Down
5 changes: 3 additions & 2 deletions lib/features/ark/ui/send_success_page.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import 'package:bb_mobile/core/themes/app_theme.dart';
import 'package:bb_mobile/core/utils/build_context_x.dart';
import 'package:bb_mobile/features/ark/router.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
Expand All @@ -10,7 +11,7 @@ class SendSuccessPage extends StatelessWidget {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Send Successful'),
title: Text(context.loc.arkSendSuccessTitle),
actions: [
CloseButton(
onPressed: () {
Expand All @@ -25,7 +26,7 @@ class SendSuccessPage extends StatelessWidget {
const SizedBox(height: 24),
Icon(Icons.check_circle, color: context.appColors.success, size: 72),
const SizedBox(height: 24),
const Text('Your Ark transaction was successful!'),
Text(context.loc.arkSendSuccessMessage),
],
),
),
Expand Down
52 changes: 52 additions & 0 deletions localization/app_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -4928,6 +4928,58 @@
}
}
},
"arkSendSuccessTitle": "Send Successful",
"@arkSendSuccessTitle": {
"description": "Title shown after successful Ark send transaction"
},
"arkSendSuccessMessage": "Your Ark transaction was successful!",
"@arkSendSuccessMessage": {
"description": "Success message shown after Ark send transaction completes"
},
"arkBoardingUnconfirmed": "Boarding Unconfirmed",
"@arkBoardingUnconfirmed": {
"description": "Label for unconfirmed boarding balance in Ark balance breakdown"
},
"arkBoardingConfirmed": "Boarding Confirmed",
"@arkBoardingConfirmed": {
"description": "Label for confirmed boarding balance in Ark balance breakdown"
},
"arkPreconfirmed": "Preconfirmed",
"@arkPreconfirmed": {
"description": "Label for preconfirmed balance in Ark balance breakdown"
},
"arkSettled": "Settled",
"@arkSettled": {
"description": "Label for settled balance in Ark balance breakdown"
},
"arkAvailable": "Available",
"@arkAvailable": {
"description": "Label for available balance in Ark balance breakdown"
},
"arkNoBalanceData": "No balance data available",
"@arkNoBalanceData": {
"description": "Message shown when Ark balance data is not available"
},
"arkTxPending": "Pending",
"@arkTxPending": {
"description": "Status label for pending Ark transactions"
},
"arkTxBoarding": "Boarding",
"@arkTxBoarding": {
"description": "Transaction type label for Ark boarding transactions"
},
"arkTxSettlement": "Settlement",
"@arkTxSettlement": {
"description": "Transaction type label for Ark settlement transactions"
},
"arkTxPayment": "Payment",
"@arkTxPayment": {
"description": "Transaction type label for Ark payment transactions"
},
"arkSatsUnit": "sats",
"@arkSatsUnit": {
"description": "Unit label for satoshis in Ark transaction details"
},
"advancedOptionsTitle": "Advanced options",
"@advancedOptionsTitle": {
"description": "Bottom sheet header/title for advanced sending options"
Expand Down
52 changes: 52 additions & 0 deletions localization/app_es.arb
Original file line number Diff line number Diff line change
Expand Up @@ -4928,6 +4928,58 @@
}
}
},
"arkSendSuccessTitle": "Envío exitoso",
"@arkSendSuccessTitle": {
"description": "Title shown after successful Ark send transaction"
},
"arkSendSuccessMessage": "¡Tu transacción Ark fue exitosa!",
"@arkSendSuccessMessage": {
"description": "Success message shown after Ark send transaction completes"
},
"arkBoardingUnconfirmed": "Embarque sin confirmar",
"@arkBoardingUnconfirmed": {
"description": "Label for unconfirmed boarding balance in Ark balance breakdown"
},
"arkBoardingConfirmed": "Embarque confirmado",
"@arkBoardingConfirmed": {
"description": "Label for confirmed boarding balance in Ark balance breakdown"
},
"arkPreconfirmed": "Preconfirmado",
"@arkPreconfirmed": {
"description": "Label for preconfirmed balance in Ark balance breakdown"
},
"arkSettled": "Liquidado",
"@arkSettled": {
"description": "Label for settled balance in Ark balance breakdown"
},
"arkAvailable": "Disponible",
"@arkAvailable": {
"description": "Label for available balance in Ark balance breakdown"
},
"arkNoBalanceData": "No hay datos de saldo disponibles",
"@arkNoBalanceData": {
"description": "Message shown when Ark balance data is not available"
},
"arkTxPending": "Pendiente",
"@arkTxPending": {
"description": "Status label for pending Ark transactions"
},
"arkTxBoarding": "Embarque",
"@arkTxBoarding": {
"description": "Transaction type label for Ark boarding transactions"
},
"arkTxSettlement": "Liquidación",
"@arkTxSettlement": {
"description": "Transaction type label for Ark settlement transactions"
},
"arkTxPayment": "Pago",
"@arkTxPayment": {
"description": "Transaction type label for Ark payment transactions"
},
"arkSatsUnit": "sats",
"@arkSatsUnit": {
"description": "Unit label for satoshis in Ark transaction details"
},
"advancedOptionsTitle": "Opciones avanzadas",
"@advancedOptionsTitle": {
"description": "Bottom sheet header/title for advanced sending options"
Expand Down
Loading