Skip to content

Commit 9e70a5f

Browse files
committed
Fix loading bugs
1 parent fd9fd21 commit 9e70a5f

File tree

4 files changed

+17
-17
lines changed

4 files changed

+17
-17
lines changed

internal/view/account.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ func (a *Account) SetAccount(account *serv.Account) {
5454
// change current account
5555
a.account = account
5656

57+
// set base account
58+
base := a.account.GetAddress()
59+
a.transactionList.SetBaseAccount(&base)
60+
5761
// populate contract field if account is a contract
5862
if account.IsContract() {
5963
contract, err := account.AsContract()
@@ -186,10 +190,6 @@ func (a *Account) refresh() {
186190
log.Error("Failed to fetch account balance", "account", addr, "error", err)
187191
}
188192

189-
// set base account
190-
base := a.account.GetAddress()
191-
a.transactionList.SetBaseAccount(&base)
192-
193193
// update transaction history asynchronously
194194
a.transactionList.LoadAsync(a.account.GetTransactions)
195195
}

internal/view/method_call.go

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -252,9 +252,6 @@ func (d *MethodCallDialog) methodHasNoArg() bool {
252252
}
253253

254254
func (d *MethodCallDialog) callMethod() {
255-
// start calling
256-
d.spinner.StartAndShow()
257-
258255
methodName := d.methodSelected()
259256
method := d.contract.GetABI().Methods[methodName]
260257

@@ -270,7 +267,6 @@ func (d *MethodCallDialog) callMethod() {
270267
log.Error("Cannot unpack argument", "argument", arg, "input", item.GetText(), "error", err)
271268
d.app.root.NotifyError(format.FineErrorMessage(
272269
"Input type for argument '%s' is incorrect, should be '%s'.", arg.Name, arg.Type.String(), err))
273-
d.spinner.StopAndHide()
274270
return
275271
}
276272
}
@@ -281,13 +277,15 @@ func (d *MethodCallDialog) callMethod() {
281277
signer = d.app.root.signer.GetSigner()
282278
if signer == nil {
283279
d.app.root.NotifyError(format.FineErrorMessage("Cannot call a non-constant method without a signer. Please signin at first."))
284-
d.spinner.StopAndHide()
285280
return
286281
}
287282
}
288283

289284
log.Info("Invoke contract method", "contract", d.contract.GetAddress(), "method", methodName, "args", args)
290285

286+
// start spinner
287+
d.spinner.StartAndShow()
288+
291289
go func() {
292290
var res []any
293291
var err error
@@ -302,15 +300,15 @@ func (d *MethodCallDialog) callMethod() {
302300
}
303301

304302
d.app.QueueUpdateDraw(func() {
303+
// stop spinner
304+
d.spinner.StopAndHide()
305+
305306
if err != nil {
306307
log.Error("Method call is failed", "name", methodName, "args", args, "error", err)
307308
d.app.root.NotifyError(format.FineErrorMessage("Cannot call contract method '%s'.", methodName, err))
308309
} else {
309310
d.result.SetText(fmt.Sprint(res...))
310311
}
311-
312-
// calling finished
313-
d.spinner.StopAndHide()
314312
})
315313
}()
316314
}

internal/view/query.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func (d *QueryDialog) initLayout() {
4949
func (d *QueryDialog) handleKey(key tcell.Key) {
5050
switch key {
5151
case tcell.KeyEnter:
52-
// start account query
52+
// start spinner
5353
d.setSpinnerRect()
5454
d.spinner.StartAndShow()
5555

@@ -58,6 +58,7 @@ func (d *QueryDialog) handleKey(key tcell.Key) {
5858
if address != "" {
5959
account, err := d.app.service.GetAccount(address)
6060
d.app.QueueUpdateDraw(func() {
61+
// stop spinner
6162
d.spinner.StopAndHide()
6263
d.Hide()
6364

internal/view/transactions.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ func (t *TransactionList) SetBaseAccount(account *common.Address) {
8181

8282
func (t *TransactionList) FilterAndPrependTransactions(txns common.Transactions) {
8383
if t.base == nil {
84-
t.PrependTransactions(txns)
8584
return
8685
}
8786

@@ -114,16 +113,18 @@ func (t *TransactionList) LoadAsync(loader func() (common.Transactions, error))
114113
// clear current content
115114
t.Clear()
116115

117-
// display loader
116+
// start loading animation
118117
t.loader.Start()
119118
t.loader.Display(true)
120119

121120
load := func() {
122121
txns, err := loader()
123122
t.app.QueueUpdateDraw(func() {
123+
// stop loading animation
124+
t.loader.Stop()
125+
t.loader.Display(false)
126+
124127
if err == nil {
125-
t.loader.Stop()
126-
t.loader.Display(false)
127128
if txns != nil {
128129
t.SetTransactions(txns)
129130
}

0 commit comments

Comments
 (0)