show last messae and date

This commit is contained in:
Peter Maquiran
2024-08-30 15:31:29 +01:00
parent d6a08c6264
commit 3edbcc194e
13 changed files with 160 additions and 36 deletions
+61
View File
@@ -0,0 +1,61 @@
import { IRoom, RoomEntitySchema } from "src/app/core/chat/entity/group";
export class RoomViewModel implements IRoom {
id: typeof RoomEntitySchema._input.id
roomName: typeof RoomEntitySchema._input.roomName
createdBy: typeof RoomEntitySchema._input.createdBy
createdAt: typeof RoomEntitySchema._input.createdAt
expirationDate: typeof RoomEntitySchema._input.expirationDate
roomType: typeof RoomEntitySchema._input.roomType
members: typeof RoomEntitySchema._input.members
messages: typeof RoomEntitySchema._input.messages
displayDate = ''
constructor(model: IRoom) {
Object.assign(this, model)
this.formatarData()
}
formatarData() {
if(this.messages?.[0]?.sentAt) {
const dataMensagem = new Date(this.messages[0].sentAt);
const agora = new Date();
const hoje = new Date(agora.getFullYear(), agora.getMonth(), agora.getDate());
const ontem = new Date(hoje);
ontem.setDate(hoje.getDate() - 1);
const diasDaSemana = ["Domingo", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sexta-feira", "Sábado"];
// Verifica se a mensagem foi enviada hoje
if (dataMensagem >= hoje) {
this.displayDate = dataMensagem.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', hour12: false });
return
}
// Verifica se a mensagem foi enviada ontem
if (dataMensagem >= ontem && dataMensagem < hoje) {
this.displayDate = "Ontem";
return
}
// Verifica se a mensagem foi enviada nesta semana
const inicioDaSemana = new Date(hoje);
inicioDaSemana.setDate(hoje.getDate() - hoje.getDay());
if (dataMensagem >= inicioDaSemana) {
this.displayDate = diasDaSemana[dataMensagem.getDay()];
return
}
// Se a mensagem foi enviada antes desta semana
this.displayDate = dataMensagem.toLocaleDateString("pt-BR"); // Formato: DD/MM/AAAA
return
}
}
}