matrix-react-sdk
Version:
SDK for matrix.org using React
39 lines (37 loc) • 6.46 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = SyntaxHighlight;
var _react = _interopRequireDefault(require("react"));
var _useAsyncMemo = require("../../../hooks/useAsyncMemo");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.
Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
function SyntaxHighlight({
children,
language
}) {
const highlighted = (0, _useAsyncMemo.useAsyncMemo)(async () => {
const {
default: highlight
} = await Promise.resolve().then(() => _interopRequireWildcard(require("highlight.js")));
return language ? highlight.highlight(children, {
language
}) : highlight.highlightAuto(children);
}, [language, children]);
return /*#__PURE__*/_react.default.createElement("pre", {
className: `mx_SyntaxHighlight hljs language-${highlighted?.language}`
}, highlighted ? /*#__PURE__*/_react.default.createElement("code", {
dangerouslySetInnerHTML: {
__html: highlighted.value
}
}) : children);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl91c2VBc3luY01lbW8iLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlN5bnRheEhpZ2hsaWdodCIsImNoaWxkcmVuIiwibGFuZ3VhZ2UiLCJoaWdobGlnaHRlZCIsInVzZUFzeW5jTWVtbyIsImhpZ2hsaWdodCIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsImhpZ2hsaWdodEF1dG8iLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJfX2h0bWwiLCJ2YWx1ZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL1N5bnRheEhpZ2hsaWdodC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE3IE1pY2hhZWwgVGVsYXR5bnNraSA8N3QzY2hndXlAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IHVzZUFzeW5jTWVtbyB9IGZyb20gXCIuLi8uLi8uLi9ob29rcy91c2VBc3luY01lbW9cIjtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgICBsYW5ndWFnZT86IHN0cmluZztcbiAgICBjaGlsZHJlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTeW50YXhIaWdobGlnaHQoeyBjaGlsZHJlbiwgbGFuZ3VhZ2UgfTogUHJvcHMpOiBKU1guRWxlbWVudCB7XG4gICAgY29uc3QgaGlnaGxpZ2h0ZWQgPSB1c2VBc3luY01lbW8oYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCB7IGRlZmF1bHQ6IGhpZ2hsaWdodCB9ID0gYXdhaXQgaW1wb3J0KFwiaGlnaGxpZ2h0LmpzXCIpO1xuICAgICAgICByZXR1cm4gbGFuZ3VhZ2UgPyBoaWdobGlnaHQuaGlnaGxpZ2h0KGNoaWxkcmVuLCB7IGxhbmd1YWdlIH0pIDogaGlnaGxpZ2h0LmhpZ2hsaWdodEF1dG8oY2hpbGRyZW4pO1xuICAgIH0sIFtsYW5ndWFnZSwgY2hpbGRyZW5dKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxwcmUgY2xhc3NOYW1lPXtgbXhfU3ludGF4SGlnaGxpZ2h0IGhsanMgbGFuZ3VhZ2UtJHtoaWdobGlnaHRlZD8ubGFuZ3VhZ2V9YH0+XG4gICAgICAgICAgICB7aGlnaGxpZ2h0ZWQgPyA8Y29kZSBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IGhpZ2hsaWdodGVkLnZhbHVlIH19IC8+IDogY2hpbGRyZW59XG4gICAgICAgIDwvcHJlPlxuICAgICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFTQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxhQUFBLEdBQUFELE9BQUE7QUFBMkQsU0FBQUUseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQUksd0JBQUFKLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsZUFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxXQUFBTSxPQUFBLEVBQUFOLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsVUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFSLENBQUEsT0FBQVMsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZixDQUFBLG9CQUFBZSxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBakIsQ0FBQSxFQUFBZSxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFkLENBQUEsRUFBQWUsQ0FBQSxVQUFBRyxDQUFBLEtBQUFBLENBQUEsQ0FBQVYsR0FBQSxJQUFBVSxDQUFBLENBQUFDLEdBQUEsSUFBQVAsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBRyxDQUFBLElBQUFULENBQUEsQ0FBQU0sQ0FBQSxJQUFBZixDQUFBLENBQUFlLENBQUEsWUFBQU4sQ0FBQSxDQUFBSCxPQUFBLEdBQUFOLENBQUEsRUFBQUcsQ0FBQSxJQUFBQSxDQUFBLENBQUFnQixHQUFBLENBQUFuQixDQUFBLEVBQUFTLENBQUEsR0FBQUEsQ0FBQSxJQVgzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBV2UsU0FBU1csZUFBZUEsQ0FBQztFQUFFQyxRQUFRO0VBQUVDO0FBQWdCLENBQUMsRUFBZTtFQUNoRixNQUFNQyxXQUFXLEdBQUcsSUFBQUMsMEJBQVksRUFBQyxZQUFZO0lBQ3pDLE1BQU07TUFBRWxCLE9BQU8sRUFBRW1CO0lBQVUsQ0FBQyxHQUFHLE1BQUFDLE9BQUEsQ0FBQUMsT0FBQSxHQUFBQyxJQUFBLE9BQUF4Qix1QkFBQSxDQUFBUCxPQUFBLENBQWEsY0FBYyxHQUFDO0lBQzNELE9BQU95QixRQUFRLEdBQUdHLFNBQVMsQ0FBQ0EsU0FBUyxDQUFDSixRQUFRLEVBQUU7TUFBRUM7SUFBUyxDQUFDLENBQUMsR0FBR0csU0FBUyxDQUFDSSxhQUFhLENBQUNSLFFBQVEsQ0FBQztFQUNyRyxDQUFDLEVBQUUsQ0FBQ0MsUUFBUSxFQUFFRCxRQUFRLENBQUMsQ0FBQztFQUV4QixvQkFDSTFCLE1BQUEsQ0FBQVcsT0FBQSxDQUFBd0IsYUFBQTtJQUFLQyxTQUFTLEVBQUUsb0NBQW9DUixXQUFXLEVBQUVELFFBQVE7RUFBRyxHQUN2RUMsV0FBVyxnQkFBRzVCLE1BQUEsQ0FBQVcsT0FBQSxDQUFBd0IsYUFBQTtJQUFNRSx1QkFBdUIsRUFBRTtNQUFFQyxNQUFNLEVBQUVWLFdBQVcsQ0FBQ1c7SUFBTTtFQUFFLENBQUUsQ0FBQyxHQUFHYixRQUNqRixDQUFDO0FBRWQiLCJpZ25vcmVMaXN0IjpbXX0=