mirror of
https://github.com/Qortal/chrome-extension.git
synced 2025-05-28 04:16:59 +00:00
57 lines
1.8 KiB
TypeScript
57 lines
1.8 KiB
TypeScript
import moment from "moment"
|
|
|
|
export function formatTimestamp(timestamp: number): string {
|
|
const now = moment()
|
|
const timestampMoment = moment(timestamp)
|
|
const elapsedTime = now.diff(timestampMoment, 'minutes')
|
|
|
|
if (elapsedTime < 1) {
|
|
return 'Just now'
|
|
} else if (elapsedTime < 60) {
|
|
return `${elapsedTime}m ago`
|
|
} else if (elapsedTime < 1440) {
|
|
return `${Math.floor(elapsedTime / 60)}h ago`
|
|
} else {
|
|
return timestampMoment.format('MMM D, YYYY')
|
|
}
|
|
}
|
|
export function formatTimestampForum(timestamp: number): string {
|
|
const now = moment();
|
|
const timestampMoment = moment(timestamp);
|
|
const elapsedTime = now.diff(timestampMoment, 'minutes');
|
|
|
|
if (elapsedTime < 1) {
|
|
return `Just now - ${timestampMoment.format('h:mm A')}`;
|
|
} else if (elapsedTime < 60) {
|
|
return `${elapsedTime}m ago - ${timestampMoment.format('h:mm A')}`;
|
|
} else if (elapsedTime < 1440) {
|
|
return `${Math.floor(elapsedTime / 60)}h ago - ${timestampMoment.format('h:mm A')}`;
|
|
} else {
|
|
return timestampMoment.format('MMM D, YYYY - h:mm A');
|
|
}
|
|
}
|
|
|
|
export const formatDate = (unixTimestamp: number): string => {
|
|
const date = moment(unixTimestamp, 'x').fromNow()
|
|
|
|
return date
|
|
}
|
|
|
|
export function sortArrayByTimestampAndGroupName(array) {
|
|
return array.sort((a, b) => {
|
|
if (a.timestamp && b.timestamp) {
|
|
// Both have timestamp, sort by timestamp descending
|
|
return b.timestamp - a.timestamp;
|
|
} else if (a.timestamp) {
|
|
return -1;
|
|
} else if (b.timestamp) {
|
|
return 1;
|
|
} else {
|
|
// Neither has timestamp, sort alphabetically by groupName (with fallback)
|
|
const nameA = a.groupName || '';
|
|
const nameB = b.groupName || '';
|
|
return nameA.localeCompare(nameB);
|
|
}
|
|
});
|
|
}
|
|
|