eslint-remote-tester
Version:
Tool for running ESLint on multiple repositories
33 lines (32 loc) • 1.27 kB
JavaScript
import React from 'react';
import { Newline, Text } from 'ink';
import Status from './Status.js';
import Tasks from './Tasks.js';
import Messages from './Messages.js';
import MessagesScrollBox from './MessagesScrollBox.js';
import FinalLog from './FinalLog.js';
import { useOnExit } from '../hooks/index.js';
import useOnHorizontalResize from '../hooks/useOnHorizontalResize.js';
/**
* Application for CLIs
*/
const AppCLI = ({ isTTY }) => {
const done = useOnExit();
// Clear screen completely on horizontal resize
// Otherwise parts of old renders are displayed on top of app
useOnHorizontalResize(console.clear);
if (done) {
return React.createElement(FinalLog, null);
}
// Scrollbox can only be rendered in TTY
const wrapper = isTTY ? MessagesScrollBox : undefined;
return (React.createElement(React.Fragment, null,
!isTTY && (React.createElement(Text, { color: 'red' },
"Terminal is not detected as TTY. Scrollbox is disabled.",
React.createElement(Newline, null))),
React.createElement(Status, null),
React.createElement(Tasks, null),
!isTTY && React.createElement(Text, null),
React.createElement(Messages, { wrapper: wrapper })));
};
export default AppCLI;