import moment from "moment";
import { Text } from "react-native";
import { FontWeight } from "replyke-core";
function formatTime(time: Date | string, justNowText: string): string {
const now = new Date();
const then = new Date(time);
const seconds = Math.floor((now.getTime() - then.getTime()) / 1000);
let timeString = "";
if (seconds < 20) {
timeString = justNowText;
} else if (seconds < 60) {
timeString = `${seconds}s`;
} else if (seconds < 3600) {
timeString = `${Math.floor(seconds / 60)}m`;
} else if (seconds < 86400) {
timeString = `${Math.floor(seconds / 3600)}h`;
} else if (seconds < 2592000) {
// 30 days
timeString = `${Math.floor(seconds / 86400)}d`;
} else if (seconds < 31536000) {
// 365 days
timeString = `${Math.floor(seconds / 2592000)}mo`;
} else {
timeString = `${Math.floor(seconds / 31536000)}y`;
}
return timeString;
}
function FromNow({
time,
fontSize = 12,
fontWeight = 400,
color = "#737373",
lean,
justNowText = "Just now",
}: {
time: Date | string;
fontSize?: number;
fontWeight?: number;
color?: string;
lean?: boolean;
justNowText?: string;
}) {
if (lean) {
return (
{formatTime(time, justNowText)}
);
}
return (
{moment(new Date(time)).fromNow()}
);
}
export default FromNow;