saleor-dashboard/src/components/Date/Date.tsx
Dominik Żegleń 935a6f4542
Reduce bundle size (#1103)
* Add analysis tools

* Use deep imports to reduce bundle size

* Remove tslint config

* Remove unused packages

* Remove lodash-es references

* Use root level mui imports

* Remove mui from restricted imports
2021-05-14 10:15:15 +02:00

42 lines
1.1 KiB
TypeScript

import { Tooltip } from "@material-ui/core";
import useDateLocalize from "@saleor/hooks/useDateLocalize";
import moment from "moment-timezone";
import React from "react";
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();
const getHumanized = (value: string, locale: string, currentDate: number) =>
moment(value)
.locale(locale)
.from(currentDate);
return (
<LocaleConsumer>
{({ locale }) => (
<Consumer>
{currentDate =>
plain ? (
localizeDate(date)
) : (
<Tooltip title={localizeDate(date)}>
<time dateTime={date}>
{getHumanized(date, locale, currentDate)}
</time>
</Tooltip>
)
}
</Consumer>
)}
</LocaleConsumer>
);
};
Date.displayName = "Date";
export default Date;