UNPKG

matrix-react-sdk

Version:
45 lines (42 loc) 5.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useComposerFunctions = useComposerFunctions; var _react = require("react"); var _selection = require("../utils/selection"); /* Copyright 2024 New Vector Ltd. Copyright 2022 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ function useComposerFunctions(ref, setContent) { return (0, _react.useMemo)(() => ({ clear: () => { if (ref.current) { ref.current.innerHTML = ""; } }, insertText: text => { const selection = document.getSelection(); if (ref.current && selection) { const content = ref.current.innerHTML; const { anchorOffset, focusOffset } = selection; ref.current.innerHTML = `${content.slice(0, anchorOffset)}${text}${content.slice(focusOffset)}`; (0, _selection.setSelection)({ anchorNode: ref.current.firstChild, anchorOffset: anchorOffset + text.length, focusNode: ref.current.firstChild, focusOffset: focusOffset + text.length, isForward: true }); setContent(ref.current.innerHTML); } } }), [ref, setContent]); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3NlbGVjdGlvbiIsInVzZUNvbXBvc2VyRnVuY3Rpb25zIiwicmVmIiwic2V0Q29udGVudCIsInVzZU1lbW8iLCJjbGVhciIsImN1cnJlbnQiLCJpbm5lckhUTUwiLCJpbnNlcnRUZXh0IiwidGV4dCIsInNlbGVjdGlvbiIsImRvY3VtZW50IiwiZ2V0U2VsZWN0aW9uIiwiY29udGVudCIsImFuY2hvck9mZnNldCIsImZvY3VzT2Zmc2V0Iiwic2xpY2UiLCJzZXRTZWxlY3Rpb24iLCJhbmNob3JOb2RlIiwiZmlyc3RDaGlsZCIsImxlbmd0aCIsImZvY3VzTm9kZSIsImlzRm9yd2FyZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvaG9va3MvdXNlQ29tcG9zZXJGdW5jdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IHsgUmVmT2JqZWN0LCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IHNldFNlbGVjdGlvbiB9IGZyb20gXCIuLi91dGlscy9zZWxlY3Rpb25cIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUNvbXBvc2VyRnVuY3Rpb25zKFxuICAgIHJlZjogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PixcbiAgICBzZXRDb250ZW50OiAoY29udGVudDogc3RyaW5nKSA9PiB2b2lkLFxuKToge1xuICAgIGNsZWFyKCk6IHZvaWQ7XG4gICAgaW5zZXJ0VGV4dCh0ZXh0OiBzdHJpbmcpOiB2b2lkO1xufSB7XG4gICAgcmV0dXJuIHVzZU1lbW8oXG4gICAgICAgICgpID0+ICh7XG4gICAgICAgICAgICBjbGVhcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICByZWYuY3VycmVudC5pbm5lckhUTUwgPSBcIlwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbnNlcnRUZXh0OiAodGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAocmVmLmN1cnJlbnQgJiYgc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSByZWYuY3VycmVudC5pbm5lckhUTUw7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgYW5jaG9yT2Zmc2V0LCBmb2N1c09mZnNldCB9ID0gc2VsZWN0aW9uO1xuICAgICAgICAgICAgICAgICAgICByZWYuY3VycmVudC5pbm5lckhUTUwgPSBgJHtjb250ZW50LnNsaWNlKDAsIGFuY2hvck9mZnNldCl9JHt0ZXh0fSR7Y29udGVudC5zbGljZShmb2N1c09mZnNldCl9YDtcbiAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvck5vZGU6IHJlZi5jdXJyZW50LmZpcnN0Q2hpbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmNob3JPZmZzZXQ6IGFuY2hvck9mZnNldCArIHRleHQubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNOb2RlOiByZWYuY3VycmVudC5maXJzdENoaWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXNPZmZzZXQ6IGZvY3VzT2Zmc2V0ICsgdGV4dC5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0ZvcndhcmQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzZXRDb250ZW50KHJlZi5jdXJyZW50LmlubmVySFRNTCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIFtyZWYsIHNldENvbnRlbnRdLFxuICAgICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQVFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQVZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQU1PLFNBQVNFLG9CQUFvQkEsQ0FDaENDLEdBQThCLEVBQzlCQyxVQUFxQyxFQUl2QztFQUNFLE9BQU8sSUFBQUMsY0FBTyxFQUNWLE9BQU87SUFDSEMsS0FBSyxFQUFFQSxDQUFBLEtBQU07TUFDVCxJQUFJSCxHQUFHLENBQUNJLE9BQU8sRUFBRTtRQUNiSixHQUFHLENBQUNJLE9BQU8sQ0FBQ0MsU0FBUyxHQUFHLEVBQUU7TUFDOUI7SUFDSixDQUFDO0lBQ0RDLFVBQVUsRUFBR0MsSUFBWSxJQUFLO01BQzFCLE1BQU1DLFNBQVMsR0FBR0MsUUFBUSxDQUFDQyxZQUFZLENBQUMsQ0FBQztNQUV6QyxJQUFJVixHQUFHLENBQUNJLE9BQU8sSUFBSUksU0FBUyxFQUFFO1FBQzFCLE1BQU1HLE9BQU8sR0FBR1gsR0FBRyxDQUFDSSxPQUFPLENBQUNDLFNBQVM7UUFDckMsTUFBTTtVQUFFTyxZQUFZO1VBQUVDO1FBQVksQ0FBQyxHQUFHTCxTQUFTO1FBQy9DUixHQUFHLENBQUNJLE9BQU8sQ0FBQ0MsU0FBUyxHQUFHLEdBQUdNLE9BQU8sQ0FBQ0csS0FBSyxDQUFDLENBQUMsRUFBRUYsWUFBWSxDQUFDLEdBQUdMLElBQUksR0FBR0ksT0FBTyxDQUFDRyxLQUFLLENBQUNELFdBQVcsQ0FBQyxFQUFFO1FBQy9GLElBQUFFLHVCQUFZLEVBQUM7VUFDVEMsVUFBVSxFQUFFaEIsR0FBRyxDQUFDSSxPQUFPLENBQUNhLFVBQVU7VUFDbENMLFlBQVksRUFBRUEsWUFBWSxHQUFHTCxJQUFJLENBQUNXLE1BQU07VUFDeENDLFNBQVMsRUFBRW5CLEdBQUcsQ0FBQ0ksT0FBTyxDQUFDYSxVQUFVO1VBQ2pDSixXQUFXLEVBQUVBLFdBQVcsR0FBR04sSUFBSSxDQUFDVyxNQUFNO1VBQ3RDRSxTQUFTLEVBQUU7UUFDZixDQUFDLENBQUM7UUFDRm5CLFVBQVUsQ0FBQ0QsR0FBRyxDQUFDSSxPQUFPLENBQUNDLFNBQVMsQ0FBQztNQUNyQztJQUNKO0VBQ0osQ0FBQyxDQUFDLEVBQ0YsQ0FBQ0wsR0FBRyxFQUFFQyxVQUFVLENBQ3BCLENBQUM7QUFDTCIsImlnbm9yZUxpc3QiOltdfQ==