UNPKG

beam-cli

Version:

A beautifully simple CLI for running Lighthouse audits on a statically generated (SSG) website

28 lines (27 loc) 1.2 kB
import React, { useState } from 'react'; import { Text, Box, useInput, useApp, render } from 'ink'; import { delay } from '../../utils/delay.js'; import { Explorer } from '../explorer/explorer.js'; import { Header } from './header.js'; import { HelpBox } from './help.js'; export const App = ({ results }) => { const [showHelp, setShowHelp] = useState(false); const [quitting, setQuitting] = useState(false); const { exit } = useApp(); useInput(async (input, key) => { if (input === 'q' || key.escape) { setQuitting(true); await delay(1); exit(); } if (input === 'h') { setShowHelp(!showHelp); } }); if (quitting) return React.createElement(Text, null, " \uD83D\uDC4B Good-bye"); return (React.createElement(Box, { paddingX: 1, paddingBottom: 1, flexDirection: 'column' }, React.createElement(Header, { helpVisible: showHelp, title: 'Results Explorer' }), showHelp ? React.createElement(HelpBox, null) : React.createElement(Explorer, { results: results }))); }; export const startApp = ({ results }) => render(React.createElement(App, { results: results }), {});