Home Reference Source
import ContainerControl from 'ink-splat/src/components/ContainerControl.js'
public class | source

ContainerControl

Extends:

react~React.ComponentControl → ContainerControl

Direct Subclass:

Form

Provides focus-management functionality for controls that can function as a container for other controls.

Static Method Summary

Static Public Methods
public static

isContainerControl(anyComponentOrClass: *): *

Returns a boolean which indicates if the provided anyComponentOrClass parameter is an instance of ContainerControl (if passed an object) or a class derived from ContainerControl (if passed a function) or a component derived from ContainerControl.

Constructor Summary

Public Constructor
public

Member Summary

Public Members
public

state: {...undefined: Object, "activeControl": *}

Method Summary

Public Methods
public

blur()

In a command line interface, where focusable controls exist (think Visual Basic for DOS) to get an idea of the concept, we can't completely blur out of EVERY single control.

Something is always going to ALWAYS need to be accept / capture input, be it a Button or TextField or a Menu or a Tab or Tree. But the concept of the Control component is that it can easily allow focus to shift from one component to the next, and allow those components which extend the Control class to easily display one type of blurred output while accepting input once focused.

In order to guarantee this, blur will locate the forward (or reverse component) and 'select' it instead.

public

canBlur(): *

Returns a boolean which indicates if the Control instance is un-focusable.

public

canFocus(): *

Returns a boolean which indicates if a ContainerControl instance is focusable.

public
public

isFocused(): *

public

render(): *

public
public

select(control: *)

Inherited Summary

From class Control
public static

BLUR_DIRECTION indicates the direction a onBlur() should move focus to next.

public static

buildControlForComponent(type: *, props: *, children: *): *

public static

componentHasChildren(component: *): *

Checks a React component to see if it has any children in props.

public static

firstFocusableControlOf(controlOrComponent: *): *

public static

isControl(anyComponentOrClass: *): *

Returns a boolean which indicates if the provided anyComponentOrClass parameter is an instance of Control (if passed an object) or a class derived from Control (if passed a function) or a component derived from Control.

public static

isReactComponent(anyComponentOrClass: *): *

Returns a boolean which indicates if the provided anyComponentOrClass parameter is an instance of React.Component (if passed an object) or a class derived from React.Component (if passed a function) or a component derived from React.Component.

public static

lastFocusableChild(controlOrComponent: *): *

public static
public static
public static

wrapComponent(component: *): *

public
public

state: {...undefined: Object, "canIReachThisState": string}

public

blur()

In a command line interface, where focusable controls exist (think Visual Basic for DOS) to get an idea of the concept, we can't completely blur out of EVERY single control.

Something is always going to ALWAYS need to be accept / capture input, be it a Button or TextField or a Menu or a Tab or Tree. But the concept of the Control component is that it can easily allow focus to shift from one component to the next, and allow those components which extend the Control class to easily display one type of blurred output while accepting input once focused.

In order to guarantee this, blur will locate the forward (or reverse component) and 'select' it instead.

public

canBlur(): *

Returns a boolean which indicates if the Control instance is un-focusable.

public

canFocus(): *

Returns a boolean which indicates if a Control instance is focusable.

public
public
public

focus()

public
public

isBlurred(): *

The isBlurred() method returns the inverse of the isFocused() method.

public

isDisabled(): *

The isDisabled() method returns a boolean which indicates the value of the disabled property as passed into the component.

public

isEnabled(): *

The isEnabled() method returns the inverse value of the isDisabled() method.

public

The isFocusable() method returns a boolean which indicates the value of the field, focusable.

public

isFocused(): *

The isFocused() method returns a boolean which indicates the value of the focused property as passed into the component, as long as it is not disabled.

public

render(): *

Static Public Methods

public static isContainerControl(anyComponentOrClass: *): * source

Returns a boolean which indicates if the provided anyComponentOrClass parameter is an instance of ContainerControl (if passed an object) or a class derived from ContainerControl (if passed a function) or a component derived from ContainerControl.

Params:

NameTypeAttributeDescription
anyComponentOrClass *

Any valid React component or React component class or instance or derived component or class or instance.

Return:

*

true if anyComponentOrClass validates, false otherwise.

Public Constructors

public constructor() source

Override:

Control#constructor

Public Members

public state: {...undefined: Object, "activeControl": *} source

Override:

Control#state

Public Methods

public blur() source

In a command line interface, where focusable controls exist (think Visual Basic for DOS) to get an idea of the concept, we can't completely blur out of EVERY single control.

Something is always going to ALWAYS need to be accept / capture input, be it a Button or TextField or a Menu or a Tab or Tree. But the concept of the Control component is that it can easily allow focus to shift from one component to the next, and allow those components which extend the Control class to easily display one type of blurred output while accepting input once focused.

In order to guarantee this, blur will locate the forward (or reverse component) and 'select' it instead.

Override:

Control#blur

public canBlur(): * source

Returns a boolean which indicates if the Control instance is un-focusable.

Most Controls which exist will be focusable. It is the deault behavior that a derived Control class is always focusable.

If you want to disable focusable in a specific way, you can override the function and return false instead of true.

For example, consider a TextField whose input might be disabled for now. During the disabled state, canFocus() would return false, but otherwise return true.

Override:

Control#canBlur

Return:

*

public canFocus(): * source

Returns a boolean which indicates if a ContainerControl instance is focusable.

The default behavior is to: (1) check containsFocus(): if true, return false (already focused); if false, proceed to (2) return containsFocusable()

Override:

Control#canFocus

Return:

*

public containsFocusable(): boolean source

Override:

Control#containsFocusable

Return:

boolean

public isFocused(): * source

The isFocused() method returns a boolean which indicates the value of the focused property as passed into the component, as long as it is not disabled.

<Control focused /> would cause isFocused() to return true, unless the Control is disabled.

<Control focused disabled /> would cause isFocused() to return false, and is not a valid state for the Control component.

<Control /> would cause isFocused() to return false.

Override:

Control#isFocused

Return:

*

public render(): * source

Override:

Control#render

Return:

*

public renderChildren(): * source

Return:

*

public select(control: *) source

Params:

NameTypeAttributeDescription
control *