Show spinner when fetching contents
The spinner should be shown when fetching the contents as we don't know at that point whether there are some messages or not.
This commit is contained in:
parent
00b9ca5032
commit
1339faf788
2 changed files with 9 additions and 3 deletions
|
@ -10,9 +10,10 @@ import (
|
|||
|
||||
// Accesses to fields must be guarded by MessageStore.Lock/Unlock
|
||||
type MessageStore struct {
|
||||
Deleted map[uint32]interface{}
|
||||
DirInfo models.DirectoryInfo
|
||||
Messages map[uint32]*models.MessageInfo
|
||||
Deleted map[uint32]interface{}
|
||||
DirInfo models.DirectoryInfo
|
||||
Messages map[uint32]*models.MessageInfo
|
||||
FetchingContents bool
|
||||
// Ordered list of known UIDs
|
||||
uids []uint32
|
||||
|
||||
|
@ -159,6 +160,7 @@ func (store *MessageStore) Update(msg types.WorkerMessage) {
|
|||
store.worker.PostAction(&types.FetchDirectoryContents{
|
||||
SortCriteria: store.defaultSortCriteria,
|
||||
}, nil)
|
||||
store.FetchingContents = true
|
||||
update = true
|
||||
case *types.DirectoryContents:
|
||||
newMap := make(map[uint32]*models.MessageInfo)
|
||||
|
@ -172,6 +174,7 @@ func (store *MessageStore) Update(msg types.WorkerMessage) {
|
|||
}
|
||||
store.Messages = newMap
|
||||
store.uids = msg.Uids
|
||||
store.FetchingContents = false
|
||||
update = true
|
||||
case *types.MessageInfo:
|
||||
if existing, ok := store.Messages[msg.Info.Uid]; ok && existing != nil {
|
||||
|
|
|
@ -61,6 +61,9 @@ func (ml *MessageList) Draw(ctx *ui.Context) {
|
|||
ml.drawEmptyMessage(ctx)
|
||||
return
|
||||
}
|
||||
} else if store.FetchingContents {
|
||||
ml.spinner.Draw(ctx)
|
||||
return
|
||||
}
|
||||
|
||||
var (
|
||||
|
|
Loading…
Reference in a new issue