JNU4ZGY5RAJSPIPDS63KLPQM4AXRYCHF72BRAZAVZRCV4FK7TGVAC
// TODO make a select between "create and open" and "only create"
// TODO select project
huh.NewSelect[string]().
Key("project").
Title("Project").
OptionsFunc(func() []huh.Option[string] {
if *m.loading {
empty := make([]string, 2)
empty[0] = "Loading..."
empty[1] = m.project
return huh.NewOptions(empty...)
}
return huh.NewOptions(m.projectsAsOptions()...)
}, m.loading).
Validate(func(val string) error {
if (val == "Choose a project") {
return errors.New("Must choose a project for task")
}
return nil
}).
Value(&m.project),
}
func (m taskEditModel) projectsAsOptions() []string {
l := make([]string, len(*m.projects) + 1)
l[0] = "Choose a project"
for i, e := range *m.projects {
l[i+1] = e.Name
i++
}
return l
}
func (m taskEditModel) fetchProjects() tea.Msg {
row, err := m.config.queries.ListProjects(context.Background())
if err != nil {
return errMsg{err}
}
return row