@payloadcms/plugin-form-builder
Version:
Form builder plugin for Payload CMS
28 lines (27 loc) • 1.06 kB
JavaScript
import escapeHTML from 'escape-html';
import { sanitizeUrl } from 'payload/shared';
import { replaceDoubleCurlys } from '../../replaceDoubleCurlys.js';
import { convertLexicalNodesToHTML } from '../serializeLexical.js';
export const LinkHTMLConverter = {
async converter ({ converters, node, parent, submissionData }) {
const childrenText = await convertLexicalNodesToHTML({
converters,
lexicalNodes: node.children,
parent: {
...node,
parent
},
submissionData
});
let href = node.fields.linkType === 'custom' ? node.fields.url ?? '' : node.fields.doc?.value?.id ?? '';
if (submissionData) {
href = replaceDoubleCurlys(href, submissionData);
}
const safeHref = escapeHTML(sanitizeUrl(href));
return `<a href="${safeHref}"${node.fields.newTab ? ' rel="noopener noreferrer" target="_blank"' : ''}>${childrenText}</a>`;
},
nodeTypes: [
'link'
]
};
//# sourceMappingURL=link.js.map