summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/notices/notices.go7
-rw-r--r--internal/switcher/switcher.go10
2 files changed, 11 insertions, 6 deletions
diff --git a/internal/notices/notices.go b/internal/notices/notices.go
index 4fbd807..40b5d1f 100644
--- a/internal/notices/notices.go
+++ b/internal/notices/notices.go
@@ -58,3 +58,10 @@ func (m Model) New(msg string) tea.Cmd {
return NoticeExpiryMsg(uuid)
}
}
+
+func (m Model) Reset(uuid string) tea.Cmd {
+ return func() tea.Msg {
+ time.Sleep(expiryDelay * time.Second)
+ return NoticeExpiryMsg(uuid)
+ }
+}
diff --git a/internal/switcher/switcher.go b/internal/switcher/switcher.go
index ec5c47a..860bf81 100644
--- a/internal/switcher/switcher.go
+++ b/internal/switcher/switcher.go
@@ -66,12 +66,10 @@ func (m *Model) NewNotice(msg string) tea.Cmd {
func (m Model) Init() tea.Cmd {
cmds := []tea.Cmd{}
- // Make a backup of notices received before the program starts
- // then reinitialize them with a proper expiration time.
- noticeBackup := m.notices.Notices
- m.notices = notices.New()
- for _, v := range noticeBackup {
- cmds = append(cmds, m.NewNotice(v))
+ // The NoticeExpiryMsg is never sent to bubbletea by a tea.Cmd for the initial notices
+ // That's why we need to manually reset them here. Otherwise, they would never expire.
+ for k := range m.notices.Notices {
+ cmds = append(cmds, m.notices.Reset(k))
}
for _, p := range m.pickers {