2021-09-09 16:20:33 +02:00
|
|
|
import log from '@converse/headless/log.js';
|
2021-04-14 22:56:59 +02:00
|
|
|
import { Directive, directive } from 'lit/directive.js';
|
2021-03-24 11:59:09 +01:00
|
|
|
import { RichText } from 'shared/rich-text.js';
|
2021-04-14 22:56:59 +02:00
|
|
|
import { html } from 'lit';
|
|
|
|
import { until } from 'lit/directives/until.js';
|
2020-10-16 09:02:12 +02:00
|
|
|
|
|
|
|
async function transform (t) {
|
2021-09-09 16:20:33 +02:00
|
|
|
try {
|
|
|
|
await t.addTemplates();
|
|
|
|
} catch (e) {
|
|
|
|
log.error(e);
|
|
|
|
}
|
2020-10-16 09:02:12 +02:00
|
|
|
return t.payload;
|
|
|
|
}
|
|
|
|
|
2021-04-14 22:56:59 +02:00
|
|
|
class StylingDirective extends Directive {
|
2021-09-09 16:20:33 +02:00
|
|
|
render (txt, offset, options) { // eslint-disable-line class-methods-use-this
|
2021-06-17 12:31:38 +02:00
|
|
|
const t = new RichText(
|
|
|
|
txt,
|
|
|
|
offset,
|
2021-06-17 14:37:43 +02:00
|
|
|
Object.assign(options, { 'show_images': false, 'embed_videos': false, 'embed_audio': false })
|
2021-06-17 12:31:38 +02:00
|
|
|
);
|
2021-04-14 22:56:59 +02:00
|
|
|
return html`${until(transform(t), html`${t}`)}`;
|
|
|
|
}
|
2020-10-16 09:02:12 +02:00
|
|
|
}
|
|
|
|
|
2021-04-14 22:56:59 +02:00
|
|
|
export const renderStylingDirectiveBody = directive(StylingDirective);
|