@atlaskit/renderer
Version:
Renderer component
48 lines (46 loc) • 2.52 kB
JavaScript
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
import _extends from "@babel/runtime/helpers/extends";
import React, { memo } from 'react';
import { DateSharedCssClassName } from '@atlaskit/editor-common/styles';
import { isPastDate, timestampToString, timestampToTaskContext } from '@atlaskit/editor-common/utils';
import { injectIntl } from 'react-intl';
import { useRendererContext } from '../../renderer-context';
import { useTaskItemsFormatContext } from '../../ui/TaskItemsFormatContext/TaskItemsFormatContext';
import { useInlineAnnotationProps } from '../../ui/annotations/element/useInlineAnnotationProps';
var Date = /*#__PURE__*/memo(function Date(props) {
var inlineAnnotationProps = useInlineAnnotationProps(props);
var timestamp = props.timestamp,
parentIsIncompleteTask = props.parentIsIncompleteTask,
intl = props.intl;
var _useRendererContext = useRendererContext(),
timeZone = _useRendererContext.timeZone;
var className = !!parentIsIncompleteTask && isPastDate(timestamp, timeZone) ? 'date-node date-node-highlighted' : 'date-node';
return /*#__PURE__*/React.createElement("span", _extends({
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
className: DateSharedCssClassName.DATE_WRAPPER
// Ignored via go/ees005
// eslint-disable-next-line react/jsx-props-no-spreading
}, inlineAnnotationProps), /*#__PURE__*/React.createElement("span", {
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
className: className,
"data-node-type": "date",
"data-timestamp": timestamp
}, parentIsIncompleteTask ? timestampToTaskContext(timestamp, intl, timeZone) : timestampToString(timestamp, intl)));
});
// eslint-disable-next-line @typescript-eslint/ban-types
export var DateComponent = injectIntl(Date);
function DateWithFormatContext(props) {
var _useTaskItemsFormatCo = useTaskItemsFormatContext(),
_useTaskItemsFormatCo2 = _slicedToArray(_useTaskItemsFormatCo, 1),
isChecked = _useTaskItemsFormatCo2[0];
var parentIsIncompleteTask = props.parentIsIncompleteTask;
if (typeof isChecked !== 'undefined') {
parentIsIncompleteTask = !isChecked;
}
// Ignored via go/ees005
// eslint-disable-next-line react/jsx-props-no-spreading
return /*#__PURE__*/React.createElement(DateComponent, _extends({}, props, {
parentIsIncompleteTask: parentIsIncompleteTask
}));
}
export default DateWithFormatContext;