Files
dash-cli/source/hooks/useTerminalSize.js

23 lines
536 B
JavaScript

// hooks/useTerminalSize.js
import { useState, useEffect } from 'react';
import { useStdout } from 'ink';
export function useTerminalSize() {
const { stdout } = useStdout();
const [size, setSize] = useState({ width: stdout.columns, height: stdout.rows });
useEffect(() => {
if (!stdout) return;
function onResize() {
setSize({ width: stdout.columns, height: stdout.rows });
}
stdout.on('resize', onResize);
return () => {
stdout.off('resize', onResize);
};
}, [stdout]);
return size;
}