Skip to content

Commit 43628c4

Browse files
committed
makes balance codes refreshable
1 parent 5d70967 commit 43628c4

1 file changed

Lines changed: 54 additions & 44 deletions

File tree

app/network/Main/Account/TransferBalanceCodes/TransferBalanceCodesView.swift

Lines changed: 54 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ struct TransferBalanceCodesView: View {
2323

2424
var body: some View {
2525

26-
Group {
27-
26+
ZStack {
27+
2828
if (viewModel.isInitializing) {
2929
VStack {
3030

@@ -38,17 +38,11 @@ struct TransferBalanceCodesView: View {
3838
.frame(maxWidth: .infinity, maxHeight: .infinity)
3939
} else {
4040

41-
if viewModel.redeemedBalanceCodes.isEmpty {
42-
VStack {
43-
Text("No balance codes found")
44-
.font(themeManager.currentTheme.bodyFont)
45-
.foregroundStyle(themeManager.currentTheme.textMutedColor)
46-
}
47-
.frame(maxWidth: .infinity, maxHeight: .infinity)
48-
} else {
49-
50-
List {
41+
List {
42+
if (!viewModel.redeemedBalanceCodes.isEmpty) {
43+
5144
Section {
45+
5246
ForEach(viewModel.redeemedBalanceCodes, id: \.balanceCodeId?.idStr) { balanceCode in
5347
let masked: String = {
5448
let keep = 3
@@ -67,6 +61,7 @@ struct TransferBalanceCodesView: View {
6761
}
6862
}
6963
}
64+
7065
} header: {
7166
HStack {
7267
Text("Code")
@@ -80,46 +75,61 @@ struct TransferBalanceCodesView: View {
8075
.padding(.vertical, 4)
8176
}
8277
}
83-
.listStyle(.inset)
8478

8579
}
86-
}
87-
}
88-
.toolbar {
89-
90-
ToolbarItem(placement: .primaryAction) {
91-
Button(action: {
92-
viewModel.displayRedeemSheet = true
93-
}) {
94-
Image(systemName: "plus")
80+
.listStyle(.inset)
81+
.refreshable {
82+
await viewModel.getRedeemedBalanceCodes()
9583
}
96-
}
97-
}
98-
.sheet(isPresented: $viewModel.displayRedeemSheet) {
99-
VStack {
100-
101-
RedeemBalanceCodeSheet(
102-
closeSheet: {
103-
viewModel.displayRedeemSheet = false
104-
},
105-
onSuccess: {
106-
107-
viewModel.displayRedeemSheet = false
108-
109-
// start polling
110-
subscriptionBalanceViewModel.startPolling()
111-
112-
Task {
113-
await viewModel.getRedeemedBalanceCodes()
84+
.toolbar {
85+
86+
ToolbarItem(placement: .primaryAction) {
87+
Button(action: {
88+
viewModel.displayRedeemSheet = true
89+
}) {
90+
Image(systemName: "plus")
11491
}
92+
}
93+
}
94+
.sheet(isPresented: $viewModel.displayRedeemSheet) {
95+
VStack {
96+
97+
RedeemBalanceCodeSheet(
98+
closeSheet: {
99+
viewModel.displayRedeemSheet = false
100+
},
101+
onSuccess: {
102+
103+
viewModel.displayRedeemSheet = false
104+
105+
// start polling
106+
subscriptionBalanceViewModel.startPolling()
107+
108+
Task {
109+
await viewModel.getRedeemedBalanceCodes()
110+
}
111+
112+
},
113+
api: self.api
114+
)
115115

116-
},
117-
api: self.api
118-
)
116+
}
117+
.background(themeManager.currentTheme.backgroundColor)
118+
}
119+
120+
if (viewModel.redeemedBalanceCodes.isEmpty) {
121+
VStack {
122+
Text("No balance codes found")
123+
.font(themeManager.currentTheme.bodyFont)
124+
.foregroundStyle(themeManager.currentTheme.textMutedColor)
125+
}
126+
.frame(maxWidth: .infinity, maxHeight: .infinity)
127+
}
119128

120129
}
121-
.background(themeManager.currentTheme.backgroundColor)
130+
122131
}
132+
123133
}
124134
}
125135

0 commit comments

Comments
 (0)