saleor-dashboard/src/components/Date/Date.tsx

44 lines
1.1 KiB
TypeScript
Raw Normal View History

import useDateLocalize from "@saleor/hooks/useDateLocalize";
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();
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)
) : (
<Tooltip title={localizeDate(date)}>
<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;