@atlaskit/mention
Version:
A React component used to display user profiles in a list for 'Mention' functionality
54 lines (53 loc) • 2.92 kB
JavaScript
;
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;
}
}]);
}();