mirror of
https://github.com/pcottle/learnGitBranching.git
synced 2025-06-25 23:48:34 +02:00
70 lines
1.6 KiB
JavaScript
70 lines
1.6 KiB
JavaScript
var React = require('react');
|
|
var PropTypes = require('prop-types');
|
|
|
|
var reactUtil = require('../util/reactUtil');
|
|
|
|
class HelperBarView extends React.Component {
|
|
|
|
render() {
|
|
var topClassName = reactUtil.joinClasses([
|
|
'helperBar',
|
|
'transitionAll',
|
|
this.props.shown ? 'show' : '',
|
|
this.props.className ? this.props.className : ''
|
|
]);
|
|
|
|
return (
|
|
<div className={topClassName}>
|
|
{this.props.items.map(function(item, index) {
|
|
return [
|
|
this.renderItem(item, index),
|
|
// ugh -- we need this spacer at the end only
|
|
// if we are not the last element
|
|
index === this.props.items.length - 1 ?
|
|
null :
|
|
<span key={'helper_bar_span_' + index}>{' '}</span>
|
|
];
|
|
}.bind(this))}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
renderItem(item, index) {
|
|
var testID = item.icon || item.testID ||
|
|
item.text.toLowerCase();
|
|
if (item.newPageLink) {
|
|
return (
|
|
<a
|
|
data-testid={testID}
|
|
key={'helper_bar_' + index}
|
|
onClick={item.onClick}
|
|
target="_blank"
|
|
href={item.href}>
|
|
<i className={'icon-' + item.icon} />
|
|
{' '}
|
|
</a>
|
|
);
|
|
}
|
|
return (
|
|
<a
|
|
data-testid={testID}
|
|
key={'helper_bar_' + index}
|
|
onClick={item.onClick}>
|
|
{item.text ? item.text :
|
|
<i className={'icon-' + item.icon} />
|
|
}
|
|
{' '}
|
|
</a>
|
|
);
|
|
}
|
|
|
|
};
|
|
|
|
HelperBarView.propTypes = {
|
|
className: PropTypes.string,
|
|
shown: PropTypes.bool.isRequired,
|
|
items: PropTypes.array.isRequired
|
|
};
|
|
|
|
|
|
module.exports = HelperBarView;
|