UNPKG

@atlaskit/mention

Version:

A React component used to display user profiles in a list for 'Mention' functionality

54 lines (53 loc) 2.92 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _util = require("../util"); /** * This component is stateful and should be instantianted per contextIdentifiers. */ var ContextMentionResource = exports.default = /*#__PURE__*/function () { function ContextMentionResource(mentionProvider, contextIdentifier) { var _this = this; (0, _classCallCheck2.default)(this, ContextMentionResource); (0, _defineProperty2.default)(this, "callWithContextIds", function (f, declaredArgs) { return function () { var _this$mentionProvider; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var argsLength = args ? args.length : 0; // cover the scenario where optional parameters are not passed // by passing undefined instead to keep the contextIdentifiers parameter in the right position var mentionArgs = argsLength !== declaredArgs ? (0, _util.padArray)(args, declaredArgs - argsLength, undefined) : args; return (_this$mentionProvider = _this.mentionProvider)[f].apply(_this$mentionProvider, (0, _toConsumableArray2.default)(mentionArgs).concat([_this.contextIdentifier])); }; }); (0, _defineProperty2.default)(this, "callDefault", function (f) { return function () { var _this$mentionProvider2; return (_this$mentionProvider2 = _this.mentionProvider)[f].apply(_this$mentionProvider2, arguments); }; }); (0, _defineProperty2.default)(this, "subscribe", this.callDefault('subscribe')); (0, _defineProperty2.default)(this, "unsubscribe", this.callDefault('unsubscribe')); (0, _defineProperty2.default)(this, "filter", this.callWithContextIds('filter', 1)); (0, _defineProperty2.default)(this, "recordMentionSelection", this.callWithContextIds('recordMentionSelection', 1)); (0, _defineProperty2.default)(this, "shouldHighlightMention", this.callDefault('shouldHighlightMention')); (0, _defineProperty2.default)(this, "isFiltering", this.callDefault('isFiltering')); this.mentionProvider = mentionProvider; this.contextIdentifier = contextIdentifier; } return (0, _createClass2.default)(ContextMentionResource, [{ key: "getContextIdentifier", value: function getContextIdentifier() { return this.contextIdentifier; } }]); }();