HEX
Server: LiteSpeed
System: Linux kapuas.iixcp.rumahweb.net 5.14.0-427.42.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 1 14:58:02 EDT 2024 x86_64
User: mirz4654 (1666)
PHP: 8.1.33
Disabled: system,exec,escapeshellarg,escapeshellcmd,passthru,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,popen,pclose,dl,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setsid,posix_setuid,posix_setpgid,ini_alter,show_source,define_syslog_variables,symlink,syslog,openlog,openlog,closelog,ocinumcols,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dll,ftp,myshellexec,socket_bind,mail,posix_getwpuid
Upload Files
File: //usr/share/passenger/templates/error_renderer/with_details/src/Tabs.jsx
/** @jsx h */
import { Component, h } from 'preact';

class Tabs extends Component {
  constructor(props) {
    super(props);
    this.state = { activeKey: props.defaultActiveKey };
  }

  render() {
    var navs = [];
    var contents = [];
    var i;

    for (i = 0; i < this.props.children.length; i++) {
      var child = this.props.children[i];
      if (child !== undefined) {
        navs.push(this._buildNav(child));
        contents.push(this._buildContent(child));
      }
    }

    return (
      <div className={this.props.className}>
        <ul className="nav nav-tabs" role="tablist">
          {navs}
        </ul>
        <div className="tab-content">
          {contents}
        </div>
      </div>
    );
  }

  getActiveKey() {
    return this.state.activeKey;
  }

  setActiveKey(eventKey) {
    this.setState({ activeKey: eventKey });
  }

  _buildNav(tab) {
    var className;
    if (this.getActiveKey() === tab.attributes.eventKey) {
      className = 'active';
    }

    var self = this;
    var clickHandler = function(e) {
      self._handleTabClick(e, tab);
    };

    return (
      <li
      role="presentation"
      className={className}
      key={tab.attributes.eventKey}>
        <a
        href={'#' + this._buildIdForTab(tab)}
        aria-controls={this._buildIdForTab(tab)}
        role="tab"
        data-toggle="tab"
        onClick={clickHandler}>
          {tab.attributes.title}
        </a>
      </li>
    );
  }

  _buildContent(tab) {
    var className = 'tab-pane';
    if (this.getActiveKey() === tab.attributes.eventKey) {
      className += ' active';
    }

    return (
      <div
      role="tabpanel"
      className={className}
      id={this._buildIdForTab(tab)}
      key={tab.attributes.eventKey}>
        {tab}
      </div>
    );
  }

  _buildIdForTab(tab) {
    if (tab.attributes.id) {
      return tab.attributes.id;
    } else if (this.props.id === undefined || this.props.id === '') {
      return tab.attributes.eventKey;
    } else {
      return this.props.id + '-' + tab.attributes.eventKey;
    }
  }

  _handleTabClick(e, tab) {
    e.preventDefault();
    this.setActiveKey(tab.attributes.eventKey);
  }
}

export default Tabs;