mirror of
https://github.com/jkingsman/Remote-Terminal-for-MeshCore.git
synced 2026-03-28 17:43:05 +01:00
39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
/**
|
|
* Parse sender from channel message text.
|
|
* Channel messages have format "sender: message".
|
|
*/
|
|
export function parseSenderFromText(text: string): { sender: string | null; content: string } {
|
|
const colonIndex = text.indexOf(': ');
|
|
if (colonIndex > 0 && colonIndex < 50) {
|
|
const potentialSender = text.substring(0, colonIndex);
|
|
// Check for colon in potential sender (would indicate it's not a simple name)
|
|
if (!potentialSender.includes(':')) {
|
|
return {
|
|
sender: potentialSender,
|
|
content: text.substring(colonIndex + 2),
|
|
};
|
|
}
|
|
}
|
|
return { sender: null, content: text };
|
|
}
|
|
|
|
/**
|
|
* Format a Unix timestamp to a time string.
|
|
* Shows date for messages not from today.
|
|
*/
|
|
export function formatTime(timestamp: number): string {
|
|
const date = new Date(timestamp * 1000);
|
|
const now = new Date();
|
|
const isToday = date.toDateString() === now.toDateString();
|
|
|
|
const time = date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', hour12: false });
|
|
|
|
if (isToday) {
|
|
return time;
|
|
}
|
|
|
|
// Show short date for older messages
|
|
const dateStr = date.toLocaleDateString([], { month: 'short', day: 'numeric' });
|
|
return `${dateStr} ${time}`;
|
|
}
|