matrix-react-sdk
Version:
SDK for matrix.org using React
61 lines (59 loc) • 10 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _languageHandler = require("../../../languageHandler");
var _strings = require("../../../utils/strings");
var _AccessibleButton = _interopRequireDefault(require("./AccessibleButton"));
const _excluded = ["children", "getTextToCopy", "border", "className"];
/*
Copyright 2024 New Vector Ltd.
Copyright 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2019-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 _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; }
const CopyableText = _ref => {
let {
children,
getTextToCopy,
border = true,
className
} = _ref,
props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
const [tooltip, setTooltip] = (0, _react.useState)(undefined);
const onCopyClickInternal = async e => {
e.preventDefault();
const text = getTextToCopy();
const successful = !!text && (await (0, _strings.copyPlaintext)(text));
setTooltip(successful ? (0, _languageHandler._t)("common|copied") : (0, _languageHandler._t)("error|failed_copy"));
};
const onHideTooltip = () => {
if (tooltip) {
setTooltip(undefined);
}
};
const combinedClassName = (0, _classnames.default)("mx_CopyableText", className, {
mx_CopyableText_border: border
});
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
className: combinedClassName
}, props), children, /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, {
title: tooltip ?? (0, _languageHandler._t)("action|copy"),
onClick: onCopyClickInternal,
className: "mx_CopyableText_copyButton",
onTooltipOpenChange: open => {
if (!open) onHideTooltip();
}
}));
};
var _default = exports.default = CopyableText;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbGFuZ3VhZ2VIYW5kbGVyIiwiX3N0cmluZ3MiLCJfQWNjZXNzaWJsZUJ1dHRvbiIsIl9leGNsdWRlZCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkNvcHlhYmxlVGV4dCIsIl9yZWYiLCJjaGlsZHJlbiIsImdldFRleHRUb0NvcHkiLCJib3JkZXIiLCJjbGFzc05hbWUiLCJwcm9wcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJ0b29sdGlwIiwic2V0VG9vbHRpcCIsInVzZVN0YXRlIiwidW5kZWZpbmVkIiwib25Db3B5Q2xpY2tJbnRlcm5hbCIsInByZXZlbnREZWZhdWx0IiwidGV4dCIsInN1Y2Nlc3NmdWwiLCJjb3B5UGxhaW50ZXh0IiwiX3QiLCJvbkhpZGVUb29sdGlwIiwiY29tYmluZWRDbGFzc05hbWUiLCJjbGFzc05hbWVzIiwibXhfQ29weWFibGVUZXh0X2JvcmRlciIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJ0aXRsZSIsIm9uQ2xpY2siLCJvblRvb2x0aXBPcGVuQ2hhbmdlIiwib3BlbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL0NvcHlhYmxlVGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMTktMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCI7XG5cbmltcG9ydCB7IF90IH0gZnJvbSBcIi4uLy4uLy4uL2xhbmd1YWdlSGFuZGxlclwiO1xuaW1wb3J0IHsgY29weVBsYWludGV4dCB9IGZyb20gXCIuLi8uLi8uLi91dGlscy9zdHJpbmdzXCI7XG5pbXBvcnQgQWNjZXNzaWJsZUJ1dHRvbiwgeyBCdXR0b25FdmVudCB9IGZyb20gXCIuL0FjY2Vzc2libGVCdXR0b25cIjtcblxuaW50ZXJmYWNlIElQcm9wcyBleHRlbmRzIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PiB7XG4gICAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gICAgZ2V0VGV4dFRvQ29weTogKCkgPT4gc3RyaW5nIHwgbnVsbDtcbiAgICBib3JkZXI/OiBib29sZWFuO1xuICAgIGNsYXNzTmFtZT86IHN0cmluZztcbn1cblxuY29uc3QgQ29weWFibGVUZXh0OiBSZWFjdC5GQzxJUHJvcHM+ID0gKHsgY2hpbGRyZW4sIGdldFRleHRUb0NvcHksIGJvcmRlciA9IHRydWUsIGNsYXNzTmFtZSwgLi4ucHJvcHMgfSkgPT4ge1xuICAgIGNvbnN0IFt0b29sdGlwLCBzZXRUb29sdGlwXSA9IHVzZVN0YXRlPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAgIGNvbnN0IG9uQ29weUNsaWNrSW50ZXJuYWwgPSBhc3luYyAoZTogQnV0dG9uRXZlbnQpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCB0ZXh0ID0gZ2V0VGV4dFRvQ29weSgpO1xuICAgICAgICBjb25zdCBzdWNjZXNzZnVsID0gISF0ZXh0ICYmIChhd2FpdCBjb3B5UGxhaW50ZXh0KHRleHQpKTtcbiAgICAgICAgc2V0VG9vbHRpcChzdWNjZXNzZnVsID8gX3QoXCJjb21tb258Y29waWVkXCIpIDogX3QoXCJlcnJvcnxmYWlsZWRfY29weVwiKSk7XG4gICAgfTtcblxuICAgIGNvbnN0IG9uSGlkZVRvb2x0aXAgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIGlmICh0b29sdGlwKSB7XG4gICAgICAgICAgICBzZXRUb29sdGlwKHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgY29tYmluZWRDbGFzc05hbWUgPSBjbGFzc05hbWVzKFwibXhfQ29weWFibGVUZXh0XCIsIGNsYXNzTmFtZSwge1xuICAgICAgICBteF9Db3B5YWJsZVRleHRfYm9yZGVyOiBib3JkZXIsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y29tYmluZWRDbGFzc05hbWV9IHsuLi5wcm9wc30+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICA8QWNjZXNzaWJsZUJ1dHRvblxuICAgICAgICAgICAgICAgIHRpdGxlPXt0b29sdGlwID8/IF90KFwiYWN0aW9ufGNvcHlcIil9XG4gICAgICAgICAgICAgICAgb25DbGljaz17b25Db3B5Q2xpY2tJbnRlcm5hbH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJteF9Db3B5YWJsZVRleHRfY29weUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgb25Ub29sdGlwT3BlbkNoYW5nZT17KG9wZW4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvcGVuKSBvbkhpZGVUb29sdGlwKCk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb3B5YWJsZVRleHQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVNBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLGdCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxpQkFBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQW1FLE1BQUFNLFNBQUE7QUFkbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVBBLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFULHdCQUFBUyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsV0FBQUssT0FBQSxFQUFBTCxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxP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