feat: feature/mvp-sprint-1 Extracted execute command into separate function in Commander
This commit is contained in:
parent
4edb9af1c7
commit
fe3b9eb496
@ -211,47 +211,7 @@ export const Commander = (props) => {
|
||||
}
|
||||
}, [thingtime?.settings?.commanderActive, closeCommander, openCommander])
|
||||
|
||||
const allCommanderKeyListener = React.useCallback(
|
||||
(e: any) => {
|
||||
console.log("commander key listener e?.code", e?.code)
|
||||
thingtimeRef.current = thingtime
|
||||
if (e?.metaKey && e?.code === "KeyP") {
|
||||
e.preventDefault()
|
||||
e.stopPropagation()
|
||||
toggleCommander()
|
||||
}
|
||||
// if key escape close all modals
|
||||
else if (e?.code === "Escape") {
|
||||
closeCommander()
|
||||
}
|
||||
|
||||
// only run these if commander active
|
||||
|
||||
if (commanderActive) {
|
||||
// if arrow keys then move selection
|
||||
if (e?.code === "ArrowUp") {
|
||||
// move selection up
|
||||
const curSuggestionIdx =
|
||||
typeof hoveredSuggestion === "number"
|
||||
? hoveredSuggestion
|
||||
: suggestions?.length
|
||||
const newSuggestionIdx = curSuggestionIdx - 1
|
||||
if (newSuggestionIdx >= 0) {
|
||||
setHoveredSuggestion(newSuggestionIdx)
|
||||
} else {
|
||||
setHoveredSuggestion(suggestions?.length - 1)
|
||||
}
|
||||
} else if (e?.code === "ArrowDown") {
|
||||
// move selection down
|
||||
const curSuggestionIdx =
|
||||
typeof hoveredSuggestion === "number" ? hoveredSuggestion : -1
|
||||
const newSuggestionIdx = curSuggestionIdx + 1
|
||||
if (newSuggestionIdx < suggestions?.length) {
|
||||
setHoveredSuggestion(newSuggestionIdx)
|
||||
} else {
|
||||
setHoveredSuggestion(0)
|
||||
}
|
||||
} else if (e?.code === "Enter") {
|
||||
const executeCommand = React.useCallback(() => {
|
||||
// if selection is active then select it
|
||||
const curSuggestionIdx = hoveredSuggestion
|
||||
if (curSuggestionIdx !== null) {
|
||||
@ -310,17 +270,9 @@ export const Commander = (props) => {
|
||||
console.error("Caught error on commander onEnter", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
[
|
||||
closeCommander,
|
||||
toggleCommander,
|
||||
}, [
|
||||
hoveredSuggestion,
|
||||
selectSuggestion,
|
||||
suggestions,
|
||||
thingtime,
|
||||
thingtimeRef,
|
||||
commanderActive,
|
||||
commandIsAction,
|
||||
commandPath,
|
||||
@ -328,7 +280,64 @@ export const Commander = (props) => {
|
||||
escapedCommandValue,
|
||||
getThingtime,
|
||||
setThingtime,
|
||||
setContextPath,
|
||||
setShowContext,
|
||||
])
|
||||
|
||||
const allCommanderKeyListener = React.useCallback(
|
||||
(e: any) => {
|
||||
console.log("commander key listener e?.code", e?.code)
|
||||
thingtimeRef.current = thingtime
|
||||
if (e?.metaKey && e?.code === "KeyP") {
|
||||
e.preventDefault()
|
||||
e.stopPropagation()
|
||||
toggleCommander()
|
||||
}
|
||||
// if key escape close all modals
|
||||
else if (e?.code === "Escape") {
|
||||
closeCommander()
|
||||
}
|
||||
|
||||
// only run these if commander active
|
||||
|
||||
if (commanderActive) {
|
||||
// if arrow keys then move selection
|
||||
if (e?.code === "ArrowUp") {
|
||||
// move selection up
|
||||
const curSuggestionIdx =
|
||||
typeof hoveredSuggestion === "number"
|
||||
? hoveredSuggestion
|
||||
: suggestions?.length
|
||||
const newSuggestionIdx = curSuggestionIdx - 1
|
||||
if (newSuggestionIdx >= 0) {
|
||||
setHoveredSuggestion(newSuggestionIdx)
|
||||
} else {
|
||||
setHoveredSuggestion(suggestions?.length - 1)
|
||||
}
|
||||
} else if (e?.code === "ArrowDown") {
|
||||
// move selection down
|
||||
const curSuggestionIdx =
|
||||
typeof hoveredSuggestion === "number" ? hoveredSuggestion : -1
|
||||
const newSuggestionIdx = curSuggestionIdx + 1
|
||||
if (newSuggestionIdx < suggestions?.length) {
|
||||
setHoveredSuggestion(newSuggestionIdx)
|
||||
} else {
|
||||
setHoveredSuggestion(0)
|
||||
}
|
||||
} else if (e?.code === "Enter") {
|
||||
executeCommand()
|
||||
}
|
||||
}
|
||||
},
|
||||
[
|
||||
closeCommander,
|
||||
toggleCommander,
|
||||
hoveredSuggestion,
|
||||
suggestions,
|
||||
thingtime,
|
||||
thingtimeRef,
|
||||
commanderActive,
|
||||
executeCommand,
|
||||
]
|
||||
)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user