matrix-react-sdk
Version:
SDK for matrix.org using React
47 lines (44 loc) • 6.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useEditing = useEditing;
var _react = require("react");
var _MatrixClientContext = require("../../../../../contexts/MatrixClientContext");
var _RoomContext = require("../../../../../contexts/RoomContext");
var _editing = require("../utils/editing");
var _message = require("../utils/message");
/*
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 useEditing(editorStateTransfer, initialContent) {
const roomContext = (0, _RoomContext.useRoomContext)();
const mxClient = (0, _MatrixClientContext.useMatrixClientContext)();
const [isSaveDisabled, setIsSaveDisabled] = (0, _react.useState)(true);
const [content, setContent] = (0, _react.useState)(initialContent);
const onChange = (0, _react.useCallback)(_content => {
setContent(_content);
setIsSaveDisabled(_isSaveDisabled => _isSaveDisabled && _content === initialContent);
}, [initialContent]);
const editMessageMemoized = (0, _react.useCallback)(async () => {
if (mxClient === undefined || content === undefined) {
return;
}
return (0, _message.editMessage)(content, {
roomContext,
mxClient,
editorStateTransfer
});
}, [content, roomContext, mxClient, editorStateTransfer]);
const endEditingMemoized = (0, _react.useCallback)(() => (0, _editing.endEditing)(roomContext), [roomContext]);
return {
onChange,
editMessage: editMessageMemoized,
endEditing: endEditingMemoized,
isSaveDisabled
};
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX01hdHJpeENsaWVudENvbnRleHQiLCJfUm9vbUNvbnRleHQiLCJfZWRpdGluZyIsIl9tZXNzYWdlIiwidXNlRWRpdGluZyIsImVkaXRvclN0YXRlVHJhbnNmZXIiLCJpbml0aWFsQ29udGVudCIsInJvb21Db250ZXh0IiwidXNlUm9vbUNvbnRleHQiLCJteENsaWVudCIsInVzZU1hdHJpeENsaWVudENvbnRleHQiLCJpc1NhdmVEaXNhYmxlZCIsInNldElzU2F2ZURpc2FibGVkIiwidXNlU3RhdGUiLCJjb250ZW50Iiwic2V0Q29udGVudCIsIm9uQ2hhbmdlIiwidXNlQ2FsbGJhY2siLCJfY29udGVudCIsIl9pc1NhdmVEaXNhYmxlZCIsImVkaXRNZXNzYWdlTWVtb2l6ZWQiLCJ1bmRlZmluZWQiLCJlZGl0TWVzc2FnZSIsImVuZEVkaXRpbmdNZW1vaXplZCIsImVuZEVkaXRpbmciXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9yb29tcy93eXNpd3lnX2NvbXBvc2VyL2hvb2tzL3VzZUVkaXRpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IHsgSVNlbmRFdmVudFJlc3BvbnNlIH0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL21hdHJpeFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7IHVzZU1hdHJpeENsaWVudENvbnRleHQgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vY29udGV4dHMvTWF0cml4Q2xpZW50Q29udGV4dFwiO1xuaW1wb3J0IHsgdXNlUm9vbUNvbnRleHQgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vY29udGV4dHMvUm9vbUNvbnRleHRcIjtcbmltcG9ydCBFZGl0b3JTdGF0ZVRyYW5zZmVyIGZyb20gXCIuLi8uLi8uLi8uLi8uLi91dGlscy9FZGl0b3JTdGF0ZVRyYW5zZmVyXCI7XG5pbXBvcnQgeyBlbmRFZGl0aW5nIH0gZnJvbSBcIi4uL3V0aWxzL2VkaXRpbmdcIjtcbmltcG9ydCB7IGVkaXRNZXNzYWdlIH0gZnJvbSBcIi4uL3V0aWxzL21lc3NhZ2VcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUVkaXRpbmcoXG4gICAgZWRpdG9yU3RhdGVUcmFuc2ZlcjogRWRpdG9yU3RhdGVUcmFuc2ZlcixcbiAgICBpbml0aWFsQ29udGVudD86IHN0cmluZyxcbik6IHtcbiAgICBpc1NhdmVEaXNhYmxlZDogYm9vbGVhbjtcbiAgICBvbkNoYW5nZShjb250ZW50OiBzdHJpbmcpOiB2b2lkO1xuICAgIGVkaXRNZXNzYWdlKCk6IFByb21pc2U8SVNlbmRFdmVudFJlc3BvbnNlIHwgdW5kZWZpbmVkPjtcbiAgICBlbmRFZGl0aW5nKCk6IHZvaWQ7XG59IHtcbiAgICBjb25zdCByb29tQ29udGV4dCA9IHVzZVJvb21Db250ZXh0KCk7XG4gICAgY29uc3QgbXhDbGllbnQgPSB1c2VNYXRyaXhDbGllbnRDb250ZXh0KCk7XG5cbiAgICBjb25zdCBbaXNTYXZlRGlzYWJsZWQsIHNldElzU2F2ZURpc2FibGVkXSA9IHVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFtjb250ZW50LCBzZXRDb250ZW50XSA9IHVzZVN0YXRlKGluaXRpYWxDb250ZW50KTtcbiAgICBjb25zdCBvbkNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgICAoX2NvbnRlbnQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgc2V0Q29udGVudChfY29udGVudCk7XG4gICAgICAgICAgICBzZXRJc1NhdmVEaXNhYmxlZCgoX2lzU2F2ZURpc2FibGVkKSA9PiBfaXNTYXZlRGlzYWJsZWQgJiYgX2NvbnRlbnQgPT09IGluaXRpYWxDb250ZW50KTtcbiAgICAgICAgfSxcbiAgICAgICAgW2luaXRpYWxDb250ZW50XSxcbiAgICApO1xuXG4gICAgY29uc3QgZWRpdE1lc3NhZ2VNZW1vaXplZCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKG14Q2xpZW50ID09PSB1bmRlZmluZWQgfHwgY29udGVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVkaXRNZXNzYWdlKGNvbnRlbnQsIHsgcm9vbUNvbnRleHQsIG14Q2xpZW50LCBlZGl0b3JTdGF0ZVRyYW5zZmVyIH0pO1xuICAgIH0sIFtjb250ZW50LCByb29tQ29udGV4dCwgbXhDbGllbnQsIGVkaXRvclN0YXRlVHJhbnNmZXJdKTtcblxuICAgIGNvbnN0IGVuZEVkaXRpbmdNZW1vaXplZCA9IHVzZUNhbGxiYWNrKCgpID0+IGVuZEVkaXRpbmcocm9vbUNvbnRleHQpLCBbcm9vbUNvbnRleHRdKTtcbiAgICByZXR1cm4geyBvbkNoYW5nZSwgZWRpdE1lc3NhZ2U6IGVkaXRNZXNzYWdlTWVtb2l6ZWQsIGVuZEVkaXRpbmc6IGVuZEVkaXRpbmdNZW1vaXplZCwgaXNTYXZlRGlzYWJsZWQgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBU0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsb0JBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFlBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUosT0FBQTtBQWZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQVdPLFNBQVNLLFVBQVVBLENBQ3RCQyxtQkFBd0MsRUFDeENDLGNBQXVCLEVBTXpCO0VBQ0UsTUFBTUMsV0FBVyxHQUFHLElBQUFDLDJCQUFjLEVBQUMsQ0FBQztFQUNwQyxNQUFNQyxRQUFRLEdBQUcsSUFBQUMsMkNBQXNCLEVBQUMsQ0FBQztFQUV6QyxNQUFNLENBQUNDLGNBQWMsRUFBRUMsaUJBQWlCLENBQUMsR0FBRyxJQUFBQyxlQUFRLEVBQUMsSUFBSSxDQUFDO0VBQzFELE1BQU0sQ0FBQ0MsT0FBTyxFQUFFQyxVQUFVLENBQUMsR0FBRyxJQUFBRixlQUFRLEVBQUNQLGNBQWMsQ0FBQztFQUN0RCxNQUFNVSxRQUFRLEdBQUcsSUFBQUMsa0JBQVcsRUFDdkJDLFFBQWdCLElBQUs7SUFDbEJILFVBQVUsQ0FBQ0csUUFBUSxDQUFDO0lBQ3BCTixpQkFBaUIsQ0FBRU8sZUFBZSxJQUFLQSxlQUFlLElBQUlELFFBQVEsS0FBS1osY0FBYyxDQUFDO0VBQzFGLENBQUMsRUFDRCxDQUFDQSxjQUFjLENBQ25CLENBQUM7RUFFRCxNQUFNYyxtQkFBbUIsR0FBRyxJQUFBSCxrQkFBVyxFQUFDLFlBQVk7SUFDaEQsSUFBSVIsUUFBUSxLQUFLWSxTQUFTLElBQUlQLE9BQU8sS0FBS08sU0FBUyxFQUFFO01BQ2pEO0lBQ0o7SUFDQSxPQUFPLElBQUFDLG9CQUFXLEVBQUNSLE9BQU8sRUFBRTtNQUFFUCxXQUFXO01BQUVFLFFBQVE7TUFBRUo7SUFBb0IsQ0FBQyxDQUFDO0VBQy9FLENBQUMsRUFBRSxDQUFDUyxPQUFPLEVBQUVQLFdBQVcsRUFBRUUsUUFBUSxFQUFFSixtQkFBbUIsQ0FBQyxDQUFDO0VBRXpELE1BQU1rQixrQkFBa0IsR0FBRyxJQUFBTixrQkFBVyxFQUFDLE1BQU0sSUFBQU8sbUJBQVUsRUFBQ2pCLFdBQVcsQ0FBQyxFQUFFLENBQUNBLFdBQVcsQ0FBQyxDQUFDO0VBQ3BGLE9BQU87SUFBRVMsUUFBUTtJQUFFTSxXQUFXLEVBQUVGLG1CQUFtQjtJQUFFSSxVQUFVLEVBQUVELGtCQUFrQjtJQUFFWjtFQUFlLENBQUM7QUFDekciLCJpZ25vcmVMaXN0IjpbXX0=