diff --git a/tea/scenes/apply.go b/tea/scenes/apply.go index 03b2d51..4162fbe 100644 --- a/tea/scenes/apply.go +++ b/tea/scenes/apply.go @@ -7,6 +7,7 @@ import ( "github.com/satisfactorymodding/ficsit-cli/cli" "github.com/satisfactorymodding/ficsit-cli/tea/components" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/keys" "github.com/satisfactorymodding/ficsit-cli/tea/utils" ) @@ -149,13 +150,13 @@ func (m apply) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg := msg.(type) { case tea.KeyMsg: switch keypress := msg.String(); keypress { - case KeyControlC: + case keys.KeyControlC: return m, tea.Quit - case KeyEscape: + case keys.KeyEscape: m.cancelled = true m.cancelChannel <- true return m, nil - case KeyEnter: + case keys.KeyEnter: if m.status.done { if m.parent != nil { return m.parent, m.parent.Init() diff --git a/tea/scenes/errors.go b/tea/scenes/errors/errors.go similarity index 77% rename from tea/scenes/errors.go rename to tea/scenes/errors/errors.go index bd672be..d8bd32e 100644 --- a/tea/scenes/errors.go +++ b/tea/scenes/errors/errors.go @@ -1,4 +1,4 @@ -package scenes +package errors const ( ErrorFailedAddMod = "failed to add mod" diff --git a/tea/scenes/installation.go b/tea/scenes/installation/installation.go similarity index 96% rename from tea/scenes/installation.go rename to tea/scenes/installation/installation.go index d4331fd..fe81709 100644 --- a/tea/scenes/installation.go +++ b/tea/scenes/installation/installation.go @@ -1,4 +1,4 @@ -package scenes +package installation import ( "fmt" @@ -10,6 +10,7 @@ import ( "github.com/satisfactorymodding/ficsit-cli/cli" "github.com/satisfactorymodding/ficsit-cli/tea/components" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/keys" "github.com/satisfactorymodding/ficsit-cli/tea/utils" ) @@ -78,7 +79,7 @@ func (m installation) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg := msg.(type) { case tea.KeyMsg: switch keypress := msg.String(); keypress { - case KeyControlC: + case keys.KeyControlC: return m, tea.Quit case "q": if m.parent != nil { @@ -91,7 +92,7 @@ func (m installation) Update(msg tea.Msg) (tea.Model, tea.Cmd) { return m.parent, nil } return m, nil - case KeyEnter: + case keys.KeyEnter: i, ok := m.list.SelectedItem().(utils.SimpleItem[installation]) if ok { if i.Activate != nil { diff --git a/tea/scenes/installations.go b/tea/scenes/installation/installations.go similarity index 96% rename from tea/scenes/installations.go rename to tea/scenes/installation/installations.go index 1a00802..161d235 100644 --- a/tea/scenes/installations.go +++ b/tea/scenes/installation/installations.go @@ -1,4 +1,4 @@ -package scenes +package installation import ( "github.com/charmbracelet/bubbles/key" @@ -8,6 +8,7 @@ import ( "github.com/charmbracelet/lipgloss" "github.com/satisfactorymodding/ficsit-cli/tea/components" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/keys" "github.com/satisfactorymodding/ficsit-cli/tea/utils" ) @@ -61,7 +62,7 @@ func (m installations) Update(msg tea.Msg) (tea.Model, tea.Cmd) { case "n": newModel := NewNewInstallation(m.root, m) return newModel, newModel.Init() - case KeyControlC: + case keys.KeyControlC: return m, tea.Quit case "q": if m.parent != nil { @@ -69,7 +70,7 @@ func (m installations) Update(msg tea.Msg) (tea.Model, tea.Cmd) { return m.parent, nil } return m, tea.Quit - case KeyEnter: + case keys.KeyEnter: i, ok := m.list.SelectedItem().(utils.SimpleItem[installations]) if ok { if i.Activate != nil { diff --git a/tea/scenes/installation/messages.go b/tea/scenes/installation/messages.go new file mode 100644 index 0000000..c85cf6b --- /dev/null +++ b/tea/scenes/installation/messages.go @@ -0,0 +1,15 @@ +package installation + +import tea "github.com/charmbracelet/bubbletea" + +type updateInstallationList struct{} + +func updateInstallationListCmd() tea.Msg { + return updateInstallationList{} +} + +type updateInstallationNames struct{} + +func updateInstallationNamesCmd() tea.Msg { + return updateInstallationNames{} +} diff --git a/tea/scenes/new_installation.go b/tea/scenes/installation/new_installation.go similarity index 96% rename from tea/scenes/new_installation.go rename to tea/scenes/installation/new_installation.go index 26398db..331e1ad 100644 --- a/tea/scenes/new_installation.go +++ b/tea/scenes/installation/new_installation.go @@ -1,4 +1,4 @@ -package scenes +package installation import ( "fmt" @@ -19,6 +19,7 @@ import ( "github.com/sahilm/fuzzy" "github.com/satisfactorymodding/ficsit-cli/tea/components" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/keys" "github.com/satisfactorymodding/ficsit-cli/tea/utils" ) @@ -50,7 +51,7 @@ func NewNewInstallation(root components.RootModel, parent tea.Model) tea.Model { l.KeyMap.CursorUp.SetHelp("↑", "up") l.AdditionalShortHelpKeys = func() []key.Binding { return []key.Binding{ - key.NewBinding(key.WithKeys(KeyTab), key.WithHelp(KeyTab, "select")), + key.NewBinding(key.WithKeys(keys.KeyTab), key.WithHelp(keys.KeyTab, "select")), } } @@ -76,11 +77,11 @@ func (m newInstallation) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg := msg.(type) { case tea.KeyMsg: switch keypress := msg.String(); keypress { - case KeyControlC: + case keys.KeyControlC: return m, tea.Quit - case KeyEscape: + case keys.KeyEscape: return m.parent, nil - case KeyEnter: + case keys.KeyEnter: newInstall, err := m.root.GetGlobal().Installations.AddInstallation(m.root.GetGlobal(), m.input.Value(), m.root.GetGlobal().Profiles.SelectedProfile) if err != nil { errorComponent, cmd := components.NewErrorComponent(err.Error(), time.Second*5) @@ -97,7 +98,7 @@ func (m newInstallation) Update(msg tea.Msg) (tea.Model, tea.Cmd) { } return m.parent, updateInstallationListCmd - case KeyTab: + case keys.KeyTab: var cmd tea.Cmd m.input, cmd = m.input.Update(msg) diff --git a/tea/scenes/keys.go b/tea/scenes/keys/keys.go similarity index 86% rename from tea/scenes/keys.go rename to tea/scenes/keys/keys.go index 9daaf32..56e88b5 100644 --- a/tea/scenes/keys.go +++ b/tea/scenes/keys/keys.go @@ -1,4 +1,4 @@ -package scenes +package keys const ( KeyControlC = "ctrl+c" diff --git a/tea/scenes/main_menu.go b/tea/scenes/main_menu.go index ac185a2..03990b6 100644 --- a/tea/scenes/main_menu.go +++ b/tea/scenes/main_menu.go @@ -11,6 +11,11 @@ import ( "github.com/spf13/viper" "github.com/satisfactorymodding/ficsit-cli/tea/components" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/errors" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/installation" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/keys" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/mods" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/profile" "github.com/satisfactorymodding/ficsit-cli/tea/utils" ) @@ -63,28 +68,28 @@ func NewMainMenu(root components.RootModel) tea.Model { utils.SimpleItem[mainMenu]{ ItemTitle: "Installations", Activate: func(msg tea.Msg, currentModel mainMenu) (tea.Model, tea.Cmd) { - newModel := NewInstallations(root, currentModel) + newModel := installation.NewInstallations(root, currentModel) return newModel, newModel.Init() }, }, utils.SimpleItem[mainMenu]{ ItemTitle: "Profiles", Activate: func(msg tea.Msg, currentModel mainMenu) (tea.Model, tea.Cmd) { - newModel := NewProfiles(root, currentModel) + newModel := profile.NewProfiles(root, currentModel) return newModel, newModel.Init() }, }, utils.SimpleItem[mainMenu]{ ItemTitle: "All Mods", Activate: func(msg tea.Msg, currentModel mainMenu) (tea.Model, tea.Cmd) { - newModel := NewMods(root, currentModel) + newModel := mods.NewMods(root, currentModel) return newModel, newModel.Init() }, }, utils.SimpleItem[mainMenu]{ ItemTitle: "Installed Mods", Activate: func(msg tea.Msg, currentModel mainMenu) (tea.Model, tea.Cmd) { - newModel := NewInstalledMods(root, currentModel) + newModel := mods.NewInstalledMods(root, currentModel) return newModel, newModel.Init() }, }, @@ -92,7 +97,7 @@ func NewMainMenu(root components.RootModel) tea.Model { ItemTitle: "Apply Changes", Activate: func(msg tea.Msg, currentModel mainMenu) (tea.Model, tea.Cmd) { if err := root.GetGlobal().Save(); err != nil { - log.Error().Err(err).Msg(ErrorFailedAddMod) + log.Error().Err(err).Msg(errors.ErrorFailedAddMod) errorComponent, cmd := components.NewErrorComponent(err.Error(), time.Second*5) currentModel.error = errorComponent return currentModel, cmd @@ -106,7 +111,7 @@ func NewMainMenu(root components.RootModel) tea.Model { ItemTitle: "Save", Activate: func(msg tea.Msg, currentModel mainMenu) (tea.Model, tea.Cmd) { if err := root.GetGlobal().Save(); err != nil { - log.Error().Err(err).Msg(ErrorFailedAddMod) + log.Error().Err(err).Msg(errors.ErrorFailedAddMod) errorComponent, cmd := components.NewErrorComponent(err.Error(), time.Second*5) currentModel.error = errorComponent return currentModel, cmd @@ -139,11 +144,11 @@ func (m mainMenu) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg := msg.(type) { case tea.KeyMsg: switch keypress := msg.String(); keypress { - case KeyControlC: + case keys.KeyControlC: return m, tea.Quit case "q": return m, tea.Quit - case KeyEnter: + case keys.KeyEnter: i, ok := m.list.SelectedItem().(utils.SimpleItem[mainMenu]) if ok { if i.Activate != nil { diff --git a/tea/scenes/installed_mods.go b/tea/scenes/mods/installed_mods.go similarity index 93% rename from tea/scenes/installed_mods.go rename to tea/scenes/mods/installed_mods.go index 8331fcd..b3fcc5d 100644 --- a/tea/scenes/installed_mods.go +++ b/tea/scenes/mods/installed_mods.go @@ -1,11 +1,10 @@ -package scenes +package mods import ( "context" "sort" "time" - "github.com/charmbracelet/bubbles/key" "github.com/charmbracelet/bubbles/list" "github.com/charmbracelet/bubbles/spinner" tea "github.com/charmbracelet/bubbletea" @@ -13,6 +12,7 @@ import ( "github.com/satisfactorymodding/ficsit-cli/ficsit" "github.com/satisfactorymodding/ficsit-cli/tea/components" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/keys" "github.com/satisfactorymodding/ficsit-cli/tea/utils" ) @@ -42,18 +42,7 @@ func NewInstalledMods(root components.RootModel, parent tea.Model) tea.Model { l.Title = "Installed Mods" l.Styles = utils.ListStyles l.SetSize(l.Width(), l.Height()) - - l.AdditionalShortHelpKeys = func() []key.Binding { - return []key.Binding{ - key.NewBinding(key.WithHelp("q", "back")), - } - } - - l.AdditionalFullHelpKeys = func() []key.Binding { - return []key.Binding{ - key.NewBinding(key.WithHelp("q", "back")), - } - } + l.KeyMap.Quit.SetHelp("q", "back") m := &installedModsList{ root: root, @@ -158,8 +147,6 @@ func (m installedModsList) LoadModData() { } func (m installedModsList) Update(msg tea.Msg) (tea.Model, tea.Cmd) { - m.list.KeyMap.Quit.SetHelp("q", "back") - switch msg := msg.(type) { case tea.KeyMsg: if m.list.SettingFilter() { @@ -169,7 +156,7 @@ func (m installedModsList) Update(msg tea.Msg) (tea.Model, tea.Cmd) { } switch keypress := msg.String(); keypress { - case KeyControlC: + case keys.KeyControlC: return m, tea.Quit case "q": if m.parent != nil { @@ -177,7 +164,7 @@ func (m installedModsList) Update(msg tea.Msg) (tea.Model, tea.Cmd) { return m.parent, nil } return m, tea.Quit - case KeyEnter: + case keys.KeyEnter: i, ok := m.list.SelectedItem().(utils.SimpleItem[installedModsList]) if ok { return m.processActivation(i, msg) diff --git a/tea/scenes/mod.go b/tea/scenes/mods/mod.go similarity index 93% rename from tea/scenes/mod.go rename to tea/scenes/mods/mod.go index aa0c18d..1522f27 100644 --- a/tea/scenes/mod.go +++ b/tea/scenes/mods/mod.go @@ -1,4 +1,4 @@ -package scenes +package mods import ( "time" @@ -9,6 +9,8 @@ import ( "github.com/rs/zerolog/log" "github.com/satisfactorymodding/ficsit-cli/tea/components" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/errors" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/keys" "github.com/satisfactorymodding/ficsit-cli/tea/utils" ) @@ -69,8 +71,8 @@ func NewModMenu(root components.RootModel, parent tea.Model, mod utils.Mod) tea. Activate: func(msg tea.Msg, currentModel modMenu) (tea.Model, tea.Cmd) { err := root.GetCurrentProfile().AddMod(mod.Reference, ">=0.0.0") if err != nil { - log.Error().Err(err).Msg(ErrorFailedAddMod) - cmd := currentModel.list.NewStatusMessage(ErrorFailedAddMod) + log.Error().Err(err).Msg(errors.ErrorFailedAddMod) + cmd := currentModel.list.NewStatusMessage(errors.ErrorFailedAddMod) return currentModel, cmd } return currentModel.parent, nil @@ -114,7 +116,7 @@ func (m modMenu) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg := msg.(type) { case tea.KeyMsg: switch keypress := msg.String(); keypress { - case KeyControlC: + case keys.KeyControlC: return m, tea.Quit case "q": if m.parent != nil { @@ -122,7 +124,7 @@ func (m modMenu) Update(msg tea.Msg) (tea.Model, tea.Cmd) { return m.parent, nil } return m, tea.Quit - case KeyEnter: + case keys.KeyEnter: i, ok := m.list.SelectedItem().(utils.SimpleItem[modMenu]) if ok { if i.Activate != nil { diff --git a/tea/scenes/mod_info.go b/tea/scenes/mods/mod_info.go similarity index 98% rename from tea/scenes/mod_info.go rename to tea/scenes/mods/mod_info.go index 800454c..8724c1d 100644 --- a/tea/scenes/mod_info.go +++ b/tea/scenes/mods/mod_info.go @@ -1,4 +1,4 @@ -package scenes +package mods import ( "context" @@ -19,6 +19,7 @@ import ( "github.com/satisfactorymodding/ficsit-cli/ficsit" "github.com/satisfactorymodding/ficsit-cli/tea/components" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/keys" "github.com/satisfactorymodding/ficsit-cli/tea/utils" ) @@ -133,7 +134,7 @@ func (m modInfo) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg := msg.(type) { case tea.KeyMsg: switch keypress := msg.String(); keypress { - case KeyControlC: + case keys.KeyControlC: return m, tea.Quit case "q": if m.parent != nil { diff --git a/tea/scenes/mod_semver.go b/tea/scenes/mods/mod_semver.go similarity index 93% rename from tea/scenes/mod_semver.go rename to tea/scenes/mods/mod_semver.go index b76e8d4..63bca69 100644 --- a/tea/scenes/mod_semver.go +++ b/tea/scenes/mods/mod_semver.go @@ -1,4 +1,4 @@ -package scenes +package mods import ( "time" @@ -8,6 +8,7 @@ import ( "github.com/charmbracelet/lipgloss" "github.com/satisfactorymodding/ficsit-cli/tea/components" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/keys" "github.com/satisfactorymodding/ficsit-cli/tea/utils" ) @@ -46,11 +47,11 @@ func (m modSemver) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg := msg.(type) { case tea.KeyMsg: switch keypress := msg.String(); keypress { - case KeyControlC: + case keys.KeyControlC: return m, tea.Quit - case KeyEscape: + case keys.KeyEscape: return m.parent, nil - case KeyEnter: + case keys.KeyEnter: err := m.root.GetCurrentProfile().AddMod(m.mod.Reference, m.input.Value()) if err != nil { errorComponent, cmd := components.NewErrorComponent(err.Error(), time.Second*5) diff --git a/tea/scenes/mod_version.go b/tea/scenes/mods/mod_version.go similarity index 90% rename from tea/scenes/mod_version.go rename to tea/scenes/mods/mod_version.go index 8025a48..342a2df 100644 --- a/tea/scenes/mod_version.go +++ b/tea/scenes/mods/mod_version.go @@ -1,4 +1,4 @@ -package scenes +package mods import ( "time" @@ -9,6 +9,8 @@ import ( "github.com/rs/zerolog/log" "github.com/satisfactorymodding/ficsit-cli/tea/components" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/errors" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/keys" "github.com/satisfactorymodding/ficsit-cli/tea/utils" ) @@ -50,8 +52,8 @@ func NewModVersion(root components.RootModel, parent tea.Model, mod utils.Mod) t Activate: func(msg tea.Msg, currentModel modVersionMenu) (tea.Model, tea.Cmd) { err := root.GetCurrentProfile().AddMod(mod.Reference, ">=0.0.0") if err != nil { - log.Error().Err(err).Msg(ErrorFailedAddMod) - cmd := currentModel.list.NewStatusMessage(ErrorFailedAddMod) + log.Error().Err(err).Msg(errors.ErrorFailedAddMod) + cmd := currentModel.list.NewStatusMessage(errors.ErrorFailedAddMod) return currentModel, cmd } return currentModel.parent, nil @@ -80,7 +82,7 @@ func (m modVersionMenu) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg := msg.(type) { case tea.KeyMsg: switch keypress := msg.String(); keypress { - case KeyControlC: + case keys.KeyControlC: return m, tea.Quit case "q": if m.parent != nil { @@ -88,7 +90,7 @@ func (m modVersionMenu) Update(msg tea.Msg) (tea.Model, tea.Cmd) { return m.parent, nil } return m, tea.Quit - case KeyEnter: + case keys.KeyEnter: i, ok := m.list.SelectedItem().(utils.SimpleItem[modVersionMenu]) if ok { if i.Activate != nil { diff --git a/tea/scenes/mods.go b/tea/scenes/mods/mods.go similarity index 97% rename from tea/scenes/mods.go rename to tea/scenes/mods/mods.go index 86e4f84..4a431d9 100644 --- a/tea/scenes/mods.go +++ b/tea/scenes/mods/mods.go @@ -1,4 +1,4 @@ -package scenes +package mods import ( "context" @@ -17,6 +17,7 @@ import ( "github.com/satisfactorymodding/ficsit-cli/cli" "github.com/satisfactorymodding/ficsit-cli/ficsit" "github.com/satisfactorymodding/ficsit-cli/tea/components" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/keys" "github.com/satisfactorymodding/ficsit-cli/tea/utils" ) @@ -36,6 +37,8 @@ type listUpdate struct { Done bool } +// type keys + type modsList struct { list list.Model sortFieldList list.Model @@ -63,22 +66,15 @@ func NewMods(root components.RootModel, parent tea.Model) tea.Model { l.Title = modsTitle l.Styles = utils.ListStyles l.SetSize(l.Width(), l.Height()) + l.KeyMap.Quit.SetHelp("q", "back") l.AdditionalShortHelpKeys = func() []key.Binding { return []key.Binding{ - key.NewBinding(key.WithHelp("q", "back")), - key.NewBinding(key.WithHelp("s", "sort")), - key.NewBinding(key.WithHelp("o", "order")), - } - } - - l.AdditionalFullHelpKeys = func() []key.Binding { - return []key.Binding{ - key.NewBinding(key.WithHelp("q", "back")), - key.NewBinding(key.WithHelp("s", "sort")), - key.NewBinding(key.WithHelp("o", "order")), + key.NewBinding(key.WithKeys("s"), key.WithHelp("s", "sort")), + key.NewBinding(key.WithKeys("o"), key.WithHelp("o", "order")), } } + l.AdditionalFullHelpKeys = l.AdditionalShortHelpKeys sortFieldList := list.New([]list.Item{ utils.SimpleItemExtra[modsList, ficsit.ModsModsGetModsModsMod]{ @@ -292,7 +288,7 @@ func (m modsList) Update(msg tea.Msg) (tea.Model, tea.Cmd) { case "o": m.showSortOrderList = !m.showSortOrderList return m, nil - case KeyControlC: + case keys.KeyControlC: return m, tea.Quit case "q": if m.showSortFieldList { @@ -310,7 +306,7 @@ func (m modsList) Update(msg tea.Msg) (tea.Model, tea.Cmd) { return m.parent, nil } return m, tea.Quit - case KeyEnter: + case keys.KeyEnter: if m.showSortFieldList { m.showSortFieldList = false i, ok := m.sortFieldList.SelectedItem().(utils.SimpleItemExtra[modsList, ficsit.ModsModsGetModsModsMod]) diff --git a/tea/scenes/select_mod_version.go b/tea/scenes/mods/select_mod_version.go similarity index 97% rename from tea/scenes/select_mod_version.go rename to tea/scenes/mods/select_mod_version.go index 23897c7..0d49b33 100644 --- a/tea/scenes/select_mod_version.go +++ b/tea/scenes/mods/select_mod_version.go @@ -1,4 +1,4 @@ -package scenes +package mods import ( "context" @@ -12,6 +12,7 @@ import ( "github.com/satisfactorymodding/ficsit-cli/ficsit" "github.com/satisfactorymodding/ficsit-cli/tea/components" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/keys" "github.com/satisfactorymodding/ficsit-cli/tea/utils" ) @@ -101,7 +102,7 @@ func (m selectModVersionList) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg := msg.(type) { case tea.KeyMsg: switch keypress := msg.String(); keypress { - case KeyControlC: + case keys.KeyControlC: return m, tea.Quit case "q": if m.parent != nil { @@ -109,7 +110,7 @@ func (m selectModVersionList) Update(msg tea.Msg) (tea.Model, tea.Cmd) { return m.parent, nil } return m, tea.Quit - case KeyEnter: + case keys.KeyEnter: i, ok := m.list.SelectedItem().(utils.SimpleItem[selectModVersionList]) if ok { if i.Activate != nil { diff --git a/tea/scenes/messages.go b/tea/scenes/profile/messages.go similarity index 50% rename from tea/scenes/messages.go rename to tea/scenes/profile/messages.go index 40be2f7..fb18969 100644 --- a/tea/scenes/messages.go +++ b/tea/scenes/profile/messages.go @@ -1,4 +1,4 @@ -package scenes +package profile import ( tea "github.com/charmbracelet/bubbletea" @@ -15,15 +15,3 @@ type updateProfileNames struct{} func updateProfileNamesCmd() tea.Msg { return updateProfileNames{} } - -type updateInstallationList struct{} - -func updateInstallationListCmd() tea.Msg { - return updateInstallationList{} -} - -type updateInstallationNames struct{} - -func updateInstallationNamesCmd() tea.Msg { - return updateInstallationNames{} -} diff --git a/tea/scenes/new_profile.go b/tea/scenes/profile/new_profile.go similarity index 90% rename from tea/scenes/new_profile.go rename to tea/scenes/profile/new_profile.go index 021bf09..48c1eee 100644 --- a/tea/scenes/new_profile.go +++ b/tea/scenes/profile/new_profile.go @@ -1,4 +1,4 @@ -package scenes +package profile import ( "time" @@ -10,6 +10,7 @@ import ( "github.com/charmbracelet/lipgloss" "github.com/satisfactorymodding/ficsit-cli/tea/components" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/keys" "github.com/satisfactorymodding/ficsit-cli/tea/utils" ) @@ -50,15 +51,15 @@ func NewNewProfile(root components.RootModel, parent tea.Model) tea.Model { help: help.New(), keys: keyMap{ Back: key.NewBinding( - key.WithKeys(KeyEscape, KeyControlC), - key.WithHelp(KeyEscape, "back"), + key.WithKeys(keys.KeyEscape, keys.KeyControlC), + key.WithHelp(keys.KeyEscape, "back"), ), Enter: key.NewBinding( - key.WithKeys(KeyEnter), - key.WithHelp(KeyEnter, "create"), + key.WithKeys(keys.KeyEnter), + key.WithHelp(keys.KeyEnter, "create"), ), Quit: key.NewBinding( - key.WithKeys(KeyControlC), + key.WithKeys(keys.KeyControlC), ), }, } diff --git a/tea/scenes/profile.go b/tea/scenes/profile/profile.go similarity index 96% rename from tea/scenes/profile.go rename to tea/scenes/profile/profile.go index f45535c..8fde788 100644 --- a/tea/scenes/profile.go +++ b/tea/scenes/profile/profile.go @@ -1,4 +1,4 @@ -package scenes +package profile import ( "fmt" @@ -10,6 +10,7 @@ import ( "github.com/satisfactorymodding/ficsit-cli/cli" "github.com/satisfactorymodding/ficsit-cli/tea/components" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/keys" "github.com/satisfactorymodding/ficsit-cli/tea/utils" ) @@ -90,7 +91,7 @@ func (m profile) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg := msg.(type) { case tea.KeyMsg: switch keypress := msg.String(); keypress { - case KeyControlC: + case keys.KeyControlC: return m, tea.Quit case "q": if m.parent != nil { @@ -103,7 +104,7 @@ func (m profile) Update(msg tea.Msg) (tea.Model, tea.Cmd) { return m.parent, nil } return m, nil - case KeyEnter: + case keys.KeyEnter: i, ok := m.list.SelectedItem().(utils.SimpleItem[profile]) if ok { if i.Activate != nil { diff --git a/tea/scenes/profiles.go b/tea/scenes/profile/profiles.go similarity index 96% rename from tea/scenes/profiles.go rename to tea/scenes/profile/profiles.go index 1bd63b0..8b8b01d 100644 --- a/tea/scenes/profiles.go +++ b/tea/scenes/profile/profiles.go @@ -1,4 +1,4 @@ -package scenes +package profile import ( "github.com/charmbracelet/bubbles/key" @@ -8,6 +8,7 @@ import ( "github.com/charmbracelet/lipgloss" "github.com/satisfactorymodding/ficsit-cli/tea/components" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/keys" "github.com/satisfactorymodding/ficsit-cli/tea/utils" ) @@ -61,7 +62,7 @@ func (m profiles) Update(msg tea.Msg) (tea.Model, tea.Cmd) { case "n": newModel := NewNewProfile(m.root, m) return newModel, newModel.Init() - case KeyControlC: + case keys.KeyControlC: return m, tea.Quit case "q": if m.parent != nil { @@ -69,7 +70,7 @@ func (m profiles) Update(msg tea.Msg) (tea.Model, tea.Cmd) { return m.parent, nil } return m, tea.Quit - case KeyEnter: + case keys.KeyEnter: i, ok := m.list.SelectedItem().(utils.SimpleItem[profiles]) if ok { if i.Activate != nil { diff --git a/tea/scenes/rename_profile.go b/tea/scenes/profile/rename_profile.go similarity index 93% rename from tea/scenes/rename_profile.go rename to tea/scenes/profile/rename_profile.go index f8a108f..86fdd2c 100644 --- a/tea/scenes/rename_profile.go +++ b/tea/scenes/profile/rename_profile.go @@ -1,4 +1,4 @@ -package scenes +package profile import ( "fmt" @@ -10,6 +10,7 @@ import ( "github.com/satisfactorymodding/ficsit-cli/cli" "github.com/satisfactorymodding/ficsit-cli/tea/components" + "github.com/satisfactorymodding/ficsit-cli/tea/scenes/keys" "github.com/satisfactorymodding/ficsit-cli/tea/utils" ) @@ -48,11 +49,11 @@ func (m renameProfile) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg := msg.(type) { case tea.KeyMsg: switch keypress := msg.String(); keypress { - case KeyControlC: + case keys.KeyControlC: return m, tea.Quit - case KeyEscape: + case keys.KeyEscape: return m.parent, nil - case KeyEnter: + case keys.KeyEnter: if err := m.root.GetGlobal().Profiles.RenameProfile(m.root.GetGlobal(), m.oldName, m.input.Value()); err != nil { errorComponent, cmd := components.NewErrorComponent(err.Error(), time.Second*5) m.error = errorComponent