gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-taler-ios] 25/54: failTransaction


From: gnunet
Subject: [taler-taler-ios] 25/54: failTransaction
Date: Fri, 30 Jun 2023 22:33:57 +0200

This is an automated email from the git hooks/post-receive script.

marc-stibane pushed a commit to branch master
in repository taler-ios.

commit ef9b59f24bc9479543f2bfd1d97b870c2bda2574
Author: Marc Stibane <marc@taler.net>
AuthorDate: Tue Jun 27 14:24:06 2023 +0200

    failTransaction
---
 .../Views/Balances/BalancesSectionView.swift       | 10 +++++---
 .../Views/HelperViews/TransactionButton.swift      |  5 ++--
 .../Views/Transactions/TransactionDetailView.swift |  7 +++++-
 .../Views/Transactions/TransactionsListView.swift  | 28 ++++++++++++----------
 4 files changed, 32 insertions(+), 18 deletions(-)

diff --git a/TalerWallet1/Views/Balances/BalancesSectionView.swift 
b/TalerWallet1/Views/Balances/BalancesSectionView.swift
index 188be25..4220fd0 100644
--- a/TalerWallet1/Views/Balances/BalancesSectionView.swift
+++ b/TalerWallet1/Views/Balances/BalancesSectionView.swift
@@ -84,6 +84,7 @@ struct BalancesSectionView: View {
         let abortAction = model.abortTransactionT
         let suspendAction = model.suspendTransactionT // dummyTransaction
         let resumeAction = model.resumeTransactionT
+        let failAction = model.failTransaction
 
         Section {
 //            if "KUDOS" == currency && !balance.available.isZero {
@@ -110,8 +111,9 @@ struct BalancesSectionView: View {
                                      transactions: completedTransactions,
                                   reloadAllAction: reloadCompleted,
                                   reloadOneAction: reloadOneAction,
-                                     deleteAction: deleteAction,
                                       abortAction: abortAction,
+                                     deleteAction: deleteAction,
+                                       failAction: failAction,
                                     suspendAction: suspendAction,
                                      resumeAction: resumeAction)
                   }, tag: 3, selection: $buttonSelected
@@ -139,8 +141,9 @@ struct BalancesSectionView: View {
                                          transactions: pendingTransactions,
                                       reloadAllAction: reloadPending,
                                       reloadOneAction: reloadOneAction,
-                                         deleteAction: deleteAction,
                                           abortAction: abortAction,
+                                         deleteAction: deleteAction,
+                                           failAction: failAction,
                                         suspendAction: suspendAction,
                                          resumeAction: resumeAction)
                     }
@@ -170,8 +173,9 @@ struct BalancesSectionView: View {
                                              transactions: 
uncompletedTransactions,
                                           reloadAllAction: reloadUncompleted,
                                           reloadOneAction: reloadOneAction,
-                                             deleteAction: deleteAction,
                                               abortAction: abortAction,
+                                             deleteAction: deleteAction,
+                                               failAction: failAction,
                                             suspendAction: suspendAction,
                                              resumeAction: resumeAction)
                     }
