summaryrefslogtreecommitdiffstats
path: root/src/components/MetaItems/Dates/Dates.tsx
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2022-03-01 22:05:08 +0100
committerArmand Philippot <git@armandphilippot.com>2022-03-01 22:05:08 +0100
commit8bd9784acdee6871ad70e86d0d7120299bf76969 (patch)
tree9b81e0cd3ff881b2cbeb81f9f96b52b510d67646 /src/components/MetaItems/Dates/Dates.tsx
parent21c228600a7a69cfea3b7d8af6838bcfda1d7399 (diff)
refactor: split posts meta into smaller components
Diffstat (limited to 'src/components/MetaItems/Dates/Dates.tsx')
-rw-r--r--src/components/MetaItems/Dates/Dates.tsx56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/components/MetaItems/Dates/Dates.tsx b/src/components/MetaItems/Dates/Dates.tsx
new file mode 100644
index 0000000..04dff3a
--- /dev/null
+++ b/src/components/MetaItems/Dates/Dates.tsx
@@ -0,0 +1,56 @@
+import { MetaKind } from '@ts/types/app';
+import { settings } from '@utils/config';
+import { getFormattedDate } from '@utils/helpers/format';
+import { useRouter } from 'next/router';
+import { useIntl } from 'react-intl';
+import { MetaItem } from '..';
+
+const Dates = ({
+ publication,
+ update,
+ kind,
+}: {
+ publication: string;
+ update: string;
+ kind: MetaKind;
+}) => {
+ const intl = useIntl();
+ const { locale } = useRouter();
+ const validLocale = locale ? locale : settings.locales.defaultLocale;
+
+ const publicationDate = getFormattedDate(publication, validLocale);
+ const updateDate = getFormattedDate(update, validLocale);
+
+ return (
+ <>
+ <MetaItem
+ title={intl.formatMessage({
+ defaultMessage: 'Published on:',
+ description: 'Dates: publication date meta label',
+ })}
+ values={[
+ <time key={publication} dateTime={publication}>
+ {publicationDate}
+ </time>,
+ ]}
+ kind={kind}
+ />
+ {publicationDate !== updateDate && (
+ <MetaItem
+ title={intl.formatMessage({
+ defaultMessage: 'Updated on:',
+ description: 'Dates: update date meta label',
+ })}
+ values={[
+ <time key={update} dateTime={update}>
+ {updateDate}
+ </time>,
+ ]}
+ kind={kind}
+ />
+ )}
+ </>
+ );
+};
+
+export default Dates;