Project: Kui (App Definition and Development / Application Definition & Image Build)
File: kui_shell_plugin_client_common.TabContainer.md

/ / TabContainer .TabContainer `PureComponent`<`Props`, `State`\> `TabContainer` new TabContainer(`props`) | Name | Type | | : | : | | `props` | `Props` | React.PureComponent&lt;Props, State\&gt;.constructor `Private` `Readonly` \_onCloseTab: `any` `Private` `Readonly` \_onSwitchTab: `any` `Private` `Readonly` \_onTabReady: `any` context: `any` If using the new style context, re-declare this in your class to be the `React.ContextType` of your `static contextType`. Should be used with type annotation or static contextType. ```ts static contextType = MyContext // For TS pre-3.7: context!: React.ContextType<typeof MyContext> // For TS 3.7 and above: declare context: React.ContextType<typeof MyContext> ``` `see` https://reactjs.org/docs/context.html React.PureComponent.context node_modules/@types/react/index.d.ts:479 `Private` isFirstTabReady: `boolean` = `false` Has the first tab activated itself? `Readonly` props: `Readonly`<`Props`\> & `Readonly`<{ `children?`: `ReactNode` }\> React.PureComponent.props node_modules/@types/react/index.d.ts:504 refs: `Object` `deprecated` https://reactjs.org/docs/refs-and-the-dom.html#legacy-api-string-refs React.PureComponent.refs node_modules/@types/react/index.d.ts:510 state: `Readonly`<`State`\> React.PureComponent.state node_modules/@types/react/index.d.ts:505 `Static` `Optional` contextType: `Context`<`any`\> If set, `this.context` will be set at runtime to the current value of the given Context. Usage: ```ts type MyContext = number const Ctx = React.createContext<MyContext>(0) class Foo extends React.Component { static contextType = Ctx context!: React.ContextType<typeof Ctx> render() { return <>My context's value: {this.context}</> } } ``` `see` https://reactjs.org/docs/context.html#classcontexttype React.PureComponent.contextType node_modules/@types/react/index.d.ts:461 `Private` `get` needsSidebar(): `boolean` `boolean` `Optional` UNSAFE_componentWillMount(): `void` Called immediately before mounting occurs, and before `Component#render`. Avoid introducing any side-effects or subscriptions in this method. This method will not stop working in React 17. Note: the presence of getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked. `deprecated` 16.3, use componentDidMount or the constructor instead `see` https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#initializing-state `see` https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path `void` React.PureComponent.UNSAFE_componentWillMount node_modules/@types/react/index.d.ts:717 `Optional` UNSAFE_componentWillReceiveProps(`nextProps`, `nextContext`): `void` Called when the component may be receiving new props. React may call this even if props have not changed, so be sure to compare new and existing props if you only want to handle changes. Calling `Component#setState` generally does not trigger this method. This method will not stop working in React 17. Note: the presence of getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked. `deprecated` 16.3, use static getDerivedStateFromProps instead `see` https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#updating-state-based-on-props `see` https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path | Name | Type | | : | :- | | `nextProps` | `Readonly`<`Props`\> | | `nextContext` | `any` | `void` React.PureComponent.UNSAFE_componentWillReceiveProps node_modules/@types/react/index.d.ts:749 `Optional` UNSAFE_componentWillUpdate(`nextProps`, `nextState`, `nextContext`): `void` Called immediately before rendering when new props or state is received. Not called for the initial render. Note: You cannot call `Component#setState` here. This method will not stop working in React 17. Note: the presence of getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked. `deprecated` 16.3, use getSnapshotBeforeUpdate instead `see` https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#reading-dom-properties-before-an-update `see` https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path | Name | Type | | : | :- | | `nextProps` | `Readonly`<`Props`\> | | `nextState` | `Readonly`<`State`\> | | `nextContext` | `any` | `void` React.PureComponent.UNSAFE_componentWillUpdate node_modules/@types/react/index.d.ts:777 `Private` `Readonly` \_onNewTab(): `void` `void` `Private` `Readonly` \_onSetTabTitle(`uuid`, `title`): `void` | Name | Type | | : | :- | | `uuid` | `string` | | `title` | `string` | `void` `Private` captureState(): `void` save tab state such as CWD prior to a tab switch `void` `Private` children(`uuid`): `Object` Graft the tab `uuid` | Name | Type | | :-- | :- | | `uuid` | `string` | `Object` `Optional` componentDidCatch(`error`, `errorInfo`): `void` Catches exceptions generated in descendant components. Unhandled exceptions will cause the entire component tree to

