2020-05-14 09:30:32 +00:00
|
|
|
import useDateLocalize from "@saleor/hooks/useDateLocalize";
|
2022-11-24 12:16:51 +00:00
|
|
|
import { Tooltip } from "@saleor/macaw-ui";
|
2019-08-09 11:14:35 +00:00
|
|
|
import moment from "moment-timezone";
|
2019-08-09 10:26:22 +00:00
|
|
|
import React from "react";
|
2019-06-19 14:40:52 +00:00
|
|
|
|
|
|
|
import { LocaleConsumer } from "../Locale";
|
|
|
|
import { Consumer } from "./DateContext";
|
|
|
|
|
|
|
|
interface DateProps {
|
|
|
|
date: string;
|
|
|
|
plain?: boolean;
|
|
|
|
}
|
|
|
|
|
|
|
|
export const Date: React.FC<DateProps> = ({ date, plain }) => {
|
|
|
|
const localizeDate = useDateLocalize();
|
2022-07-19 11:58:00 +00:00
|
|
|
|
2019-06-19 14:40:52 +00:00
|
|
|
const getHumanized = (value: string, locale: string, currentDate: number) =>
|
|
|
|
moment(value)
|
|
|
|
.locale(locale)
|
|
|
|
.from(currentDate);
|
|
|
|
|
|
|
|
return (
|
|
|
|
<LocaleConsumer>
|
2019-10-16 15:18:29 +00:00
|
|
|
{({ locale }) => (
|
2019-06-19 14:40:52 +00:00
|
|
|
<Consumer>
|
|
|
|
{currentDate =>
|
|
|
|
plain ? (
|
|
|
|
localizeDate(date)
|
|
|
|
) : (
|
2022-11-24 12:16:51 +00:00
|
|
|
<Tooltip title={localizeDate(date)}>
|
2022-12-07 10:20:09 +00:00
|
|
|
<time dateTime={date} data-test-id="dateTime">
|
2019-06-19 14:40:52 +00:00
|
|
|
{getHumanized(date, locale, currentDate)}
|
|
|
|
</time>
|
|
|
|
</Tooltip>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
</Consumer>
|
|
|
|
)}
|
|
|
|
</LocaleConsumer>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
Date.displayName = "Date";
|
|
|
|
export default Date;
|