on main help sign in
refactor: remove init in favor of returning cmd on new

Co-authored-by: Ayman Bagabas <ayman.bagabas@gmail.com>

commit9f7be9d2924780b7b10d70061d46d2b9ff2bc997 authorAndrey Nering <andreynering@users.noreply.github.com> dateThu 15 Jan 2026, 15:06 (9 months ago) parentf27f546
4 files changed+8−21
internal/ui/dialog/oauth.go+2−7 internal/ui/dialog/oauth_copilot.go+1−1 internal/ui/dialog/oauth_hyper.go+1−1 internal/ui/model/ui.go+4−12
internal/ui/dialog/oauth.go+2−7
@@ -71,7 +71,7 @@ type OAuth struct {
7171var _ Dialog = (*OAuth)(nil)
7272
7373// newOAuth creates a new device flow component.
74−func newOAuth(com *common.Common, provider catwalk.Provider, model config.SelectedModel, modelType config.SelectedModelType, oAuthProvider OAuthProvider) (*OAuth, error) {
74+func newOAuth(com *common.Common, provider catwalk.Provider, model config.SelectedModel, modelType config.SelectedModelType, oAuthProvider OAuthProvider) (*OAuth, tea.Cmd) {
7575 t := com.Styles
7676
7777 m := OAuth{}
@@ -101,7 +101,7 @@ func newOAuth(com *common.Common, provider catwalk.Provider, model config.Select
101101 )
102102 m.keyMap.Close = CloseKey
103103
104− return &m, nil
104+ return &m, tea.Batch(m.spinner.Tick, m.oAuthProvider.initiateAuth)
105105}
106106
107107// ID implements Dialog.
@@ -109,11 +109,6 @@ func (m *OAuth) ID() string {
109109 return OAuthID
110110}
111111
112−// Init implements Dialog.
113−func (m *OAuth) Init() tea.Cmd {
114− return tea.Batch(m.spinner.Tick, m.oAuthProvider.initiateAuth)
115−}
116−
117112// HandleMsg handles messages and state transitions.
118113func (m *OAuth) HandleMsg(msg tea.Msg) Action {
119114 switch msg := msg.(type) {
internal/ui/dialog/oauth_copilot.go+1−1
@@ -12,7 +12,7 @@ import (
1212 "github.com/charmbracelet/crush/internal/ui/common"
1313)
1414
15−func NewOAuthCopilot(com *common.Common, provider catwalk.Provider, model config.SelectedModel, modelType config.SelectedModelType) (*OAuth, error) {
15+func NewOAuthCopilot(com *common.Common, provider catwalk.Provider, model config.SelectedModel, modelType config.SelectedModelType) (*OAuth, tea.Cmd) {
1616 return newOAuth(com, provider, model, modelType, &OAuthCopilot{})
1717}
1818
internal/ui/dialog/oauth_hyper.go+1−1
@@ -12,7 +12,7 @@ import (
1212 "github.com/charmbracelet/crush/internal/ui/common"
1313)
1414
15−func NewOAuthHyper(com *common.Common, provider catwalk.Provider, model config.SelectedModel, modelType config.SelectedModelType) (*OAuth, error) {
15+func NewOAuthHyper(com *common.Common, provider catwalk.Provider, model config.SelectedModel, modelType config.SelectedModelType) (*OAuth, tea.Cmd) {
1616 return newOAuth(com, provider, model, modelType, &OAuthHyper{})
1717}
1818
internal/ui/model/ui.go+4−12
@@ -1058,13 +1058,9 @@ func (m *UI) openOAuthHyperDialog(provider catwalk.Provider, model config.Select
10581058 return nil
10591059 }
10601060
1061− oAuthDialog, err := dialog.NewOAuthHyper(m.com, provider, model, modelType)
1062− if err != nil {
1063− return uiutil.ReportError(err)
1064− }
1061+ oAuthDialog, cmd := dialog.NewOAuthHyper(m.com, provider, model, modelType)
10651062 m.dialog.OpenDialog(oAuthDialog)
1066−
1067− return oAuthDialog.Init()
1063+ return cmd
10681064}
10691065
10701066func (m *UI) openOAuthCopilotDialog(provider catwalk.Provider, model config.SelectedModel, modelType config.SelectedModelType) tea.Cmd {
@@ -1073,13 +1069,9 @@ func (m *UI) openOAuthCopilotDialog(provider catwalk.Provider, model config.Sele
10731069 return nil
10741070 }
10751071
1076− oAuthDialog, err := dialog.NewOAuthCopilot(m.com, provider, model, modelType)
1077− if err != nil {
1078− return uiutil.ReportError(err)
1079− }
1072+ oAuthDialog, cmd := dialog.NewOAuthCopilot(m.com, provider, model, modelType)
10801073 m.dialog.OpenDialog(oAuthDialog)
1081−
1082− return oAuthDialog.Init()
1074+ return cmd
10831075}
10841076
10851077func (m *UI) handleKeyPressMsg(msg tea.KeyPressMsg) tea.Cmd {