| Name | Type | | :- | :- | | `error` | `Error` | | `errorInfo` | `ErrorInfo` | `void` React.PureComponent.componentDidCatch node_modules/@types/react/index.d.ts:646 `Optional` componentDidMount(): `void` Called immediately after a component is mounted. Setting state here will trigger re-rendering. `void` React.PureComponent.componentDidMount node_modules/@types/react/index.d.ts:625 `Optional` componentDidUpdate(`prevProps`, `prevState`, `snapshot?`): `void` Called immediately after updating occurs. Not called for the initial render. The snapshot is only present if getSnapshotBeforeUpdate is present and returns non-null. | Name | Type | | :- | :- | | `prevProps` | `Readonly`<`Props`\> | | `prevState` | `Readonly`<`State`\> | | `snapshot?` | `any` | `void` React.PureComponent.componentDidUpdate node_modules/@types/react/index.d.ts:688 `Optional` componentWillMount(): `void` Called immediately before mounting occurs, and before `Component#render`. Avoid introducing any side-effects or subscriptions in this method. Note: the presence of getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked. `deprecated` 16.3, use componentDidMount or the constructor instead; will stop working in React 17 `see` https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#initializing-state `see` https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path `void` React.PureComponent.componentWillMount node_modules/@types/react/index.d.ts:703 `Optional` componentWillReceiveProps(`nextProps`, `nextContext`): `void` Called when the component may be receiving new props. React may call this even if props have not changed, so be sure to compare new and existing props if you only want to handle changes. Calling `Component#setState` generally does not trigger this method. Note: the presence of getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked. `deprecated` 16.3, use static getDerivedStateFromProps instead; will stop working in React 17 `see` https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#updating-state-based-on-props `see` https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path | Name | Type | | : | :- | | `nextProps` | `Readonly`<`Props`\> | | `nextContext` | `any` | `void` React.PureComponent.componentWillReceiveProps node_modules/@types/react/index.d.ts:732 `Optional` componentWillUnmount(): `void` Called immediately before a component is destroyed. Perform any necessary cleanup in this method, such as cancelled network requests, or cleaning up any DOM elements created in `componentDidMount`. `void` React.PureComponent.componentWillUnmount node_modules/@types/react/index.d.ts:641 `Optional` componentWillUpdate(`nextProps`, `nextState`, `nextContext`): `void` Called immediately before rendering when new props or state is received. Not called for the initial render. Note: You cannot call `Component#setState` here. Note: the presence of getSnapshotBeforeUpdate or getDerivedStateFromProps prevents this from being invoked. `deprecated` 16.3, use getSnapshotBeforeUpdate instead; will stop working in React 17 `see` https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#reading-dom-properties-before-an-update `see` https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#gradual-migration-path | Name | Type | | : | :- | | `nextProps` | `Readonly`<`Props`\> | | `nextState` | `Readonly`<`State`\> | | `nextContext` | `any` | `void` React.PureComponent.componentWillUpdate node_modules/@types/react/index.d.ts:762 forceUpdate(`callback?`): `void` | Name | Type | | :- | :-- | | `callback?` | () => `void` | `void` React.PureComponent.forceUpdate node_modules/@types/react/index.d.ts:496 `Optional` getSnapshotBeforeUpdate(`prevProps`, `prevState`): `any` Runs before React applies the result of `render` to the document, and returns an object to be given to componentDidUpdate. Useful for saving things such as scroll position before `render` causes changes to it. Note: the presence of getSnapshotBeforeUpdate prevents any of the deprecated lifecycle events from running. | Name | Type | | :- | :- | | `prevProps` | `Readonly`<`Props`\> | | `prevState` | `Readonly`<`State`\> | `any` React.PureComponent.getSnapshotBeforeUpdate