diff --git a/TalerWallet1/Views/HelperViews/TransactionButton.swift 
b/TalerWallet1/Views/HelperViews/TransactionButton.swift
index 3c017e6..ed4f3fa 100644
--- a/TalerWallet1/Views/HelperViews/TransactionButton.swift
+++ b/TalerWallet1/Views/HelperViews/TransactionButton.swift
@@ -14,9 +14,10 @@ struct TransactionButton: View {
     @State var disabled: Bool = false
     @State var executed: Bool = false
     var body: some View {
+        let isDestructive = (command == .delete) || (command == .fail)
         let role: ButtonRole? = (command == .abort) ? .cancel
-                              : (command == .delete) ? .destructive
-                                                     : nil
+                              :  isDestructive ? .destructive
+                                               : nil
         Button(role: role, action: {
             Task {
                 disabled = true     // don't try this more than once
diff --git a/TalerWallet1/Views/Transactions/TransactionDetailView.swift 
b/TalerWallet1/Views/Transactions/TransactionDetailView.swift
index 0165764..486984c 100644
--- a/TalerWallet1/Views/Transactions/TransactionDetailView.swift
+++ b/TalerWallet1/Views/Transactions/TransactionDetailView.swift
@@ -31,8 +31,9 @@ struct TransactionDetailView: View {
     @State var viewId = UUID()
 
     var reloadAction: ((_ transactionId: String) async throws -> Transaction)
-    var deleteAction: ((_ transactionId: String) async throws -> Void)?
     var abortAction: ((_ transactionId: String) async throws -> Void)?
+    var deleteAction: ((_ transactionId: String) async throws -> Void)?
+    var failAction: ((_ transactionId: String) async throws -> Void)?
     var doneAction: (() -> Void)?
     var suspendAction: ((_ transactionId: String) async throws -> Void)?
     var resumeAction: ((_ transactionId: String) async throws -> Void)?
@@ -69,6 +70,10 @@ struct TransactionDetailView: View {
                     TransactionButton(transactionId: common.transactionId,
                                       command: .abort, action: abortAction)
                 } } // Abort button
+                if transaction.isFailable { if let failAction {
+                    TransactionButton(transactionId: common.transactionId,
+                                      command: .fail, action: failAction)
+                } } // Delete button
                 if transaction.isDeleteable { if let deleteAction {
                     TransactionButton(transactionId: common.transactionId,
                                       command: .delete, action: deleteAction)
diff --git a/TalerWallet1/Views/Transactions/TransactionsListView.swift 
b/TalerWallet1/Views/Transactions/TransactionsListView.swift
index 77563e4..014a3a0 100644
--- a/TalerWallet1/Views/Transactions/TransactionsListView.swift
+++ b/TalerWallet1/Views/Transactions/TransactionsListView.swift
@@ -14,8 +14,9 @@ struct TransactionsListView: View {
     let transactions: [Transaction]
     let reloadAllAction: () async -> ()
     let reloadOneAction: ((_ transactionId: String) async throws -> 
Transaction)
-    let deleteAction: (_ transactionId: String) async throws -> ()
     let abortAction: (_ transactionId: String) async throws -> ()
+    let deleteAction: (_ transactionId: String) async throws -> ()
+    let failAction: (_ transactionId: String) async throws -> ()
     let suspendAction: (_ transactionId: String) async throws -> ()
     let resumeAction: (_ transactionId: String) async throws -> ()
 
@@ -29,15 +30,16 @@ struct TransactionsListView: View {
 //        let title = AttributedString(localized: "^[\(count) Ticket](inflect: 
true)")
         let title: String = "\(count) \(navTitle)"
         Content(symLog: symLog,
-                currency: currency,
-                transactions: transactions,
-                myListStyle: $myListStyle,
-                reloadAllAction: reloadAllAction,
-                reloadOneAction: reloadOneAction,
-                deleteAction: deleteAction,
-                abortAction: abortAction,
-                suspendAction: suspendAction,
-                resumeAction: resumeAction)
+              currency: currency,
+          transactions: transactions,
+           myListStyle: $myListStyle,
+       reloadAllAction: reloadAllAction,
+       reloadOneAction: reloadOneAction,
+           abortAction: abortAction,
+          deleteAction: deleteAction,
+            failAction: failAction,
+         suspendAction: suspendAction,
+          resumeAction: resumeAction)
             .navigationTitle(title)
             .navigationBarTitleDisplayMode(.large)      // .inline
             .onAppear {
@@ -58,8 +60,9 @@ extension TransactionsListView {
         @Binding var myListStyle: MyListStyle
         let reloadAllAction: () async -> ()
         let reloadOneAction: ((_ transactionId: String) async throws -> 
Transaction)
-        let deleteAction: (_ transactionId: String) async throws -> ()
         let abortAction: (_ transactionId: String) async throws -> ()
+        let deleteAction: (_ transactionId: String) async throws -> ()
+        let failAction: (_ transactionId: String) async throws -> ()
         let suspendAction: (_ transactionId: String) async throws -> ()
         let resumeAction: (_ transactionId: String) async throws -> ()
 
@@ -102,8 +105,9 @@ extension TransactionsListView {
                             // pending may not be deleted, but only aborted
                             TransactionDetailView(transactionId: 
transaction.id,
                                                  reloadAction: reloadOneAction,
-                                                 deleteAction: deleteAction,
                                                   abortAction: abortAction,
+                                                 deleteAction: deleteAction,
+                                                   failAction: failAction,
                                                 suspendAction: suspendAction,
                                                  resumeAction: resumeAction)
                         }} label: {

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]