useTerminalSize.ts
1 import { useEffect, useState } from 'react' 2 3 export function useTerminalSize() { 4 const [size, setSize] = useState({ 5 columns: process.stdout.columns || 80, 6 rows: process.stdout.rows || 24, 7 }) 8 9 useEffect(() => { 10 function updateSize() { 11 setSize({ 12 columns: process.stdout.columns || 80, 13 rows: process.stdout.rows || 24, 14 }) 15 } 16 17 process.stdout.on('resize', updateSize) 18 return () => { 19 process.stdout.off('resize', updateSize) 20 } 21 }, []) 22 23 return size 24 }