"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.IntlAwareDateTimeInput = IntlAwareDateTimeInput;
exports.default = void 0;

var _react = _interopRequireDefault(require("react"));

var _reactIntl = require("react-intl");

var _cspaceInput = require("cspace-input");

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }

const {
  DateTimeInput
} = _cspaceInput.components;
const messages = (0, _reactIntl.defineMessages)({
  value: {
    "id": "dateTimeInputContainer.value",
    "defaultMessage": "{date} {time}"
  }
});
const propTypes = {
  intl: _reactIntl.intlShape
};

function IntlAwareDateTimeInput(props) {
  const {
    intl,
    ...remainingProps
  } = props;
  return /*#__PURE__*/_react.default.createElement(DateTimeInput // eslint-disable-next-line react/jsx-props-no-spreading
  , _extends({}, remainingProps, {
    formatValue: timestamp => {
      if (timestamp) {
        const date = intl.formatDate(timestamp, {
          day: 'numeric',
          month: 'short',
          year: 'numeric'
        });
        const time = intl.formatTime(timestamp, {
          hour: 'numeric',
          minute: 'numeric',
          second: 'numeric'
        });
        return intl.formatMessage(messages.value, {
          date,
          time
        });
      }

      return timestamp;
    }
  }));
}

IntlAwareDateTimeInput.propTypes = propTypes;
const IntlizedDateTimeInput = (0, _reactIntl.injectIntl)(IntlAwareDateTimeInput);
IntlizedDateTimeInput.propTypes = DateTimeInput.propTypes;
var _default = IntlizedDateTimeInput;
exports.default = _default;