@nanocollective/nanocoder
Version:
A local-first CLI coding agent that brings the power of agentic coding tools like Claude Code and Gemini CLI to local models or controlled APIs like OpenRouter
17 lines • 1.69 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { Box, Text, useInput } from 'ink';
import Spinner from 'ink-spinner';
import React from 'react';
import { DevelopmentModeIndicator } from '../components/development-mode-indicator.js';
import { useTheme } from '../hooks/useTheme.js';
export const SchedulerView = React.memo(({ activeJobCount, queueLength, isProcessing, currentJobCommand, developmentMode, contextPercentUsed, onExit, }) => {
const { colors } = useTheme();
useInput((_input, key) => {
if (key.escape) {
onExit();
}
});
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(DevelopmentModeIndicator, { developmentMode: developmentMode, colors: colors, contextPercentUsed: contextPercentUsed }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: colors.info, children: _jsx(Spinner, { type: "dots" }) }), _jsxs(Text, { color: colors.secondary, children: [' ', "\u2014 ", activeJobCount, " cron job", activeJobCount !== 1 ? 's' : '', ' ', "registered"] })] }), isProcessing && currentJobCommand && (_jsxs(Box, { marginTop: 1, children: [_jsxs(Text, { color: colors.primary, children: ["Running: ", currentJobCommand] }), queueLength > 0 && (_jsxs(Text, { color: colors.secondary, children: [" (", queueLength, " queued)"] }))] })), !isProcessing && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.secondary, children: "Waiting for next scheduled job..." }) })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "Press Escape to exit scheduler mode" }) })] }));
});
SchedulerView.displayName = 'SchedulerView';
//# sourceMappingURL=scheduler-view.js.map