Ajustes Gerais

This commit is contained in:
2025-12-01 14:51:15 -03:00
parent a149c5ead6
commit 8fabb4149c
4 changed files with 94 additions and 89 deletions

View File

@@ -21,6 +21,7 @@
enviadoPor: Id<'usuarios'>;
criadoEm: number;
enviadoEm: number | undefined;
erroDetalhes?: string;
destinatarioInfo: Doc<'usuarios'> | null;
templateInfo: Doc<'templatesMensagens'> | null;
}
@@ -55,10 +56,11 @@
const emailIdsArray = $derived(
Array.from(emailIdsRastreados).map((id) => id as Id<'notificacoesEmail'>)
);
// Usar função para evitar execução quando array está vazio
const emailsStatusQuery = useQuery(api.email.buscarEmailsPorIds, () =>
// Usar $derived para calcular argumentos da query condicionalmente
const emailsStatusArgs = $derived(
emailIdsArray.length === 0 ? 'skip' : { emailIds: emailIdsArray }
);
const emailsStatusQuery = useQuery(api.email.buscarEmailsPorIds, emailsStatusArgs);
// Queries para agendamentos
const agendamentosEmailQuery = useQuery(api.email.listarAgendamentosEmail, {});
@@ -248,9 +250,21 @@
variaveis: Record<string, string>
): string {
const textoComVariaveis = renderizarTemplate(template, variaveis);
// Remove quaisquer tags HTML que possam ter sido inseridas por engano
const textoPuro = textoComVariaveis.replace(/<[^>]*>/g, '');
return textoPuro;
// Remove todas as tags HTML (incluindo quebras de linha HTML)
let textoPuro = textoComVariaveis.replace(/<[^>]*>/g, '');
// Converte entidades HTML comuns para texto normal
textoPuro = textoPuro
.replace(/&nbsp;/g, ' ')
.replace(/&amp;/g, '&')
.replace(/&lt;/g, '<')
.replace(/&gt;/g, '>')
.replace(/&quot;/g, '"')
.replace(/&#39;/g, "'")
.replace(/&apos;/g, "'")
.replace(/&[a-zA-Z0-9#]+;/g, ''); // Remove outras entidades HTML
// Normaliza espaços múltiplos (mas preserva quebras de linha reais)
textoPuro = textoPuro.replace(/[ \t]+/g, ' ').replace(/[ \t]*\n[ \t]*/g, '\n');
return textoPuro.trim();
}
// Função para mostrar mensagens
@@ -726,9 +740,10 @@
});
if (conversaId) {
// Para chat, sempre remover HTML dos templates
const mensagem =
usarTemplate && templateSelecionado
? renderizarTemplate(templateSelecionado.corpo, {
? renderizarTemplateChatLocal(templateSelecionado.corpo, {
nome: destinatario.nome,
matricula: destinatario.matricula || ''
})
@@ -1999,6 +2014,7 @@
</svg>
<span>Para enviar emails, certifique-se de configurar o SMTP em Configurações de Email.</span>
</div>
</div>
</div>
<!-- Modal Novo Template -->