refactor(ui): inline command event literals

This commit is contained in:
ayn2op 2026-03-14 20:28:54 -04:00
parent bc22f45f64
commit 8b99036acf
5 changed files with 22 additions and 66 deletions

View file

@ -11,20 +11,12 @@ type LogoutEvent struct{ tcell.EventTime }
func (v *Model) logout() tview.Command {
return func() tcell.Event {
event := &LogoutEvent{}
event.SetEventNow()
return event
return &LogoutEvent{}
}
}
type QuitEvent struct{ tcell.EventTime }
func NewQuitEvent() *QuitEvent {
event := &QuitEvent{}
event.SetEventNow()
return event
}
func (v *Model) closeState() tview.Command {
return func() tcell.Event {
if err := v.CloseState(); err != nil {
@ -42,8 +34,6 @@ type closeLayerEvent struct {
func closeLayer(name string) tview.Command {
return func() tcell.Event {
event := &closeLayerEvent{name: name}
event.SetEventNow()
return event
return &closeLayerEvent{name: name}
}
}

View file

@ -41,9 +41,7 @@ func (m *Model) connect() tview.Command {
if err != nil {
return tcell.NewEventError(err)
}
event := &connCreateEvent{conn: conn}
event.SetEventNow()
return event
return &connCreateEvent{conn: conn}
}
}
@ -54,9 +52,7 @@ func (m *Model) close() tview.Command {
return tcell.NewEventError(err)
}
}
event := &connCloseEvent{}
event.SetEventNow()
return event
return &connCloseEvent{}
}
}
@ -115,9 +111,7 @@ func (m *Model) listen() tview.Command {
if err := json.Unmarshal(data, &payload); err != nil {
return tcell.NewEventError(err)
}
event := &helloEvent{heartbeatInterval: payload.HeartbeatInterval, timeoutMS: payload.TimeoutMS}
event.SetEventNow()
return event
return &helloEvent{heartbeatInterval: payload.HeartbeatInterval, timeoutMS: payload.TimeoutMS}
case "nonce_proof":
var payload struct {
EncryptedNonce string `json:"encrypted_nonce"`
@ -125,9 +119,7 @@ func (m *Model) listen() tview.Command {
if err := json.Unmarshal(data, &payload); err != nil {
return tcell.NewEventError(err)
}
event := &nonceProofEvent{encryptedNonce: payload.EncryptedNonce}
event.SetEventNow()
return event
return &nonceProofEvent{encryptedNonce: payload.EncryptedNonce}
case "pending_remote_init":
var payload struct {
Fingerprint string `json:"fingerprint"`
@ -135,9 +127,7 @@ func (m *Model) listen() tview.Command {
if err := json.Unmarshal(data, &payload); err != nil {
return tcell.NewEventError(err)
}
event := &pendingRemoteInitEvent{fingerprint: payload.Fingerprint}
event.SetEventNow()
return event
return &pendingRemoteInitEvent{fingerprint: payload.Fingerprint}
case "pending_ticket":
var payload struct {
EncryptedUserPayload string `json:"encrypted_user_payload"`
@ -145,13 +135,9 @@ func (m *Model) listen() tview.Command {
if err := json.Unmarshal(data, &payload); err != nil {
return tcell.NewEventError(err)
}
event := &pendingTicketEvent{encryptedUserPayload: payload.EncryptedUserPayload}
event.SetEventNow()
return event
return &pendingTicketEvent{encryptedUserPayload: payload.EncryptedUserPayload}
case "cancel":
event := &cancelEvent{}
event.SetEventNow()
return event
return &cancelEvent{}
case "pending_login":
var payload struct {
Ticket string `json:"ticket"`
@ -159,9 +145,7 @@ func (m *Model) listen() tview.Command {
if err := json.Unmarshal(data, &payload); err != nil {
return tcell.NewEventError(err)
}
event := &pendingLoginEvent{ticket: payload.Ticket}
event.SetEventNow()
return event
return &pendingLoginEvent{ticket: payload.Ticket}
default:
return nil
}
@ -173,9 +157,7 @@ type heartbeatTickEvent struct{ tcell.EventTime }
func (m *Model) heartbeat() tview.Command {
return func() tcell.Event {
time.Sleep(m.heartbeatInterval)
event := &heartbeatTickEvent{}
event.SetEventNow()
return event
return &heartbeatTickEvent{}
}
}
@ -205,9 +187,7 @@ func (m *Model) generatePrivateKey() tview.Command {
if err != nil {
return tcell.NewEventError(err)
}
event := &privateKeyEvent{privateKey: privateKey}
event.SetEventNow()
return event
return &privateKeyEvent{privateKey: privateKey}
}
}
@ -269,9 +249,7 @@ func (m *Model) generateQRCode(fingerprint string) tview.Command {
return tcell.NewEventError(err)
}
qrCode.DisableBorder = true
event := &qrCodeEvent{qrCode: qrCode}
event.SetEventNow()
return event
return &qrCodeEvent{qrCode: qrCode}
}
}
@ -298,9 +276,7 @@ func (m *Model) decryptUserPayload(encryptedPayload string) tview.Command {
return tcell.NewEventError(errors.New("invalid user payload"))
}
event := &userEvent{discriminator: parts[1], username: parts[3]}
event.SetEventNow()
return event
return &userEvent{discriminator: parts[1], username: parts[3]}
}
}
@ -329,8 +305,6 @@ func (m *Model) exchangeTicket(ticket string) tview.Command {
if err != nil {
return tcell.NewEventError(err)
}
event := &TokenEvent{Token: string(decryptedToken)}
event.SetEventNow()
return event
return &TokenEvent{Token: string(decryptedToken)}
}
}

View file

@ -12,8 +12,6 @@ type TokenEvent struct {
func tokenCommand(token string) tview.Command {
return func() tcell.Event {
event := &TokenEvent{Token: token}
event.SetEventNow()
return event
return &TokenEvent{Token: token}
}
}

View file

@ -16,9 +16,7 @@ type tokenEvent struct {
func tokenCommand(token string) tview.Command {
return func() tcell.Event {
event := &tokenEvent{token: token}
event.SetEventNow()
return event
return &tokenEvent{token: token}
}
}
@ -29,13 +27,9 @@ func getToken() tview.Command {
token, err := keyring.GetToken()
if err != nil {
slog.Info("failed to retrieve token from keyring", "err", err)
event := &loginEvent{}
event.SetEventNow()
return event
return &loginEvent{}
}
event := &tokenEvent{token: token}
event.SetEventNow()
return event
return &tokenEvent{token: token}
}
}

View file

@ -55,13 +55,13 @@ func NewModel(cfg *config.Config, app *tview.Application) *Model {
func (m *Model) showLogin() tview.Command {
m.inner = login.NewModel(m.cfg)
m.buildLayout()
return tview.Batch(m.inner.HandleEvent(tview.NewInitEvent()), tview.SetFocus(m))
return tview.Batch(m.inner.HandleEvent(&tview.InitEvent{}), tview.SetFocus(m))
}
func (m *Model) showChat(token string) tview.Command {
m.inner = chat.NewView(m.app, m.cfg, token)
m.buildLayout()
return tview.Batch(m.inner.HandleEvent(tview.NewInitEvent()), tview.SetFocus(m))
return tview.Batch(m.inner.HandleEvent(&tview.InitEvent{}), tview.SetFocus(m))
}
func (m *Model) buildLayout() {
@ -122,7 +122,7 @@ func (m *Model) HandleEvent(event tcell.Event) tview.Command {
case keybind.Matches(event, m.cfg.Keybinds.Quit.Keybind):
var innerCmd tview.Command
if m.inner != nil {
innerCmd = m.inner.HandleEvent(chat.NewQuitEvent())
innerCmd = m.inner.HandleEvent(&chat.QuitEvent{})
}
return tview.Batch(innerCmd, tview.Quit())
}