/ src / hooks / useTerminalSize.ts
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  }