UNPKG

dmux

Version:

Tmux pane manager with AI agent integration for parallel development workflows

44 lines 1.76 kB
import usePaneRunner from './usePaneRunner.js'; export default function useCommandRunner({ panes, savePanes, projectSettings, saveSettings, setShowCommandPrompt, setShowFileCopyPrompt, setCurrentCommandType, setStatusMessage, setRunningCommand, }) { const { runCommandInternal, copyNonGitFiles } = usePaneRunner({ panes, savePanes, projectSettings, setStatusMessage, setRunningCommand, }); const runCommand = async (type, pane) => { if (!pane.worktreePath) { setStatusMessage('No worktree path for this pane'); setTimeout(() => setStatusMessage(''), 2000); return; } const command = type === 'test' ? projectSettings.testCommand : projectSettings.devCommand; const isFirstRun = type === 'test' ? !projectSettings.firstTestRun : !projectSettings.firstDevRun; if (!command) { setShowCommandPrompt(type); return; } if (isFirstRun) { setShowFileCopyPrompt(true); setCurrentCommandType(type); setStatusMessage(`First time running ${type} command...`); return; } await runCommandInternal(type, pane); }; const handleFirstRunResponse = async (accepted, type, pane) => { if (!pane.worktreePath) return; if (accepted) await copyNonGitFiles(pane.worktreePath); const newSettings = { ...projectSettings, [type === 'test' ? 'firstTestRun' : 'firstDevRun']: true, }; await saveSettings(newSettings); await runCommandInternal(type, pane); }; return { runCommand, handleFirstRunResponse }; } //# sourceMappingURL=useCommandRunner.js.map