1package account
2
3import (
4	"errors"
5	"fmt"
6
7	"git.sr.ht/~sircmpwn/aerc/widgets"
8)
9
10type NextPrevResult struct{}
11
12func init() {
13	register(NextPrevResult{})
14}
15
16func (NextPrevResult) Aliases() []string {
17	return []string{"next-result", "prev-result"}
18}
19
20func (NextPrevResult) Complete(aerc *widgets.Aerc, args []string) []string {
21	return nil
22}
23
24func (NextPrevResult) Execute(aerc *widgets.Aerc, args []string) error {
25	if len(args) > 1 {
26		return nextPrevResultUsage(args[0])
27	}
28	acct := aerc.SelectedAccount()
29	if acct == nil {
30		return errors.New("No account selected")
31	}
32	if args[0] == "prev-result" {
33		store := acct.Store()
34		if store != nil {
35			store.PrevResult()
36		}
37		acct.Messages().Scroll()
38	} else {
39		store := acct.Store()
40		if store != nil {
41			store.NextResult()
42		}
43		acct.Messages().Scroll()
44	}
45	return nil
46}
47
48func nextPrevResultUsage(cmd string) error {
49	return fmt.Errorf("Usage: %s [<n>[%%]]", cmd)
50}
51