Merge pull request #73 from LazyBachelor/LPM-138

LPM-138 Refactor Tui with composable modals and use canvas

Refactors the TUI (dashboard + kanban) to use a shared, composable modal system with canvas-based overlay rendering, while consolidating styling into internal/style and expanding issue interactions (e.g., comments).

Changes:

Introduces a new pkg/tui/modal system (manager/stack + multiple modal types) and overlays modals using Lipgloss compositor layers.
Refactors dashboard/kanban views and input handling to use the modal manager + focus manager instead of per-modal boolean state.
Consolidates TUI styling by moving from pkg/tui/styles to internal/style and updates components to use the new style package; adds a shared footer renderer.
This commit is contained in:
Robin Olsen
2026-03-20 08:28:10 -07:00
committed by GitHub
parent 9a47acc49a
commit 7facfb6afe
27 changed files with 2469 additions and 1752 deletions

View File

@@ -10,35 +10,47 @@ import (
// Msg types used by both dashboard and kanban TUI views.
type (
SwitchToDashboardMsg struct{}
SwitchToKanbanBoardMsg struct{}
SelectIssueMsg struct{ IssueID string }
TitleUpdatedMsg struct {
IssueID string
Err error
}
DescriptionUpdatedMsg struct {
IssueID string
Err error
}
StatusUpdatedMsg struct {
IssueID string
Err error
}
PriorityUpdatedMsg struct {
IssueID string
Err error
}
TypeUpdatedMsg struct {
IssueID string
Err error
}
AssigneeUpdatedMsg struct {
IssueID string
Err error
}
SelectIssueMsg struct{ IssueID string }
CreatedMsg struct {
CreatedMsg struct {
Issue *models.Issue
Err error
}
DeletedMsg struct {
IssueID string
Err error
@@ -50,11 +62,14 @@ type (
Err error
}
// SwitchToDashboardMsg signals to switch to the main dashboard view.
SwitchToDashboardMsg struct{}
ModalCompletedMsg struct {
ModalID string
Result interface{}
}
// SwitchToKanbanBoardMsg signals to switch to the kanban board view.
SwitchToKanbanBoardMsg struct{}
ModalCancelledMsg struct {
ModalID string
}
)
// UpdateIssueTitleCmd returns a command that updates an issue's title.