diff options
| author | Jeffas <dev@jeffas.io> | 2019-10-02 11:24:12 +0100 | 
|---|---|---|
| committer | Drew DeVault <sir@cmpwn.com> | 2019-10-09 19:46:43 -0400 | 
| commit | 1339faf7881f33762c6e0a4915404e362fc51de1 (patch) | |
| tree | e8ffd3d7827a9753c2290869839e77bbe50aa6d3 | |
| parent | 00b9ca503286d5dc43def31db713e853c8aeee13 (diff) | |
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.
| -rw-r--r-- | lib/msgstore.go | 9 | ||||
| -rw-r--r-- | widgets/msglist.go | 3 | 
2 files changed, 9 insertions, 3 deletions
| diff --git a/lib/msgstore.go b/lib/msgstore.go index b0392ba..8cceed8 100644 --- a/lib/msgstore.go +++ b/lib/msgstore.go @@ -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 { diff --git a/widgets/msglist.go b/widgets/msglist.go index 5c2d2f4..729b65f 100644 --- a/widgets/msglist.go +++ b/widgets/msglist.go @@ -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 ( | 
