12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- // @flow
-
- import { Component } from 'react';
-
- /**
- * The type of the React {@code Component} props of {@link AbstractDialogTab}.
- */
- export type Props = {
-
- /**
- * Function that closes the dialog.
- */
- closeDialog: Function,
-
- /**
- * Callback to invoke on change.
- */
- onTabStateChange: Function,
-
- /**
- * The id of the tab.
- */
- tabId: number
- };
-
-
- /**
- * Abstract React {@code Component} for tabs of the DialogWithTabs component.
- *
- * @extends Component
- */
- class AbstractDialogTab extends Component<Props> {
- /**
- * Initializes a new {@code AbstractDialogTab} instance.
- *
- * @param {Object} props - The read-only properties with which the new
- * instance is to be initialized.
- */
- constructor(props: Props) {
- super(props);
-
- // Bind event handler so it is only bound once for every instance.
- this._onChange = this._onChange.bind(this);
- }
-
- _onChange: (Object) => {};
-
- /**
- * Uses the onTabStateChange function to pass the changed state of the
- * controlled tab component to the controlling DialogWithTabs component.
- *
- * @param {Object} change - Object that contains the changed property and
- * value.
- * @returns {void}
- */
- _onChange(change) {
- const { onTabStateChange, tabId } = this.props;
-
- onTabStateChange(tabId, {
- ...this.props,
- ...change
- });
- }
-
- }
-
- export default AbstractDialogTab;
|