add exit mechanicm to each stage

remove types and moved struct to appropriate files
This commit is contained in:
Robin Olsen
2026-02-16 13:08:45 +01:00
parent 1fe92d1972
commit b3b45e67be
7 changed files with 111 additions and 65 deletions

View File

@@ -1,6 +1,7 @@
package taskui
import (
"errors"
"fmt"
"charm.land/lipgloss/v2"
@@ -9,6 +10,23 @@ import (
tea "github.com/charmbracelet/bubbletea"
)
var ErrUserQuit = errors.New("user quit")
type TaskDetails struct {
Title string
Description string
TimeToComplete string
Difficulty string
}
type TaskModel struct {
TaskDetails
keys TaskHelpKeys
help help.Model
width, height int
userQuit bool
}
func NewTaskModel(details TaskDetails) TaskModel {
return TaskModel{
TaskDetails: details,
@@ -28,6 +46,7 @@ func (m TaskModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
case tea.KeyMsg:
switch {
case key.Matches(msg, m.keys.Quit):
m.userQuit = true
return m, tea.Quit
case key.Matches(msg, m.keys.Continue):
return m, tea.Quit
@@ -70,3 +89,7 @@ func (m TaskModel) View() string {
func (m *TaskModel) SetSize(width, height int) {
m.width, m.height = width, height
}
func (m TaskModel) GetUserQuit() bool {
return m.userQuit
}