2024-05-31 19:49:46 +05:30
|
|
|
import React, { ComponentProps } from 'react';
|
2023-10-06 13:44:06 +11:00
|
|
|
import { Text, as } from 'folds';
|
|
|
|
|
import { timeDayMonYear, timeHourMinute, today, yesterday } from '../../utils/time';
|
|
|
|
|
|
|
|
|
|
export type TimeProps = {
|
|
|
|
|
compact?: boolean;
|
|
|
|
|
ts: number;
|
|
|
|
|
};
|
|
|
|
|
|
2024-05-31 19:49:46 +05:30
|
|
|
export const Time = as<'span', TimeProps & ComponentProps<typeof Text>>(
|
|
|
|
|
({ compact, ts, ...props }, ref) => {
|
|
|
|
|
let time = '';
|
|
|
|
|
if (compact) {
|
|
|
|
|
time = timeHourMinute(ts);
|
|
|
|
|
} else if (today(ts)) {
|
|
|
|
|
time = timeHourMinute(ts);
|
|
|
|
|
} else if (yesterday(ts)) {
|
|
|
|
|
time = `Yesterday ${timeHourMinute(ts)}`;
|
|
|
|
|
} else {
|
|
|
|
|
time = `${timeDayMonYear(ts)} ${timeHourMinute(ts)}`;
|
|
|
|
|
}
|
2023-10-06 13:44:06 +11:00
|
|
|
|
2024-05-31 19:49:46 +05:30
|
|
|
return (
|
|
|
|
|
<Text as="time" style={{ flexShrink: 0 }} size="T200" priority="300" {...props} ref={ref}>
|
|
|
|
|
{time}
|
|
|
|
|
</Text>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
);
|