import { useEffect, useState } from "react"; const TERMINAL_PADDING_X = 8; export function useTerminalSize(): { columns: number; rows: number } { const [size, setSize] = useState({ columns: (process.stdout.columns || 60) - TERMINAL_PADDING_X, rows: process.stdout.rows || 20, }); useEffect(() => { function updateSize() { setSize({ columns: (process.stdout.columns || 60) - TERMINAL_PADDING_X, rows: process.stdout.rows || 20, }); } process.stdout.on("resize", updateSize); return () => { process.stdout.off("resize", updateSize); }; }, []); return size; }