public render()

in playground/src/TabPane.tsx [33:108]


  public render(): React.ReactNode {
    const buttons: React.ReactNode[] = [];

    let selectedTabDefinition: ITabDefinition | undefined = undefined;

    for (let i: number = 0; i < this.props.tabs.length; ++i) {
      const tabDefinition: ITabDefinition = this.props.tabs[i];

      const style: React.CSSProperties = {
        padding: '8px',
        marginLeft: '1px',
        marginRight: '1px'
      };

      if (i === this.state.selectedTabIndex) {
        selectedTabDefinition = tabDefinition;

        const activeTabStyle: React.CSSProperties = {
          ...style,
          borderStyle: 'solid',
          borderWidth: '2px',
          borderColor: '#c0c0c0',
          borderBottomStyle: 'none',
          borderTopLeftRadius: '4px',
          borderTopRightRadius: '4px'
        };

        buttons.push(
          <div key={`tab_${i}`} className="playground-tab-pane-active-tab" style={activeTabStyle}>
            {tabDefinition.title}
          </div>
        );
      } else {
        if (!this._onClickTabBindings[i]) {
          // Bind _onClickTab() with i as the tabIndex parameter
          this._onClickTabBindings[i] = this._onClickTab.bind(this, i);
        }

        buttons.push(
          <div key={`tab_${i}`} className="playground-tab-pane-inactive-tab" style={style}>
            <a
              href="#"
              style={{ textDecorationLine: 'none', color: '#000000' }}
              onClick={this._onClickTabBindings[i]}
            >
              {tabDefinition.title}
            </a>
          </div>
        );
      }
    }

    const contentDivStyle: React.CSSProperties = {
      ...this.props.contentDivStyle,
      borderStyle: 'solid',
      borderWidth: '2px',
      borderColor: '#c0c0c0',
      flex: 1
    };

    const tabPaneStyle: React.CSSProperties = {
      ...this.props.style,
      minWidth: 0
    };

    return (
      <FlexColDiv className="playground-tab-pane" style={tabPaneStyle}>
        <FlexRowDiv className="playground-tab-pane-buttons" style={this.props.buttonRowStyle}>
          {buttons}
        </FlexRowDiv>
        <FlexColDiv className="playground-tab-pane-content" style={contentDivStyle}>
          {selectedTabDefinition !== undefined ? selectedTabDefinition.render() : ''}
        </FlexColDiv>
      </FlexColDiv>
    );
  }