From 98e089b8e5675fb6b1a91132af090947423f4503 Mon Sep 17 00:00:00 2001 From: Benjamin Chausse Date: Mon, 25 Nov 2024 17:03:24 -0500 Subject: fix: initial color notice didn't expire (#15) * Accept initial color using -c flag * fix: Initial color notice expiry * Inform user of detected initial color --- internal/notices/notices.go | 7 +++++++ internal/switcher/switcher.go | 10 ++++------ 2 files changed, 11 insertions(+), 6 deletions(-) (limited to 'internal') 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 { -- cgit v1.2.3