MCPcopy
hub / github.com/SurgeDM/Surge / updateCategoryManager

Method updateCategoryManager

internal/tui/update_category.go:94–285  ·  view source on GitHub ↗
(msg tea.KeyPressMsg)

Source from the content-addressed store, hash-verified

92}
93
94func (m RootModel) updateCategoryManager(msg tea.KeyPressMsg) (tea.Model, tea.Cmd) {
95 m.normalizeCategoryManagerSelection()
96 cats := m.Settings.Categories.Categories
97
98 // Handle editing mode
99 if m.catMgrEditing {
100 if key.Matches(msg, m.keys.CategoryMgr.Close) {
101 wasNew := m.catMgrIsNew
102 // Cancel editing
103 m.catMgrEditing = false
104 m.blurAllCatInputs()
105
106 // If was adding new, remove the placeholder
107 if wasNew && m.catMgrCursor < len(m.Settings.Categories.Categories) {
108 m.Settings.Categories.Categories = append(
109 m.Settings.Categories.Categories[:m.catMgrCursor],
110 m.Settings.Categories.Categories[m.catMgrCursor+1:]...,
111 )
112 if m.catMgrCursor > 0 {
113 m.catMgrCursor--
114 }
115 }
116 m.catMgrIsNew = false
117 m.catMgrError = ""
118 return m, nil
119 }
120 if key.Matches(msg, m.keys.CategoryMgr.Tab) {
121 m.catMgrError = ""
122 // On Path field, open file picker for directory browsing
123 if m.catMgrEditField == 3 {
124 originalPath := m.catMgrInputs[3].Value()
125 browseDir := strings.TrimSpace(originalPath)
126 if browseDir == "" {
127 browseDir = config.Resolve[string](m.Settings.General.DefaultDownloadDir)
128 }
129 if browseDir == "" {
130 browseDir = m.PWD
131 }
132 return m, m.openDirectoryPicker(FilePickerOriginCategory, originalPath, browseDir, false, true)
133 }
134 // Cycle fields
135 m.catMgrInputs[m.catMgrEditField].Blur()
136 m.catMgrEditField = (m.catMgrEditField + 1) % 4
137 m.catMgrInputs[m.catMgrEditField].Focus()
138 return m, nil
139 }
140 if key.Matches(msg, m.keys.CategoryMgr.Up) {
141 m.catMgrError = ""
142 m.catMgrInputs[m.catMgrEditField].Blur()
143 m.catMgrEditField--
144 if m.catMgrEditField < 0 {
145 m.catMgrEditField = 3
146 }
147 m.catMgrInputs[m.catMgrEditField].Focus()
148 return m, nil
149 }
150 if key.Matches(msg, m.keys.CategoryMgr.Down) {
151 m.catMgrError = ""

Callers 1

UpdateMethod · 0.95

Calls 8

blurAllCatInputsMethod · 0.95
openDirectoryPickerMethod · 0.95
persistSettingsMethod · 0.95
catMgrBeginAddMethod · 0.95
DebugFunction · 0.92
UpdateMethod · 0.45

Tested by

no test coverage detected