@@ -10,22 +10,13 @@ import (
1010 variable "github.com/yorukot/superfile/src/config"
1111)
1212
13- // Todo : Replace usage of this with direct slices.Contains call
14- // This function is not required
15- func containsKey (v string , a []string ) string {
16- if slices .Contains (a , v ) {
17- return v
18- }
19- return ""
20- }
21-
2213// mainKey handles most of key commands in the regular state of the application. For
2314// keys that performs actions in multiple panels, like going up or down,
2415// check the state of model m and handle properly.
2516func (m * model ) mainKey (msg string , cmd tea.Cmd ) tea.Cmd {
26- switch msg {
17+ switch {
2718 // If move up Key is pressed, check the current state and executes
28- case containsKey ( msg , common .Hotkeys .ListUp ):
19+ case slices . Contains ( common .Hotkeys .ListUp , msg ):
2920 switch m .focusPanel {
3021 case sidebarFocus :
3122 m .sidebarModel .listUp (m .mainPanelHeight )
@@ -42,7 +33,7 @@ func (m *model) mainKey(msg string, cmd tea.Cmd) tea.Cmd {
4233 }
4334
4435 // If move down Key is pressed, check the current state and executes
45- case containsKey ( msg , common .Hotkeys .ListDown ):
36+ case slices . Contains ( common .Hotkeys .ListDown , msg ):
4637 switch m .focusPanel {
4738 case sidebarFocus :
4839 m .sidebarModel .listDown (m .mainPanelHeight )
@@ -58,88 +49,88 @@ func (m *model) mainKey(msg string, cmd tea.Cmd) tea.Cmd {
5849 }()
5950 }
6051
61- case containsKey ( msg , common .Hotkeys .PageUp ):
52+ case slices . Contains ( common .Hotkeys .PageUp , msg ):
6253 m .fileModel .filePanels [m .filePanelFocusIndex ].pgUp (m .mainPanelHeight )
6354
64- case containsKey ( msg , common .Hotkeys .PageDown ):
55+ case slices . Contains ( common .Hotkeys .PageDown , msg ):
6556 m .fileModel .filePanels [m .filePanelFocusIndex ].pgDown (m .mainPanelHeight )
6657
67- case containsKey ( msg , common .Hotkeys .ChangePanelMode ):
58+ case slices . Contains ( common .Hotkeys .ChangePanelMode , msg ):
6859 m .changeFilePanelMode ()
6960
70- case containsKey ( msg , common .Hotkeys .NextFilePanel ):
61+ case slices . Contains ( common .Hotkeys .NextFilePanel , msg ):
7162 m .nextFilePanel ()
7263
73- case containsKey ( msg , common .Hotkeys .PreviousFilePanel ):
64+ case slices . Contains ( common .Hotkeys .PreviousFilePanel , msg ):
7465 m .previousFilePanel ()
7566
76- case containsKey ( msg , common .Hotkeys .CloseFilePanel ):
67+ case slices . Contains ( common .Hotkeys .CloseFilePanel , msg ):
7768 m .closeFilePanel ()
7869
79- case containsKey ( msg , common .Hotkeys .CreateNewFilePanel ):
70+ case slices . Contains ( common .Hotkeys .CreateNewFilePanel , msg ):
8071 err := m .createNewFilePanel (variable .HomeDir )
8172 if err != nil {
8273 slog .Error ("error while creating new panel" , "error" , err )
8374 }
84- case containsKey ( msg , common .Hotkeys .ToggleFilePreviewPanel ):
75+ case slices . Contains ( common .Hotkeys .ToggleFilePreviewPanel , msg ):
8576 m .toggleFilePreviewPanel ()
8677
87- case containsKey ( msg , common .Hotkeys .FocusOnSidebar ):
78+ case slices . Contains ( common .Hotkeys .FocusOnSidebar , msg ):
8879 m .focusOnSideBar ()
8980
90- case containsKey ( msg , common .Hotkeys .FocusOnProcessBar ):
81+ case slices . Contains ( common .Hotkeys .FocusOnProcessBar , msg ):
9182 m .focusOnProcessBar ()
9283
93- case containsKey ( msg , common .Hotkeys .FocusOnMetaData ):
84+ case slices . Contains ( common .Hotkeys .FocusOnMetaData , msg ):
9485 m .focusOnMetadata ()
9586 go func () {
9687 m .returnMetaData ()
9788 }()
9889
99- case containsKey ( msg , common .Hotkeys .PasteItems ):
90+ case slices . Contains ( common .Hotkeys .PasteItems , msg ):
10091 go func () {
10192 m .pasteItem ()
10293 }()
10394
104- case containsKey ( msg , common .Hotkeys .FilePanelItemCreate ):
95+ case slices . Contains ( common .Hotkeys .FilePanelItemCreate , msg ):
10596 m .panelCreateNewFile ()
106- case containsKey ( msg , common .Hotkeys .PinnedDirectory ):
97+ case slices . Contains ( common .Hotkeys .PinnedDirectory , msg ):
10798 m .pinnedDirectory ()
10899
109- case containsKey ( msg , common .Hotkeys .ToggleDotFile ):
100+ case slices . Contains ( common .Hotkeys .ToggleDotFile , msg ):
110101 m .toggleDotFileController ()
111102
112- case containsKey ( msg , common .Hotkeys .ToggleFooter ):
103+ case slices . Contains ( common .Hotkeys .ToggleFooter , msg ):
113104 m .toggleFooterController ()
114105
115- case containsKey ( msg , common .Hotkeys .ExtractFile ):
106+ case slices . Contains ( common .Hotkeys .ExtractFile , msg ):
116107 go func () {
117108 m .extractFile ()
118109 }()
119110
120- case containsKey ( msg , common .Hotkeys .CompressFile ):
111+ case slices . Contains ( common .Hotkeys .CompressFile , msg ):
121112 go func () {
122113 m .compressFile ()
123114 }()
124115
125- case containsKey ( msg , common .Hotkeys .OpenCommandLine ):
116+ case slices . Contains ( common .Hotkeys .OpenCommandLine , msg ):
126117 m .promptModal .Open (true )
127- case containsKey ( msg , common .Hotkeys .OpenSPFPrompt ):
118+ case slices . Contains ( common .Hotkeys .OpenSPFPrompt , msg ):
128119 m .promptModal .Open (false )
129120
130- case containsKey ( msg , common .Hotkeys .OpenHelpMenu ):
121+ case slices . Contains ( common .Hotkeys .OpenHelpMenu , msg ):
131122 m .openHelpMenu ()
132123
133- case containsKey ( msg , common .Hotkeys .OpenSortOptionsMenu ):
124+ case slices . Contains ( common .Hotkeys .OpenSortOptionsMenu , msg ):
134125 m .openSortOptionsMenu ()
135126
136- case containsKey ( msg , common .Hotkeys .ToggleReverseSort ):
127+ case slices . Contains ( common .Hotkeys .ToggleReverseSort , msg ):
137128 m .toggleReverseSort ()
138129
139- case containsKey ( msg , common .Hotkeys .OpenFileWithEditor ):
130+ case slices . Contains ( common .Hotkeys .OpenFileWithEditor , msg ):
140131 cmd = m .openFileWithEditor ()
141132
142- case containsKey ( msg , common .Hotkeys .OpenCurrentDirectoryWithEditor ):
133+ case slices . Contains ( common .Hotkeys .OpenCurrentDirectoryWithEditor , msg ):
143134 cmd = m .openDirectoryWithEditor ()
144135
145136 default :
@@ -152,84 +143,84 @@ func (m *model) mainKey(msg string, cmd tea.Cmd) tea.Cmd {
152143func (m * model ) normalAndBrowserModeKey (msg string ) {
153144 // if not focus on the filepanel return
154145 if m .fileModel .filePanels [m .filePanelFocusIndex ].focusType != focus {
155- if m .focusPanel == sidebarFocus && ( msg == containsKey ( msg , common .Hotkeys .Confirm ) ) {
146+ if m .focusPanel == sidebarFocus && slices . Contains ( common .Hotkeys .Confirm , msg ) {
156147 m .sidebarSelectDirectory ()
157148 }
158- if m .focusPanel == sidebarFocus && ( msg == containsKey ( msg , common .Hotkeys .FilePanelItemRename ) ) {
149+ if m .focusPanel == sidebarFocus && slices . Contains ( common .Hotkeys .FilePanelItemRename , msg ) {
159150 m .pinnedItemRename ()
160151 }
161- if m .focusPanel == sidebarFocus && ( msg == containsKey ( msg , common .Hotkeys .SearchBar ) ) {
152+ if m .focusPanel == sidebarFocus && slices . Contains ( common .Hotkeys .SearchBar , msg ) {
162153 m .sidebarSearchBarFocus ()
163154 }
164155 return
165156 }
166157 // Check if in the select mode and focusOn filepanel
167158 if m .fileModel .filePanels [m .filePanelFocusIndex ].panelMode == selectMode {
168- switch msg {
169- case containsKey ( msg , common .Hotkeys .Confirm ):
159+ switch {
160+ case slices . Contains ( common .Hotkeys .Confirm , msg ):
170161 m .fileModel .filePanels [m .filePanelFocusIndex ].singleItemSelect ()
171- case containsKey ( msg , common .Hotkeys .FilePanelSelectModeItemsSelectUp ):
162+ case slices . Contains ( common .Hotkeys .FilePanelSelectModeItemsSelectUp , msg ):
172163 m .fileModel .filePanels [m .filePanelFocusIndex ].itemSelectUp (m .mainPanelHeight )
173- case containsKey ( msg , common .Hotkeys .FilePanelSelectModeItemsSelectDown ):
164+ case slices . Contains ( common .Hotkeys .FilePanelSelectModeItemsSelectDown , msg ):
174165 m .fileModel .filePanels [m .filePanelFocusIndex ].itemSelectDown (m .mainPanelHeight )
175- case containsKey ( msg , common .Hotkeys .DeleteItems ):
166+ case slices . Contains ( common .Hotkeys .DeleteItems , msg ):
176167 go func () {
177168 m .deleteItemWarn ()
178169 }()
179- case containsKey ( msg , common .Hotkeys .CopyItems ):
170+ case slices . Contains ( common .Hotkeys .CopyItems , msg ):
180171 m .copyMultipleItem (false )
181- case containsKey ( msg , common .Hotkeys .CutItems ):
172+ case slices . Contains ( common .Hotkeys .CutItems , msg ):
182173 m .copyMultipleItem (true )
183- case containsKey ( msg , common .Hotkeys .FilePanelSelectAllItem ):
174+ case slices . Contains ( common .Hotkeys .FilePanelSelectAllItem , msg ):
184175 m .selectAllItem ()
185176 }
186177 return
187178 }
188179
189- switch msg {
190- case containsKey ( msg , common .Hotkeys .Confirm ):
180+ switch {
181+ case slices . Contains ( common .Hotkeys .Confirm , msg ):
191182 m .enterPanel ()
192- case containsKey ( msg , common .Hotkeys .ParentDirectory ):
183+ case slices . Contains ( common .Hotkeys .ParentDirectory , msg ):
193184 m .parentDirectory ()
194- case containsKey ( msg , common .Hotkeys .DeleteItems ):
185+ case slices . Contains ( common .Hotkeys .DeleteItems , msg ):
195186 go func () {
196187 m .deleteItemWarn ()
197188 }()
198- case containsKey ( msg , common .Hotkeys .CopyItems ):
189+ case slices . Contains ( common .Hotkeys .CopyItems , msg ):
199190 m .copySingleItem (false )
200- case containsKey ( msg , common .Hotkeys .CutItems ):
191+ case slices . Contains ( common .Hotkeys .CutItems , msg ):
201192 m .copySingleItem (true )
202- case containsKey ( msg , common .Hotkeys .FilePanelItemRename ):
193+ case slices . Contains ( common .Hotkeys .FilePanelItemRename , msg ):
203194 m .panelItemRename ()
204- case containsKey ( msg , common .Hotkeys .SearchBar ):
195+ case slices . Contains ( common .Hotkeys .SearchBar , msg ):
205196 m .searchBarFocus ()
206- case containsKey ( msg , common .Hotkeys .CopyPath ):
197+ case slices . Contains ( common .Hotkeys .CopyPath , msg ):
207198 m .copyPath ()
208- case containsKey ( msg , common .Hotkeys .CopyPWD ):
199+ case slices . Contains ( common .Hotkeys .CopyPWD , msg ):
209200 m .copyPWD ()
210201 }
211202}
212203
213204// Check the hotkey to cancel operation or create file
214205func (m * model ) typingModalOpenKey (msg string ) {
215- switch msg {
216- case containsKey ( msg , common .Hotkeys .CancelTyping ):
206+ switch {
207+ case slices . Contains ( common .Hotkeys .CancelTyping , msg ):
217208 m .cancelTypingModal ()
218- case containsKey ( msg , common .Hotkeys .ConfirmTyping ):
209+ case slices . Contains ( common .Hotkeys .ConfirmTyping , msg ):
219210 m .createItem ()
220211 }
221212}
222213
223214// Todo : There is a lot of duplication for these models, each one of them has to handle
224215// ConfirmTyping and CancleTyping in a similar way. There is a scope of some good refactoring here.
225216func (m * model ) warnModalOpenKey (msg string ) {
226- switch msg {
227- case containsKey ( msg , common .Hotkeys .Quit ), containsKey ( msg , common .Hotkeys .CancelTyping ):
217+ switch {
218+ case slices . Contains ( common .Hotkeys .CancelTyping , msg ) || slices . Contains ( common .Hotkeys .Quit , msg ):
228219 m .cancelWarnModal ()
229220 if m .warnModal .warnType == confirmRenameItem {
230221 m .cancelRename ()
231222 }
232- case containsKey ( msg , common .Hotkeys .Confirm ):
223+ case slices . Contains ( common .Hotkeys .Confirm , msg ):
233224 m .warnModal .open = false
234225 switch m .warnModal .warnType {
235226 case confirmDeleteItem :
@@ -265,12 +256,12 @@ func (m *model) warnModalOpenKey(msg string) {
265256
266257// Handle key input to confirm or cancel and close quiting warn in SPF
267258func (m * model ) confirmToQuitSuperfile (msg string ) bool {
268- switch msg {
269- case containsKey ( msg , common .Hotkeys .Quit ), containsKey ( msg , common .Hotkeys .CancelTyping ):
259+ switch {
260+ case slices . Contains ( common .Hotkeys .CancelTyping , msg ) || slices . Contains ( common .Hotkeys .Quit , msg ):
270261 m .cancelWarnModal ()
271262 m .confirmToQuit = false
272263 return false
273- case containsKey ( msg , common .Hotkeys .Confirm ):
264+ case slices . Contains ( common .Hotkeys .Confirm , msg ):
274265 return true
275266 default :
276267 return false
@@ -279,25 +270,25 @@ func (m *model) confirmToQuitSuperfile(msg string) bool {
279270
280271// Handles key inputs inside sort options menu
281272func (m * model ) sortOptionsKey (msg string ) {
282- switch msg {
283- case containsKey ( msg , common .Hotkeys .OpenSortOptionsMenu ):
273+ switch {
274+ case slices . Contains ( common .Hotkeys .OpenSortOptionsMenu , msg ):
284275 m .cancelSortOptions ()
285- case containsKey ( msg , common .Hotkeys .Quit ):
276+ case slices . Contains ( common .Hotkeys .Quit , msg ):
286277 m .cancelSortOptions ()
287- case containsKey ( msg , common .Hotkeys .Confirm ):
278+ case slices . Contains ( common .Hotkeys .Confirm , msg ):
288279 m .confirmSortOptions ()
289- case containsKey ( msg , common .Hotkeys .ListUp ):
280+ case slices . Contains ( common .Hotkeys .ListUp , msg ):
290281 m .sortOptionsListUp ()
291- case containsKey ( msg , common .Hotkeys .ListDown ):
282+ case slices . Contains ( common .Hotkeys .ListDown , msg ):
292283 m .sortOptionsListDown ()
293284 }
294285}
295286
296287func (m * model ) renamingKey (msg string ) {
297- switch msg {
298- case containsKey ( msg , common .Hotkeys .CancelTyping ):
288+ switch {
289+ case slices . Contains ( common .Hotkeys .CancelTyping , msg ):
299290 m .cancelRename ()
300- case containsKey ( msg , common .Hotkeys .ConfirmTyping ):
291+ case slices . Contains ( common .Hotkeys .ConfirmTyping , msg ):
301292 if m .IsRenamingConflicting () {
302293 m .warnModalForRenaming ()
303294 } else {
@@ -307,44 +298,44 @@ func (m *model) renamingKey(msg string) {
307298}
308299
309300func (m * model ) sidebarRenamingKey (msg string ) {
310- switch msg {
311- case containsKey ( msg , common .Hotkeys .CancelTyping ):
301+ switch {
302+ case slices . Contains ( common .Hotkeys .CancelTyping , msg ):
312303 m .cancelSidebarRename ()
313- case containsKey ( msg , common .Hotkeys .ConfirmTyping ):
304+ case slices . Contains ( common .Hotkeys .ConfirmTyping , msg ):
314305 m .confirmSidebarRename ()
315306 }
316307}
317308
318309func (m * model ) sidebarSearchBarKey (msg string ) {
319- switch msg {
320- case containsKey ( msg , common .Hotkeys .CancelTyping ):
310+ switch {
311+ case slices . Contains ( common .Hotkeys .CancelTyping , msg ):
321312 m .sidebarModel .searchBar .Blur ()
322313 m .sidebarModel .searchBar .SetValue ("" )
323- case containsKey ( msg , common .Hotkeys .ConfirmTyping ):
314+ case slices . Contains ( common .Hotkeys .ConfirmTyping , msg ):
324315 m .sidebarModel .searchBar .Blur ()
325316 m .sidebarModel .resetCursor ()
326317 }
327318}
328319
329320// Check the key input and cancel or confirms the search
330321func (m * model ) focusOnSearchbarKey (msg string ) {
331- switch msg {
332- case containsKey ( msg , common .Hotkeys .CancelTyping ):
322+ switch {
323+ case slices . Contains ( common .Hotkeys .CancelTyping , msg ):
333324 m .cancelSearch ()
334- case containsKey ( msg , common .Hotkeys .ConfirmTyping ):
325+ case slices . Contains ( common .Hotkeys .ConfirmTyping , msg ):
335326 m .confirmSearch ()
336327 }
337328}
338329
339330// Check hotkey input in help menu. Possible actions are moving up, down
340331// and quiting the menu
341332func (m * model ) helpMenuKey (msg string ) {
342- switch msg {
343- case containsKey ( msg , common .Hotkeys .ListUp ):
333+ switch {
334+ case slices . Contains ( common .Hotkeys .ListUp , msg ):
344335 m .helpMenuListUp ()
345- case containsKey ( msg , common .Hotkeys .ListDown ):
336+ case slices . Contains ( common .Hotkeys .ListDown , msg ):
346337 m .helpMenuListDown ()
347- case containsKey ( msg , common .Hotkeys .Quit ):
338+ case slices . Contains ( common .Hotkeys .Quit , msg ):
348339 m .quitHelpMenu ()
349340 }
350341}
0 commit comments