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
|
// Accesses to fields must be guarded by MessageStore.Lock/Unlock
|
||||||
type MessageStore struct {
|
type MessageStore struct {
|
||||||
Deleted map[uint32]interface{}
|
Deleted map[uint32]interface{}
|
||||||
DirInfo models.DirectoryInfo
|
DirInfo models.DirectoryInfo
|
||||||
Messages map[uint32]*models.MessageInfo
|
Messages map[uint32]*models.MessageInfo
|
||||||
|
FetchingContents bool
|
||||||
// Ordered list of known UIDs
|
// Ordered list of known UIDs
|
||||||
uids []uint32
|
uids []uint32
|
||||||
|
|
||||||
|
@ -159,6 +160,7 @@ func (store *MessageStore) Update(msg types.WorkerMessage) {
|
||||||
store.worker.PostAction(&types.FetchDirectoryContents{
|
store.worker.PostAction(&types.FetchDirectoryContents{
|
||||||
SortCriteria: store.defaultSortCriteria,
|
SortCriteria: store.defaultSortCriteria,
|
||||||
}, nil)
|
}, nil)
|
||||||
|
store.FetchingContents = true
|
||||||
update = true
|
update = true
|
||||||
case *types.DirectoryContents:
|
case *types.DirectoryContents:
|
||||||
newMap := make(map[uint32]*models.MessageInfo)
|
newMap := make(map[uint32]*models.MessageInfo)
|
||||||
|
@ -172,6 +174,7 @@ func (store *MessageStore) Update(msg types.WorkerMessage) {
|
||||||
}
|
}
|
||||||
store.Messages = newMap
|
store.Messages = newMap
|
||||||
store.uids = msg.Uids
|
store.uids = msg.Uids
|
||||||
|
store.FetchingContents = false
|
||||||
update = true
|
update = true
|
||||||
case *types.MessageInfo:
|
case *types.MessageInfo:
|
||||||
if existing, ok := store.Messages[msg.Info.Uid]; ok && existing != nil {
|
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)
|
ml.drawEmptyMessage(ctx)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
} else if store.FetchingContents {
|
||||||
|
ml.spinner.Draw(ctx)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
Loading…
Reference in a new issue