import { commandBarActor, useCommandBarState } from 'machines/commandBarMachine' import CommandBarHeader from './CommandBarHeader' import { useHotkeys } from 'react-hotkeys-hook' function CommandBarReview({ stepBack }: { stepBack: () => void }) { const commandBarState = useCommandBarState() const { context: { argumentsToSubmit, selectedCommand }, } = commandBarState useHotkeys('backspace', stepBack, { enableOnFormTags: true, enableOnContentEditable: true, }) useHotkeys( [ 'alt+1', 'alt+2', 'alt+3', 'alt+4', 'alt+5', 'alt+6', 'alt+7', 'alt+8', 'alt+9', 'alt+0', ], (_, b) => { if (b.keys && !Number.isNaN(parseInt(b.keys[0], 10))) { if (!selectedCommand?.args) return const argName = Object.keys(selectedCommand.args)[ parseInt(b.keys[0], 10) - 1 ] const arg = selectedCommand?.args[argName] commandBarActor.send({ type: 'Edit argument', data: { arg: { ...arg, name: argName } }, }) } }, { keyup: true, enableOnFormTags: true, enableOnContentEditable: true }, [argumentsToSubmit, selectedCommand] ) Object.keys(argumentsToSubmit).forEach((key, i) => { const arg = selectedCommand?.args ? selectedCommand?.args[key] : undefined if (!arg) return }) function submitCommand(e: React.FormEvent) { e.preventDefault() commandBarActor.send({ type: 'Submit command', output: argumentsToSubmit, }) } return (

{selectedCommand?.reviewMessage ? ( selectedCommand.reviewMessage instanceof Function ? ( selectedCommand.reviewMessage(commandBarState.context) ) : ( selectedCommand.reviewMessage ) ) : ( <>Confirm {selectedCommand?.name} )}

{Object.entries(argumentsToSubmit).map(([key, value], i) => { const arg = selectedCommand?.args ? selectedCommand?.args[key] : undefined if (!arg) return null return ( ) })}
) } export default CommandBarReview