Ver código fonte

refactor(ui): inline command event literals

ayn2op 1 mês atrás
pai
commit
8b99036acf

+ 2 - 12
internal/ui/chat/events.go

@@ -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}
 	}
 }

+ 13 - 39
internal/ui/login/qr/events.go

@@ -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)}
 	}
 }

+ 1 - 3
internal/ui/login/token/events.go

@@ -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}
 	}
 }

+ 3 - 9
internal/ui/root/events.go

@@ -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}
 	}
 }
 

+ 3 - 3
internal/ui/root/model.go

@@ -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())
 		}