import React from 'react'; import { render, Box, Text, useApp, useInput } from 'ink'; import chalk from 'chalk'; import { getSteuer } from '../src/services/misc/getSteuer.js'; import { closePool } from '../src/db/mssqlClient.js'; import '../src/config/env.js'; const e = React.createElement; function SteuerTable({ steuerklassen }) { return e(Box, { flexDirection: 'column' }, e(Text, null, chalk.cyan.bold('=== Steuerklassen ===')), e(Box, { marginTop: 1, flexDirection: 'column' }, e(Text, { dimColor: true }, ' ID Rate Name'), ...steuerklassen.map((row) => e(Text, { key: row.kSteuerklasse }, ' ', chalk.white(String(row.kSteuerklasse).padEnd(4)), chalk.yellow(`${String(row.fSteuersatz).padStart(3)}%`.padEnd(8)), row.cName ?? '—', row.nStandard === 1 ? chalk.gray(' (standard)') : '' ) ) ), e(Box, { marginTop: 1 }, e(Text, null, chalk.gray('Press any key to exit'))) ); } const App = ({ steuerklassen }) => { const { exit } = useApp(); useInput(() => { closePool() .catch(() => {}) .finally(() => { exit(); process.exit(0); }); }); return e(SteuerTable, { steuerklassen }); }; try { const { steuerklassen } = await getSteuer(); render(e(App, { steuerklassen })); } catch (error) { console.error(chalk.red(`Error: ${error.message}`)); await closePool().catch(() => {}); process.exit(1); }