update and fix messanger
This commit is contained in:
33
apps/frontend/lib/chat-date-utils.ts
Normal file
33
apps/frontend/lib/chat-date-utils.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
export function getChatDateKey(value: string | Date) {
|
||||
const date = typeof value === 'string' ? new Date(value) : value;
|
||||
return `${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`;
|
||||
}
|
||||
|
||||
export function formatChatDateLabel(value: string, now = new Date()) {
|
||||
const date = new Date(value);
|
||||
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
|
||||
const target = new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
||||
const diffDays = Math.round((today.getTime() - target.getTime()) / 86_400_000);
|
||||
|
||||
if (diffDays === 0) return 'Сегодня';
|
||||
if (diffDays === 1) return 'Вчера';
|
||||
|
||||
return new Intl.DateTimeFormat('ru-RU', {
|
||||
day: '2-digit',
|
||||
month: '2-digit',
|
||||
year: 'numeric'
|
||||
}).format(date);
|
||||
}
|
||||
|
||||
export function shouldShowChatDateSeparator(currentCreatedAt: string, previousCreatedAt?: string) {
|
||||
if (!previousCreatedAt) return true;
|
||||
return getChatDateKey(currentCreatedAt) !== getChatDateKey(previousCreatedAt);
|
||||
}
|
||||
|
||||
export function toDateInputValue(value: string) {
|
||||
const date = new Date(value);
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||
const day = String(date.getDate()).padStart(2, '0');
|
||||
return `${year}-${month}-${day}`;
|
||||
}
|
||||
Reference in New Issue
Block a user