πŸ“„ File detail

ink/hooks/use-terminal-focus.ts

🧩 .tsπŸ“ 17 linesπŸ’Ύ 556 bytesπŸ“ text
← Back to All Files

🎯 Use case

This file lives under β€œink/”, which covers Ink terminal UI (layouts, TTY IO, keyboard, renderer components). On the API surface it exposes useTerminalFocus β€” mainly functions, hooks, or classes. Dependencies touch React UI. It composes internal code from components (relative imports).

Generated from folder role, exports, dependency roots, and inline comments β€” not hand-reviewed for every path.

🧠 Inline summary

import { useContext } from 'react' import TerminalFocusContext from '../components/TerminalFocusContext.js' /** * Hook to check if the terminal has focus.

πŸ“€ Exports (heuristic)

  • useTerminalFocus

πŸ“š External import roots

Package roots from from "…" (relative paths omitted).

  • react

πŸ–₯️ Source preview

import { useContext } from 'react'
import TerminalFocusContext from '../components/TerminalFocusContext.js'

/**
 * Hook to check if the terminal has focus.
 *
 * Uses DECSET 1004 focus reporting - the terminal sends escape sequences
 * when it gains or loses focus. These are handled automatically
 * by Ink and filtered from useInput.
 *
 * @returns true if the terminal is focused (or focus state is unknown)
 */
export function useTerminalFocus(): boolean {
  const { isTerminalFocused } = useContext(TerminalFocusContext)
  return isTerminalFocused
}