Manage component focus with useFocus() and useFocusManager()
masterInk provides a focus system for interactive terminal interfaces.
useFocus(options?): Makes a component focusable (accessible via <kbd>Tab</kbd>).
isFocused(boolean): Indicates if the component is currently focused.options:autoFocus(boolean, default:false): Focuses this component if no other component is focused.isActive(boolean, default:true): Enables/disables focusability.id(string): A unique ID used to programmatically focus this component viauseFocusManager.focus(id).
useFocusManager(): Provides methods to control focus globally.
enableFocus(): Enables focus management (enabled by default).disableFocus(): Disables focus management.focusNext(): Moves focus to the next component (triggered by <kbd>Tab</kbd>).focusPrevious(): Moves focus to the previous component (triggered by <kbd>Shift</kbd>+<kbd>Tab</kbd>).focus(id): Moves focus to the component with the specifiedid.activeId(string | undefined): The ID of the currently focused component.
import {render, useFocus, Text} from 'ink';
const Example = () => {
const {isFocused} = useFocus();
return <Text>{isFocused ? 'I am focused' : 'I am not focused'}</Text>;
};
render(<Example />);