matrix-react-sdk
Version:
SDK for matrix.org using React
67 lines (64 loc) • 9.57 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _AutocompleteProvider = _interopRequireDefault(require("./AutocompleteProvider"));
var _languageHandler = require("../languageHandler");
var _MatrixClientPeg = require("../MatrixClientPeg");
var _Components = require("./Components");
var _RoomAvatar = _interopRequireDefault(require("../components/views/avatars/RoomAvatar"));
/*
Copyright 2017-2024 New Vector Ltd.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
const AT_ROOM_REGEX = /@\S*/g;
class NotifProvider extends _AutocompleteProvider.default {
constructor(room, renderingType) {
super({
commandRegex: AT_ROOM_REGEX,
renderingType
});
this.room = room;
}
async getCompletions(query, selection, force = false, limit = -1) {
const client = _MatrixClientPeg.MatrixClientPeg.safeGet();
if (!this.room.currentState.mayTriggerNotifOfType("room", client.getSafeUserId())) return [];
const {
command,
range
} = this.getCurrentCommand(query, selection, force);
if (command?.[0] && command[0].length > 1 && ["@room", "@channel", "@everyone", "@here"].some(c => c.startsWith(command[0]))) {
return [{
completion: "@room",
completionId: "@room",
type: "at-room",
suffix: " ",
component: /*#__PURE__*/_react.default.createElement(_Components.PillCompletion, {
title: "@room",
description: (0, _languageHandler._t)("composer|autocomplete|@room_description")
}, /*#__PURE__*/_react.default.createElement(_RoomAvatar.default, {
size: "24px",
room: this.room
})),
range: range
}];
}
return [];
}
getName() {
return "❗️ " + (0, _languageHandler._t)("composer|autocomplete|notification_description");
}
renderCompletions(completions) {
return /*#__PURE__*/_react.default.createElement("div", {
className: "mx_Autocomplete_Completion_container_pill mx_Autocomplete_Completion_container_truncate",
role: "presentation",
"aria-label": (0, _languageHandler._t)("composer|autocomplete|notification_a11y")
}, completions);
}
}
exports.default = NotifProvider;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9BdXRvY29tcGxldGVQcm92aWRlciIsIl9sYW5ndWFnZUhhbmRsZXIiLCJfTWF0cml4Q2xpZW50UGVnIiwiX0NvbXBvbmVudHMiLCJfUm9vbUF2YXRhciIsIkFUX1JPT01fUkVHRVgiLCJOb3RpZlByb3ZpZGVyIiwiQXV0b2NvbXBsZXRlUHJvdmlkZXIiLCJjb25zdHJ1Y3RvciIsInJvb20iLCJyZW5kZXJpbmdUeXBlIiwiY29tbWFuZFJlZ2V4IiwiZ2V0Q29tcGxldGlvbnMiLCJxdWVyeSIsInNlbGVjdGlvbiIsImZvcmNlIiwibGltaXQiLCJjbGllbnQiLCJNYXRyaXhDbGllbnRQZWciLCJzYWZlR2V0IiwiY3VycmVudFN0YXRlIiwibWF5VHJpZ2dlck5vdGlmT2ZUeXBlIiwiZ2V0U2FmZVVzZXJJZCIsImNvbW1hbmQiLCJyYW5nZSIsImdldEN1cnJlbnRDb21tYW5kIiwibGVuZ3RoIiwic29tZSIsImMiLCJzdGFydHNXaXRoIiwiY29tcGxldGlvbiIsImNvbXBsZXRpb25JZCIsInR5cGUiLCJzdWZmaXgiLCJjb21wb25lbnQiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsIlBpbGxDb21wbGV0aW9uIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsIl90Iiwic2l6ZSIsImdldE5hbWUiLCJyZW5kZXJDb21wbGV0aW9ucyIsImNvbXBsZXRpb25zIiwiY2xhc3NOYW1lIiwicm9sZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYXV0b2NvbXBsZXRlL05vdGlmUHJvdmlkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAxNy0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBSb29tIH0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL21hdHJpeFwiO1xuXG5pbXBvcnQgQXV0b2NvbXBsZXRlUHJvdmlkZXIgZnJvbSBcIi4vQXV0b2NvbXBsZXRlUHJvdmlkZXJcIjtcbmltcG9ydCB7IF90IH0gZnJvbSBcIi4uL2xhbmd1YWdlSGFuZGxlclwiO1xuaW1wb3J0IHsgTWF0cml4Q2xpZW50UGVnIH0gZnJvbSBcIi4uL01hdHJpeENsaWVudFBlZ1wiO1xuaW1wb3J0IHsgUGlsbENvbXBsZXRpb24gfSBmcm9tIFwiLi9Db21wb25lbnRzXCI7XG5pbXBvcnQgeyBJQ29tcGxldGlvbiwgSVNlbGVjdGlvblJhbmdlIH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlclwiO1xuaW1wb3J0IFJvb21BdmF0YXIgZnJvbSBcIi4uL2NvbXBvbmVudHMvdmlld3MvYXZhdGFycy9Sb29tQXZhdGFyXCI7XG5pbXBvcnQgeyBUaW1lbGluZVJlbmRlcmluZ1R5cGUgfSBmcm9tIFwiLi4vY29udGV4dHMvUm9vbUNvbnRleHRcIjtcblxuY29uc3QgQVRfUk9PTV9SRUdFWCA9IC9AXFxTKi9nO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOb3RpZlByb3ZpZGVyIGV4dGVuZHMgQXV0b2NvbXBsZXRlUHJvdmlkZXIge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJvb206IFJvb20sXG4gICAgICAgIHJlbmRlcmluZ1R5cGU/OiBUaW1lbGluZVJlbmRlcmluZ1R5cGUsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKHsgY29tbWFuZFJlZ2V4OiBBVF9ST09NX1JFR0VYLCByZW5kZXJpbmdUeXBlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRDb21wbGV0aW9ucyhcbiAgICAgICAgcXVlcnk6IHN0cmluZyxcbiAgICAgICAgc2VsZWN0aW9uOiBJU2VsZWN0aW9uUmFuZ2UsXG4gICAgICAgIGZvcmNlID0gZmFsc2UsXG4gICAgICAgIGxpbWl0ID0gLTEsXG4gICAgKTogUHJvbWlzZTxJQ29tcGxldGlvbltdPiB7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IE1hdHJpeENsaWVudFBlZy5zYWZlR2V0KCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLnJvb20uY3VycmVudFN0YXRlLm1heVRyaWdnZXJOb3RpZk9mVHlwZShcInJvb21cIiwgY2xpZW50LmdldFNhZmVVc2VySWQoKSkpIHJldHVybiBbXTtcblxuICAgICAgICBjb25zdCB7IGNvbW1hbmQsIHJhbmdlIH0gPSB0aGlzLmdldEN1cnJlbnRDb21tYW5kKHF1ZXJ5LCBzZWxlY3Rpb24sIGZvcmNlKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgY29tbWFuZD8uWzBdICYmXG4gICAgICAgICAgICBjb21tYW5kWzBdLmxlbmd0aCA+IDEgJiZcbiAgICAgICAgICAgIFtcIkByb29tXCIsIFwiQGNoYW5uZWxcIiwgXCJAZXZlcnlvbmVcIiwgXCJAaGVyZVwiXS5zb21lKChjKSA9PiBjLnN0YXJ0c1dpdGgoY29tbWFuZCFbMF0pKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uOiBcIkByb29tXCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25JZDogXCJAcm9vbVwiLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImF0LXJvb21cIixcbiAgICAgICAgICAgICAgICAgICAgc3VmZml4OiBcIiBcIixcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8UGlsbENvbXBsZXRpb24gdGl0bGU9XCJAcm9vbVwiIGRlc2NyaXB0aW9uPXtfdChcImNvbXBvc2VyfGF1dG9jb21wbGV0ZXxAcm9vbV9kZXNjcmlwdGlvblwiKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJvb21BdmF0YXIgc2l6ZT1cIjI0cHhcIiByb29tPXt0aGlzLnJvb219IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1BpbGxDb21wbGV0aW9uPlxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICByYW5nZTogcmFuZ2UhLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gXCLinZfvuI8gXCIgKyBfdChcImNvbXBvc2VyfGF1dG9jb21wbGV0ZXxub3RpZmljYXRpb25fZGVzY3JpcHRpb25cIik7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbmRlckNvbXBsZXRpb25zKGNvbXBsZXRpb25zOiBSZWFjdC5SZWFjdE5vZGVbXSk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb25fY29udGFpbmVyX3BpbGwgbXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb25fY29udGFpbmVyX3RydW5jYXRlXCJcbiAgICAgICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtfdChcImNvbXBvc2VyfGF1dG9jb21wbGV0ZXxub3RpZmljYXRpb25fYTExeVwiKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7Y29tcGxldGlvbnN9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFPQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFHQSxJQUFBQyxxQkFBQSxHQUFB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