instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
153 lines (114 loc) • 4.62 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _bind = require('classnames/bind');
var _bind2 = _interopRequireDefault(_bind);
var _field = require('components/field');
var _field2 = _interopRequireDefault(_field);
var _display = require('../actions/display');
var _store = require('../common/store');
var _store2 = _interopRequireDefault(_store);
var _auto_bind = require('common/auto_bind');
var _auto_bind2 = _interopRequireDefault(_auto_bind);
var _constants = require('../common/constants');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var cx = _bind2.default.bind(require('../styles/field.scss'));
var PopoverField = function (_Component) {
(0, _inherits3.default)(PopoverField, _Component);
function PopoverField(props) {
(0, _classCallCheck3.default)(this, PopoverField);
var _this = (0, _possibleConstructorReturn3.default)(this, (PopoverField.__proto__ || (0, _getPrototypeOf2.default)(PopoverField)).call(this, props));
(0, _auto_bind2.default)(_this);
return _this;
}
(0, _createClass3.default)(PopoverField, [{
key: 'show_popover',
value: function show_popover() {
var _props = this.props,
popover_component = _props.popover_component,
popover_fill_screen = _props.popover_fill_screen,
name = _props.name;
_store2.default.dispatch((0, _display.show_popover)(popover_component, this.get_popover_props(), name, popover_fill_screen));
}
}, {
key: 'get_popover_props',
value: function get_popover_props() {
var _props$popover_props = this.props.popover_props,
_on_save = _props$popover_props.on_save,
props = (0, _objectWithoutProperties3.default)(_props$popover_props, ['on_save']);
return (0, _extends3.default)({}, props, {
on_save: function on_save() {
_store2.default.dispatch((0, _display.dismiss_popover)());
_on_save.apply(undefined, arguments);
}
});
}
}, {
key: 'render',
value: function render() {
var _props2 = this.props,
editable = _props2.editable,
value = _props2.value,
placeholder = _props2.placeholder;
return _react2.default.createElement(
_field2.default,
(0, _extends3.default)({}, this.props, {
category: 'popover',
className: cx({ 'field_editable': editable })
}),
_react2.default.createElement(
'div',
{
key: 'display',
className: cx('field__display', { 'field__display_empty': value.length == 0 }),
onClick: editable ? this.show_popover : null
},
_react2.default.createElement(
'div',
{ className: cx('field__label', { 'field__label_filled': value }) },
value.length == 0 ? placeholder || _react2.default.createElement(
'span',
null,
'\u2026'
) : value,
value.length > 85 ? _react2.default.createElement(
'div',
{ className: cx('field__comment-ellipsis') },
'\u2026'
) : null
)
)
);
}
}]);
return PopoverField;
}(_react.Component);
PopoverField.defaultProps = {
name: "",
show_label: true,
display_only: false,
ellipsis: false,
editable: true,
value: "",
popover_component: null,
popover_props: {},
placeholder: ""
};
exports.default = PopoverField;