Your IP : 216.73.216.74


Current Path : /usr/local/lib/node_modules/@google/gemini-cli/node_modules/ink/build/hooks/
Upload File :
Current File : //usr/local/lib/node_modules/@google/gemini-cli/node_modules/ink/build/hooks/useInput.js

"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = require("react");

var _ = require("..");

var _default = inputHandler => {
  const {
    stdin,
    setRawMode
  } = (0, _react.useContext)(_.StdinContext);
  (0, _react.useLayoutEffect)(() => {
    setRawMode(true);
    return () => setRawMode(false);
  }, [setRawMode]);
  (0, _react.useLayoutEffect)(() => {
    const handleData = data => {
      const input = String(data);
      const meta = {
        up: input === '\u001B[A',
        down: input === '\u001B[B',
        left: input === '\u001B[D',
        right: input === '\u001B[C'
      };
      inputHandler(input, meta);
    };

    stdin.on('data', handleData);
    return () => stdin.off('data', handleData);
  }, [stdin, inputHandler]);
};

exports.default = _default;