@atlaskit/renderer
Version:
Renderer component
48 lines (46 loc) • 2.25 kB
JavaScript
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';
const Date = /*#__PURE__*/memo(function Date(props) {
const inlineAnnotationProps = useInlineAnnotationProps(props);
const {
timestamp,
parentIsIncompleteTask,
intl
} = props;
const {
timeZone
} = useRendererContext();
const 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 const DateComponent = injectIntl(Date);
function DateWithFormatContext(props) {
const [isChecked] = useTaskItemsFormatContext();
let 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;