import Badge from '@app/components/Common/Badge'; import { defineMessages, FormattedRelativeTime, useIntl } from 'react-intl'; const messages = defineMessages({ airedrelative: 'Aired {relativeTime}', airsrelative: 'Airing {relativeTime}', }); type AirDateBadgeProps = { airDate: string; }; const AirDateBadge = ({ airDate }: AirDateBadgeProps) => { const WEEK = 1000 * 60 * 60 * 24 * 8; const intl = useIntl(); const dAirDate = new Date(airDate); const nowDate = new Date(); const alreadyAired = dAirDate.getTime() < nowDate.getTime(); const compareWeek = new Date( alreadyAired ? Date.now() - WEEK : Date.now() + WEEK ); let showRelative = false; if ( (alreadyAired && dAirDate.getTime() > compareWeek.getTime()) || (!alreadyAired && dAirDate.getTime() < compareWeek.getTime()) ) { showRelative = true; } return (
{intl.formatDate(dAirDate, { year: 'numeric', month: 'long', day: 'numeric', })} {showRelative && ( {intl.formatMessage( alreadyAired ? messages.airedrelative : messages.airsrelative, { relativeTime: ( ), } )} )}
); }; export default AirDateBadge;