`Private` graft(`node`, `uuid`, `key?`): `Object` | Name | Type | | :-- | :- | | `node` | `ReactNode` | | `uuid` | `string` | | `key?` | `number` | `Object` `Private` listenForTabClose(`model`): `void` | Name | Type | | : | :- | | `model` | | `void` `Private` newTabModel(`spec?`, `doNotChangeActiveTab?`): | Name | Type | Default value | Description | | :-- | : | : | : | | `spec` | `Object` | `{}` | - | | `spec.cmdline?` | `string` | `undefined` | Optionally execute a command in the new tab | | `spec.exec?` | `"pexec"` \| `"qexec"` | `undefined` | Execute the command line with qexec or pexec? Default: pexec. | | `spec.onClose?` | `string` | `undefined` | Optionally execute a command when the tab is closed | | `spec.statusStripeDecoration?` | `StatusStripeChangeEvent` | `undefined` | Optionally specify color and message to display in the StatusStripe | | `spec.title?` | `string` | `undefined` | Optional tab title | | `doNotChangeActiveTab` | `boolean` | `false` | - | `Private` onCloseTab(`idx`): `Promise`<`void`\> Close Tab event | Name | Type | | :- | :- | | `idx` | `number` | `Promise`<`void`\> `Private` onNewTab(`spec?`, `doNotChangeActiveTab?`): `void` New Tab event | Name | Type | Default value | Description | | :-- | : | : | : | | `spec` | `Object` | `{}` | - | | `spec.cmdline?` | `string` | `undefined` | Optionally execute a command in the new tab | | `spec.exec?` | `"pexec"` \| `"qexec"` | `undefined` | Execute the command line with qexec or pexec? Default: pexec. | | `spec.onClose?` | `string` | `undefined` | Optionally execute a command when the tab is closed | | `spec.statusStripeDecoration?` | `StatusStripeChangeEvent` | `undefined` | Optionally specify color and message to display in the StatusStripe | | `spec.title?` | `string` | `undefined` | Optional tab title | | `doNotChangeActiveTab` | `boolean` | `false` | - | `void` `Private` onSwitchTab(`idx`): `Promise`<`void`\> Switch Tab event: update state so that activeIdx=idx | Name | Type | | :- | :- | | `idx` | `number` | `Promise`<`void`\> `Private` onTabReady(`tab`): `void` | Name | Type | | :- | :- | | `tab` | `Tab` | `void` render(): `Element` `Element` React.PureComponent.render `Private` restoreState(`tabIdx`): `void` restore tab state after a tab switch | Name | Type | | :- | :- | | `tabIdx` | `number` | `void` setState<`K`\>(`state`, `callback?`): `void` | Name | Type | | : | :-- | | `K` | extends keyof `State` | | Name | Type | | :- | :-- | | `state` | `State` \| (`prevState`: `Readonly`<`State`\>, `props`: `Readonly`<`Props`\>) => `State` \| `Pick`<`State`, `K`\> \| `Pick`<`State`, `K`\> | | `callback?` | () => `void` | `void` React.PureComponent.setState node_modules/@types/react/index.d.ts:491 `Optional` shouldComponentUpdate(`nextProps`, `nextState`, `nextContext`): `boolean` Called to determine whether the change in props and state should trigger a re-render. `Component` always returns true. `PureComponent` implements a shallow comparison on props and state and returns true if any props or states have changed. If false is returned, `Component#render`, `componentWillUpdate` and `componentDidUpdate` will not be called. | Name | Type | | : | :- | | `nextProps` | `Readonly`<`Props`\> | | `nextState` | `Readonly`<`State`\> | | `nextContext` | `any` | `boolean` React.PureComponent.shouldComponentUpdate node_modules/@types/react/index.d.ts:636 `Private` sidebar(): `Element` `Element` `Private` tabContent(): `Element` Render the content of the tabs `Element` `Private` `Readonly` toggleSidebar(): `void` `void` `Private` topTabStripe(): `Element` Render the row of Tabs along the top `Element` `Private` willUpdateTopTabButtons(`uuid`, `buttons`): `void` | Name | Type | | :-- | :- | | `uuid` | `string` | | `buttons` | `TopTabButton`<{ `key`: `string` }\>[] | `void`