{#if mensagens?.data && mensagens.data.length > 0} {@const gruposPorDia = agruparMensagensPorDia(mensagens.data)} {#each Object.entries(gruposPorDia) as [dia, mensagensDia]}
{dia}
{#each mensagensDia as mensagem (mensagem._id)} {@const remetenteIdStr = (() => { // Priorizar remetenteId direto da mensagem if (mensagem.remetenteId) { return String(mensagem.remetenteId).trim(); } // Fallback para remetente._id if (mensagem.remetente?._id) { return String(mensagem.remetente._id).trim(); } return null; })()} {@const isMinha = usuarioAtualId && remetenteIdStr && remetenteIdStr === usuarioAtualId}
{#if isMinha}

Você

{:else}

{mensagem.remetente?.nome || 'Usuário'}

{/if}
{#if mensagem.mensagemOriginal}

{mensagem.mensagemOriginal.remetente?.nome || 'Usuário'}

{mensagem.mensagemOriginal.deletada ? 'Mensagem deletada' : mensagem.mensagemOriginal.conteudo}

{/if} {#if mensagemEditando?._id === mensagem._id}
{:else if mensagem.deletada}

Mensagem deletada

{:else if mensagem.tipo === 'texto'} {:else if mensagem.tipo === 'imagem'}
{mensagem.arquivoNome}
{#if mensagem.conteudo}

{mensagem.conteudo}

{/if} {:else if mensagem.tipo === 'arquivo'}

{mensagem.arquivoNome}

{#if mensagem.arquivoTamanho}

{(mensagem.arquivoTamanho / 1024 / 1024).toFixed(2)} MB

{/if}
{/if} {#if !mensagem.deletada && getEmojisReacao(mensagem).length > 0}
{#each getEmojisReacao(mensagem) as reacao} {/each}
{/if} {#if !mensagem.deletada} {/if}

{formatarDataMensagem(mensagem.enviadaEm)}

{#if isMinha && !mensagem.deletada && !mensagem.agendadaPara}
{#if mensagemFoiLida(mensagem)} {:else} {/if}
{/if} {#if !mensagem.deletada && !mensagem.agendadaPara}
{#if isMinha} {:else if isAdmin?.data} {/if}
{/if}
{/each} {/each} {#if digitando?.data && digitando.data.length > 0}

{digitando.data.map((u: { nome: string }) => u.nome).join(', ')} {digitando.data.length === 1 ? 'está digitando' : 'estão digitando'}...

{/if} {:else if !mensagens?.data}
{:else}

Nenhuma mensagem ainda

Envie a primeira mensagem!

{/if}
{#if showNotificationPopup && notificationMessage}
{ showNotificationPopup = false; notificationMessage = null; if (notificationTimeout) { clearTimeout(notificationTimeout); } }} >

Nova mensagem de {notificationMessage.remetente}

{notificationMessage.conteudo}

{/if}