UNPKG

termcode

Version:

Superior terminal AI coding agent with enterprise-grade security, intelligent error recovery, performance monitoring, and plugin system - Advanced Claude Code alternative

59 lines (58 loc) 1.88 kB
import { useState, useCallback } from 'react'; export function useAppState(props) { const [appState, setAppState] = useState({ mode: 'easy', activePane: 'prompt', showCommandPalette: false, provider: props.provider, model: props.model, status: 'Ready', branch: props.session?.branchName || 'main', output: [], currentTask: '', currentDiff: null, streaming: false, config: props.config, session: props.session, projectInfo: props.projectInfo, }); const setMode = useCallback((mode) => { setAppState(prev => ({ ...prev, mode })); }, []); const setActivePane = useCallback((pane) => { setAppState(prev => ({ ...prev, activePane: pane })); }, []); const setShowCommandPalette = useCallback((show) => { setAppState(prev => ({ ...prev, showCommandPalette: show })); }, []); const addOutputLine = useCallback((line) => { setAppState(prev => ({ ...prev, output: [...prev.output, line] })); }, []); const setCurrentTask = useCallback((task) => { setAppState(prev => ({ ...prev, currentTask: task })); }, []); const updateStatus = useCallback((status) => { setAppState(prev => ({ ...prev, status })); }, []); const setStreaming = useCallback((streaming) => { setAppState(prev => ({ ...prev, streaming })); }, []); const setCurrentDiff = useCallback((diff) => { setAppState(prev => ({ ...prev, currentDiff: diff })); }, []); return { appState, setMode, setActivePane, showCommandPalette: appState.showCommandPalette, setShowCommandPalette, addOutputLine, setCurrentTask, updateStatus, setStreaming, setCurrentDiff, }; }