lml-main
Version:
This is now a mono repository published into many standalone packages.
42 lines • 2.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const React = require("react");
const react_redux_1 = require("react-redux");
const cx = require("classnames");
const selectors_1 = require("../../../jobs/selectors");
const actions_1 = require("../../../jobs/actions");
const cosmoui_1 = require("cosmoui");
const styles = require('../card/fields/job-fields.scss');
class TitleComponent extends cosmoui_1.HoverableComponent {
constructor() {
super(...arguments);
this.color = () => this.state.hover
? this.primary(900)
: this.primary(500);
this.onHover = () => {
};
this.onClick = () => {
const order = this.props.order === actions_1.JOB_SORT_ORDER_ASC
? actions_1.JOB_SORT_ORDER_DESC
: actions_1.JOB_SORT_ORDER_ASC;
this.props.setJobSortOrder(order);
};
}
render() {
const { title, classNameKey } = this.props;
const icon = this.props.order === actions_1.JOB_SORT_ORDER_ASC ? 'Up' : 'Down';
return (React.createElement("div", { id: `${title.replace(' ', '-')}-title-sort`, onMouseEnter: this.onMouseEnter, onMouseLeave: this.onMouseLeave, className: cx(styles.title, styles[classNameKey]), style: { color: this.color() }, onClick: this.onClick },
React.createElement("span", { style: { marginRight: '5px' } }, title),
React.createElement(cosmoui_1.Icon, { icon: icon, size: 10, fill: this.color() })));
}
}
const mapStateToProps = (state, ownProps) => ({
order: selectors_1.getJobSortOrder(state),
});
const mapDispatchToProps = {
setJobSortOrder: actions_1.setJobSortOrder,
};
const Title = react_redux_1.connect(mapStateToProps, mapDispatchToProps)(TitleComponent);
exports.mkSortableTitle = (title, classNameKey) => (React.createElement(Title, { title: title, classNameKey: classNameKey }));
exports.mkUnsortableTitle = (title, classNameKey) => (React.createElement("div", { className: styles[classNameKey] }, title));
//# sourceMappingURL=title.js.map