@@ -4,21 +4,60 @@ import SwiftUI
44struct ActivityRow : View {
55 let item : Activity
66 let feeEstimates : FeeRates ?
7+ let contact : PubkyContact ?
78 let titleOverride : String ?
89
9- init ( item: Activity , feeEstimates: FeeRates ? , titleOverride: String ? = nil ) {
10+ init ( item: Activity , feeEstimates: FeeRates ? , contact : PubkyContact ? = nil , titleOverride: String ? = nil ) {
1011 self . item = item
1112 self . feeEstimates = feeEstimates
13+ self . contact = contact
1214 self . titleOverride = titleOverride
1315 }
1416
17+ private var rowTitleOverride : String ? {
18+ if let titleOverride {
19+ return titleOverride
20+ }
21+
22+ return contactTitle
23+ }
24+
25+ private var contactTitle : String ? {
26+ guard let contact else { return nil }
27+
28+ let txType : PaymentType
29+ switch item {
30+ case let . lightning( lightning) :
31+ guard lightning. status == . succeeded else {
32+ return nil
33+ }
34+ txType = lightning. txType
35+
36+ case let . onchain( onchain) :
37+ guard onchain. doesExist,
38+ !onchain. isTransfer,
39+ !( onchain. isBoosted && !onchain. confirmed)
40+ else {
41+ return nil
42+ }
43+ txType = onchain. txType
44+ }
45+
46+ switch txType {
47+ case . sent:
48+ return t ( " contacts__activity_sent_to " , variables: [ " name " : contact. displayName] )
49+ case . received:
50+ return t ( " contacts__activity_received_from " , variables: [ " name " : contact. displayName] )
51+ }
52+ }
53+
1554 var body : some View {
1655 Group {
1756 switch item {
1857 case let . lightning( activity) :
19- ActivityRowLightning ( item: activity, titleOverride: titleOverride )
58+ ActivityRowLightning ( item: activity, titleOverride: rowTitleOverride )
2059 case let . onchain( activity) :
21- ActivityRowOnchain ( item: activity, feeEstimates: feeEstimates, titleOverride: titleOverride )
60+ ActivityRowOnchain ( item: activity, feeEstimates: feeEstimates, titleOverride: rowTitleOverride )
2261 }
2362 }
2463 . padding ( 16 )
0 commit comments