// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import React from 'react'; import {Link} from 'react-router/es6'; import * as Utils from 'utils/utils.jsx'; export default class AdminSidebarSection extends React.Component { static get propTypes() { return { name: React.PropTypes.string.isRequired, title: React.PropTypes.node.isRequired, type: React.PropTypes.string, parentLink: React.PropTypes.string, subsection: React.PropTypes.bool, children: React.PropTypes.arrayOf(React.PropTypes.element), action: React.PropTypes.node, onlyActiveOnIndex: React.PropTypes.bool }; } static get defaultProps() { return { parentLink: '', subsection: false, children: [], onlyActiveOnIndex: true }; } getLink() { return this.props.parentLink + '/' + this.props.name; } render() { const link = this.getLink(); let clonedChildren = null; if (this.props.children.length > 0) { clonedChildren = ( ); } let className = 'sidebar-section'; if (this.props.subsection) { className += ' sidebar-subsection'; } let sidebarItem = ( {this.props.title} {this.props.action} ); if (this.props.type === 'text') { sidebarItem = (
{this.props.title} {this.props.action}
); } return (
  • {sidebarItem} {clonedChildren}
  • ); } }