Obrigado, sim, isso é uma peculiaridade do Popper, a biblioteca que o seletor de emojis usa para posicionamento. Atualizei o uso do Popper para resolver isso.
Primeiramente, um enorme agradecimento a @angus
por assumir este plugin, que tem sido um dos nossos favoritos há algum tempo.
Atualizei para a versão mais recente e parece que quebrou as mensagens privadas (PMs).
Uncaught TypeError: Cannot read property 'map' of undefined
at _retort-2c5f89abb14744b92588a2ea05689cf5f5fe97d5b9094543abfacf0b1281182f.js:57
at _application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82147
at Array.map (<anonymous>)
at h (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82146)
at i.html (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:78359)
at i.value (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82625)
at i.value (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82345)
at s (_vendor-66c7c54e4c3d88ab9a314688832cc04210ab4ae3401f48fb186a7134473d0d0a.js:20534)
at t.exports (_vendor-66c7c54e4c3d88ab9a314688832cc04210ab4ae3401f48fb186a7134473d0d0a.js:20521)
at e (_vendor-66c7c54e4c3d88ab9a314688832cc04210ab4ae3401f48fb186a7134473d0d0a.js:19890)
_retort-2c5f89abb14744b92588a2ea05689cf5f5fe97d5b9094543abfacf0b1281182f.js:368 Uncaught TypeError: Cannot read property 'toString' of undefined
at t.disabledFor (_retort-2c5f89abb14744b92588a2ea05689cf5f5fe97d5b9094543abfacf0b1281182f.js:368)
at _retort-2c5f89abb14744b92588a2ea05689cf5f5fe97d5b9094543abfacf0b1281182f.js:51
at _application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82147
at Array.map (<anonymous>)
at h (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82146)
at i.html (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:78359)
at i.value (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82625)
at i.value (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82345)
at s (_vendor-66c7c54e4c3d88ab9a314688832cc04210ab4ae3401f48fb186a7134473d0d0a.js:20534)
at t.exports (_vendor-66c7c54e4c3d88ab9a314688832cc04210ab4ae3401f48fb186a7134473d0d0a.js:20521)
Obrigado, hoje tivemos um PR removendo o lodash, outra depreciação.
Deveria estar resolvido agora:
Por favor, atualize e me avise como ficou.
Parece que está funcionando bem agora, muito obrigado! ![]()
Aplicamos este CSS para deixar as coisas um pouco melhores para nós
Desktop
.emoji-picker.has-limited-set img.emoji {
width: 40px !important;
height: 40px !important;
}
.post-retort {
margin: 0px 2px;
}
.emoji-picker.has-limited-set .limited-emoji-set {
flex-wrap: wrap;
}
.emoji-picker {
min-height: 80px;
max-width: 400px;
}
Mobile
.emoji-picker.has-limited-set .limited-emoji-set {
flex-wrap: wrap !important;
}
.emoji-picker {
min-width: 100% !important;
}
Acabei de reconstruir o Discourse para atualizar o plugin. Mas agora, o ícone do plugin está ausente, assim como todos os meus componentes de tema. Não sei se está relacionado, mas tenho esta mensagem no console do navegador:
Edição: após desativar o Retort, todos os componentes de tema voltaram, então realmente parece haver uma conexão.
Estou vendo esse erro com frequência no meu site e, após algum tempo, o site inteiro fica lento/travado para mim.
No modo de segurança, tudo está funcionando bem, o site é rápido e responsivo.
Usando o Google Chrome: Versão 85.0.4183.83 (Versão Oficial) (64 bits)
O Erro:
Uncaught TypeError: Cannot read property 'map' of undefined
at retort-11c49191cf3e1f7f570d8808ade67b5d7fcfdfe612b792c49f064baacdebadc7.js:1
at application-acabe31b416e73071c4f82b77bdadcf4a5fc525109638830baeeacd14e3a3656.js:1
at Array.map (<anonymous>)
at h (application-acabe31b416e73071c4f82b77bdadcf4a5fc525109638830baeeacd14e3a3656.js:1)
at i.html (application-acabe31b416e73071c4f82b77bdadcf4a5fc525109638830baeeacd14e3a3656.js:1)
at i.value (application-acabe31b416e73071c4f82b77bdadcf4a5fc525109638830baeeacd14e3a3656.js:1)
at i.value (application-acabe31b416e73071c4f82b77bdadcf4a5fc525109638830baeeacd14e3a3656.js:1)
at s (vendor-bf8061112a1b547c1b596d16d89c9a42af976a43984f9eacd40a8c690c0f30b2.js:1)
at t.exports (vendor-bf8061112a1b547c1b596d16d89c9a42af976a43984f9eacd40a8c690c0f30b2.js:1)
at e (vendor-bf8061112a1b547c1b596d16d89c9a42af976a43984f9eacd40a8c690c0f30b2.js:1)
if (!v.default.disabledFor(e))
return v.default.storeWidget(r),
o.retorts.map(function(e) { <<<<< ERRO AQUI
var t = e.usernames
, i = e.emoji;
return r.attach("retort-toggle", {
post: o,
usernames: t,
emoji: i
})
Alguns problemas de CSS e como os resolvi para nosso uso pessoal
Desktop
O primeiro não é tanto um problema, mas poderia ser. Raramente temos tantos comentários em uma postagem, mas você deve saber que, se ultrapassar 8 comentários, os Controles da Postagem serão quebrados.

Aqui está com 8 comentários, parece ótimo.

CSS Usado para Desktop
.post-retort {
margin: 0px 2px;
border: 1px solid #333;
border-radius: 5px;
padding: 3px;
background-color: #666;
}
Celular: iPhone SE Gen1
Mobile
O número máximo de comentários no momento no mobile, sem quebrar os controles da postagem, pelo menos ao usar uma tela menor, é 1.
Com mais de um comentário, os controles da postagem são movidos para fora da tela.
Veja como fica com nossas alterações de CSS.
CSS para Mobile
.post-retort {
border: 1px solid #333;
border-radius: 5px;
padding: 3px;
background-color: #666;
margin: 2px 2px;
float: none;
}
Você pode obter o mesmo visual no Desktop que no Mobile usando o CSS para Mobile acima. Isso colocará os comentários acima dos controles da postagem.

Nós adoramos esse plugin e ele é muito usado em nosso fórum. Obrigado por assumir isso, @angus ![]()
Eu também recebo esse erro. Os componentes do meu tema ainda estão funcionando, mas o seletor de retort não aparece em lugar nenhum (já que o JS quebrou).
Atualizamos nosso Discourse para a versão 2.5.1 e então instalamos este plugin pela primeira vez.
De alguma forma, consegui resolver meu problema reconstruindo o aplicativo hoje.
Talvez você possa tentar isso no seu lado?
Eu também estou na versão estável (2.5.1).
É, eu reportei o problema no rastreador de issues do GitHub deles e foi corrigido no dia seguinte, muito legal ![]()
E aí, pessoal! Amamos esse plugin, mas após a última atualização, estamos vendo emojis de pele branca em vez dos amarelos neutros no nosso fórum da comunidade.
Não alteramos nenhuma configuração. Esta é nossa configuração atual:
Isso é esperado? É possível alterar?
Obrigado!!
Olá, pessoal,
Sou novo no Discourse. Instalei o Discourse usando o código-fonte do GitHub e ele já está funcionando online.
Hoje instalei o Retort e pude ver na seção Admin-Plugins que o novo plugin Retort foi instalado e ativado.
Quando criei um novo tópico e o revisei usando outra conta, na esperança de poder usar o novo plugin Retort, não consegui ver o botão esperado…
Voltei ao Admin e confirmei que as opções do plugin estavam configuradas conforme descrito no manual. Veja a imagem abaixo.
Como só posso postar uma imagem aqui, combinei as três imagens em uma só.
Portanto, peço a gentileza de me ajudar a descobrir o que está errado. Qualquer sugestão será muito apreciada. Muito obrigado antecipadamente.
Não é esperado, não. Vou dar uma olhada no fim de semana.
@kchang Poderia abrir o console do navegador (How can I open the browsers console? – Mailster Knowledge Base) e verificar se há alguma exceção ali, seja deste ou de outros plugins ou temas que você tenha (copie e cole aqui qualquer linha vermelha do console; se forem longas, oculte-as na aba “Hide Details”).
Olá @angus,
Muito obrigado pela sua resposta. Notei várias linhas vermelhas no console; veja a imagem abaixo do Opera sempre que entro em um post.
Parece que há algo errado com o “import” na minha instalação. Instalei o Discourse usando o código-fonte, não o Docker, então sempre coloco novos plugins em discourse/plugins, pelo que instalei com sucesso outros dois plugins. Não tenho certeza se foi a maneira adequada de instalar o retort da mesma forma.
A propósito, eu já tinha @popperjs/core instalado usando o npm antes, mas não sei por que encontrei esse erro…
Obrigado.
Essa importação foi adicionada como parte da refatoração do emoji-picker que levou a uma atualização desse plugin há algum tempo (veja acima). Ela foi adicionada ao Discourse há cerca de um mês. Se você está recebendo esse erro, significa que está executando uma versão mais antiga do Discourse. Estou supondo que você esteja usando a branch stable.
Esse plugin também suporta stable, por meio do arquivo .discourse_compatibility, mas se você não estiver usando Docker, precisará instalar o plugin usando a tarefa rake plugin:pull_compatible_all, que buscará a versão correta do plugin para stable.
Se este for um ambiente de produção e você for relativamente novo no Discourse, recomendo fortemente que use o Docker. Ele gerencia vários aspectos da administração de um ambiente Discourse, como buscar a versão correta do plugin para seu ambiente, o que poderia potencialmente causar problemas para você.
Olá, eu tinha emojis restritos. Em uma atualização recente, precisei permitir emojis sem restrições para que o plugin funcionasse.
Muito obrigado, @angus. Você tem razão, estou agora na branch estável do Discourse. Vou executar a tarefa rake para baixar a versão compatível do retort. Assim que obtiver o nome de domínio, usarei a imagem Docker, que é uma forma mais conveniente. ![]()
Atualização:
Executei o rake plugin:pull_compatible_all, mas parece que minha versão estável do Discourse é muito antiga. Por isso, baixei a versão mais recente do Discourse. Agora tudo funciona perfeitamente ![]()
Obrigado novamente pela sua ajuda gentil ![]()
No tema padrão do Discourse, na visualização para dispositivos móveis, o botão de resposta é separado do restante dos ícones da barra de ferramentas inferior (curtir, compartilhar, etc.), empurrando o ícone de resposta para baixo e ficando com uma aparência realmente ruim.
Estou usando este CSS adicionado ao tema para corrigir o design. Talvez você também o encontre útil.
.mobile-view {
.topic-post nav.post-controls .actions button.reply {
margin: inherit;
margin-left: 10px;
}
nav.post-controls .actions {
text-align: right;
float: right;
display: inline-block;
}
.topic-post nav.post-controls .actions .double-button {
display: inline-flex;
}
.post-menu-area {
margin: 0;
padding-top: 15px;
}
}
Incrível, obrigado ![]()
Se precisar de ajuda para depurar isso ou tiver uma ideia do que pode ser o problema, por favor, me avise.











