mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-20 05:16:07 +00:00
show last messae and date
This commit is contained in:
@@ -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
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user