collect submit source

This commit is contained in:
Robin Olsen
2026-03-24 12:32:57 +01:00
parent fc10321430
commit 6808ed3bbe
14 changed files with 300 additions and 63 deletions

View File

@@ -15,7 +15,7 @@ type ValidationFeedback = models.ValidationFeedback
type Tui struct {
feedbackChan chan ValidationFeedback
quitChan chan bool
submitChan chan<- struct{}
submitChan chan<- models.ValidationTrigger
}
func New() *Tui {
@@ -51,6 +51,6 @@ func (t *Tui) SetChannels(feedbackChan chan ValidationFeedback, quitChan chan bo
t.quitChan = quitChan
}
func (t *Tui) SetSubmitChan(submitChan chan<- struct{}) {
func (t *Tui) SetSubmitChan(submitChan chan<- models.ValidationTrigger) {
t.submitChan = submitChan
}

View File

@@ -41,10 +41,10 @@ type Model struct {
quitChan chan bool
currentFeedback models.ValidationFeedback
showComplete bool
submitChan chan<- struct{}
submitChan chan<- models.ValidationTrigger
}
func NewDashboard(app *app.App, feedbackChan chan models.ValidationFeedback, quitChan chan bool, submitChan chan<- struct{}) *Model {
func NewDashboard(app *app.App, feedbackChan chan models.ValidationFeedback, quitChan chan bool, submitChan chan<- models.ValidationTrigger) *Model {
m := &Model{
header: components.NewHeader("Project Manager Dashboard"),
keyMap: defaultDashboardKeyMap,
@@ -82,7 +82,7 @@ func NewDashboard(app *app.App, feedbackChan chan models.ValidationFeedback, qui
func (m *Model) Init() tea.Cmd {
if m.submitChan != nil {
m.submitChan <- struct{}{}
m.submitChan <- models.ValidationTrigger{Source: models.ValidationTriggerInitCheck}
m.logAction("tui submitted validation")
}
return components.ListenForValidation(m.feedbackChan)
@@ -117,7 +117,7 @@ func (m *Model) logAction(action string) {
func (m *Model) submitValidation() {
if m.submitChan != nil {
select {
case m.submitChan <- struct{}{}:
case m.submitChan <- models.ValidationTrigger{Source: models.ValidationTriggerManualSubmit}:
m.logAction("tui submitted validation")
default:
}

View File

@@ -47,10 +47,10 @@ type Model struct {
quitChan chan bool
currentFeedback models.ValidationFeedback
showComplete bool
submitChan chan<- struct{}
submitChan chan<- models.ValidationTrigger
}
func NewDashboard(app *app.App, feedbackChan chan models.ValidationFeedback, quitChan chan bool, submitChan chan<- struct{}) *Model {
func NewDashboard(app *app.App, feedbackChan chan models.ValidationFeedback, quitChan chan bool, submitChan chan<- models.ValidationTrigger) *Model {
m := &Model{
header: components.NewHeader("Kanban Board"),
keyMap: defaultKanbanKeyMap,
@@ -118,7 +118,7 @@ func NewDashboard(app *app.App, feedbackChan chan models.ValidationFeedback, qui
func (m *Model) Init() tea.Cmd {
if m.submitChan != nil {
m.submitChan <- struct{}{}
m.submitChan <- models.ValidationTrigger{Source: models.ValidationTriggerInitCheck}
m.logAction("tui submitted validation")
}
return components.ListenForValidation(m.feedbackChan)
@@ -140,7 +140,7 @@ func (m *Model) logAction(action string) {
func (m *Model) submitValidation() {
if m.submitChan != nil {
select {
case m.submitChan <- struct{}{}:
case m.submitChan <- models.ValidationTrigger{Source: models.ValidationTriggerManualSubmit}:
m.logAction("tui submitted validation")
default:
}

View File

@@ -14,12 +14,12 @@ type RootModel struct {
app *app.App
feedbackChan chan models.ValidationFeedback
quitChan chan bool
submitChan chan<- struct{}
submitChan chan<- models.ValidationTrigger
lastSize tea.WindowSizeMsg
hasSize bool
}
func NewRootView(app *app.App, feedbackChan chan models.ValidationFeedback, quitChan chan bool, submitChan chan<- struct{}) *RootModel {
func NewRootView(app *app.App, feedbackChan chan models.ValidationFeedback, quitChan chan bool, submitChan chan<- models.ValidationTrigger) *RootModel {
initialView := dashboard.NewDashboard(app, feedbackChan, quitChan, submitChan)
return &RootModel{
currentView: initialView,