conversejs覆盖不工作时,我试图在按摩显示图标



我试图覆盖renderActions功能,但它不工作,我试图在每个按摩添加图标,我已经尝试像下面的代码:

export const restrictUserOnLoadPlugin = () => {
window.converse.plugins.add('restrict-user', {
overrides: {
renderActions: function () {
console.log('in');
const kick = {
i18n_text: 'kick',
handler: (e: any) => console.log(e),
button_class: 'chat-msg__action-edit',
icon_class: 'fa fa-pencil-alt',
name: 'kick',
};
return `<converse-dropdown class="chat-msg__actions" .items=${kick}></converse-dropdown>`;
},
},
});
};

不鼓励使用覆盖,应该尽可能避免使用。它们只与在_converse对象上设置为属性的类或对象一起工作,这不是web组件的情况,这是你在这里试图覆盖的。所以它不会工作。

您应该使用getMessageActionButtons钩子来添加或更新按钮。https://conversejs.org/docs/html/api/-_converse.html事件:getMessageActionButtons

下面是描述钩子工作原理的文档:https://github.com/conversejs/converse.js/blob/3b124cfdceb684ccbe3d20f7ea5cde20a1189f0b/docs/source/plugin_development.rst钩子

所以你的代码应该是这样的:
api.listen.on('getMessageActionButtons', (chatbox, buttons) => {
buttons.forEach((button) => {
button.icon_class = "my-icon-class";
});
return buttons;
});

相关内容

  • 没有找到相关文章

最新更新