much better

This commit is contained in:
2026-08-27 18:24:23 +01:00
parent 73c2009139
commit adc276c28a
5 changed files with 118 additions and 33 deletions
+20 -20
View File
@@ -14,7 +14,7 @@ import (
const (
fieldInputDir = iota
fieldOutputFile
fieldOutputDir
fieldAppend
fieldForce
fieldVerticalSlices
@@ -35,7 +35,7 @@ const (
type FormModel struct {
focusIndex int
inputDir textinput.Model
outputFile textinput.Model
outputDir textinput.Model
drivePath textinput.Model
maxDepth textinput.Model
maxSize textinput.Model
@@ -60,10 +60,10 @@ func NewForm() FormModel {
inputDir.SetValue(".")
inputDir.SetWidth(60)
outputFile := textinput.New()
outputFile.Placeholder = "./output_dirmd/index.md"
outputFile.SetValue("./output_dirmd/index.md")
outputFile.SetWidth(60)
outputDir := textinput.New()
outputDir.Placeholder = "./output_dirmd"
outputDir.SetValue("./output_dirmd")
outputDir.SetWidth(60)
drivePath := textinput.New()
drivePath.Placeholder = "/my-files/md/"
@@ -85,7 +85,7 @@ func NewForm() FormModel {
m := FormModel{
inputDir: inputDir,
outputFile: outputFile,
outputDir: outputDir,
drivePath: drivePath,
maxDepth: maxDepth,
maxSize: maxSize,
@@ -118,7 +118,7 @@ func (m *FormModel) SetDark(isDark bool) {
func (m *FormModel) applyStyles() {
tiStyles := getDefaultInputStyles(m.isDark)
m.inputDir.SetStyles(tiStyles)
m.outputFile.SetStyles(tiStyles)
m.outputDir.SetStyles(tiStyles)
m.drivePath.SetStyles(tiStyles)
m.maxDepth.SetStyles(tiStyles)
m.maxSize.SetStyles(tiStyles)
@@ -133,7 +133,7 @@ func (m *FormModel) shouldSkipField(idx int) bool {
func isTextInputField(idx int) bool {
switch idx {
case fieldInputDir, fieldOutputFile, fieldDrivePath, fieldMaxDepth, fieldMaxSize, fieldIgnorePatterns:
case fieldInputDir, fieldOutputDir, fieldDrivePath, fieldMaxDepth, fieldMaxSize, fieldIgnorePatterns:
return true
}
return false
@@ -141,7 +141,7 @@ func isTextInputField(idx int) bool {
func (m *FormModel) focusActiveField() tea.Cmd {
m.inputDir.Blur()
m.outputFile.Blur()
m.outputDir.Blur()
m.drivePath.Blur()
m.maxDepth.Blur()
m.maxSize.Blur()
@@ -152,8 +152,8 @@ func (m *FormModel) focusActiveField() tea.Cmd {
switch m.focusIndex {
case fieldInputDir:
cmd = m.inputDir.Focus()
case fieldOutputFile:
cmd = m.outputFile.Focus()
case fieldOutputDir:
cmd = m.outputDir.Focus()
case fieldDrivePath:
cmd = m.drivePath.Focus()
case fieldMaxDepth:
@@ -269,9 +269,9 @@ func (m FormModel) Update(msg tea.Msg) (FormModel, tea.Cmd) {
var cmd tea.Cmd
m.inputDir, cmd = m.inputDir.Update(msg)
cmds = append(cmds, cmd)
case fieldOutputFile:
case fieldOutputDir:
var cmd tea.Cmd
m.outputFile, cmd = m.outputFile.Update(msg)
m.outputDir, cmd = m.outputDir.Update(msg)
cmds = append(cmds, cmd)
case fieldDrivePath:
var cmd tea.Cmd
@@ -303,7 +303,7 @@ func (m FormModel) View() string {
usableWidth = 80
}
m.inputDir.SetWidth(usableWidth)
m.outputFile.SetWidth(usableWidth)
m.outputDir.SetWidth(usableWidth)
m.drivePath.SetWidth(usableWidth)
m.ignoreArea.SetWidth(usableWidth)
@@ -314,7 +314,7 @@ func (m FormModel) View() string {
b.WriteString(m.renderTextField("Input directory", m.inputDir, m.focusIndex == fieldInputDir))
b.WriteString("\n")
b.WriteString(m.renderTextField("Output file", m.outputFile, m.focusIndex == fieldOutputFile))
b.WriteString(m.renderTextField("Output directory", m.outputDir, m.focusIndex == fieldOutputDir))
b.WriteString("\n\n")
b.WriteString(m.appendMode.Render(m.focusIndex == fieldAppend))
@@ -398,9 +398,9 @@ func (m FormModel) ToConfig() (*config.Config, error) {
inputDir = "."
}
outputFile := m.outputFile.Value()
if outputFile == "" {
return nil, fmt.Errorf("output file required")
outputDir := m.outputDir.Value()
if outputDir == "" {
return nil, fmt.Errorf("output directory required")
}
maxDepth, err := parseIntDefault(m.maxDepth.Value(), 20)
@@ -442,7 +442,7 @@ func (m FormModel) ToConfig() (*config.Config, error) {
cfg := &config.Config{
InputPath: inputDir,
OutputPath: outputFile,
OutputPath: outputDir,
AppendMode: m.appendMode.Checked,
Force: m.force.Checked,
MaxSize: int64(maxSizeKB) * 1024,