botframework-webchat-component
Version:
React component of botframework-webchat
50 lines (47 loc) • 10.3 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useTypistNames;
var _botframeworkWebchatApi = require("botframework-webchat-api");
var _react = require("react");
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
var useActiveTyping = _botframeworkWebchatApi.hooks.useActiveTyping;
function arrayEquals(x, y) {
return x.length === y.length && x.every(function (value, index) {
return y[+index] === value;
});
}
/** Gets names of users who are actively typing, sorted by the time they started typing. */
function useTypistNames() {
var _useActiveTyping = useActiveTyping(),
_useActiveTyping2 = _slicedToArray(_useActiveTyping, 1),
activeTyping = _useActiveTyping2[0];
var prevTypistNamesStateRef = (0, _react.useRef)(Object.freeze([Object.freeze([])]));
var activeTypingFromOthersValues = Object.values(activeTyping).filter(function (_ref) {
var role = _ref.role;
return role !== 'user';
});
// Sort the list by the first typist.
var sortedActiveTypingFromOthersValues = activeTypingFromOthersValues.sort(function (_ref2, _ref3) {
var x = _ref2.at;
var y = _ref3.at;
return x - y;
});
var typistNamesState = Object.freeze([Object.freeze(sortedActiveTypingFromOthersValues.map(function (_ref4) {
var name = _ref4.name;
return name;
}))]);
var prevTypistNamesState = prevTypistNamesStateRef.current;
var nextTypistNamesState = arrayEquals(typistNamesState[0], prevTypistNamesState[0]) ? prevTypistNamesState : typistNamesState;
(0, _react.useEffect)(function () {
prevTypistNamesStateRef.current = nextTypistNamesState;
}, [prevTypistNamesStateRef, nextTypistNamesState]);
return nextTypistNamesState;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYm90ZnJhbWV3b3JrV2ViY2hhdEFwaSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfc2xpY2VkVG9BcnJheSIsImFyciIsImkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiVHlwZUVycm9yIiwibyIsIm1pbkxlbiIsIl9hcnJheUxpa2VUb0FycmF5IiwibiIsIk9iamVjdCIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwiY2FsbCIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiQXJyYXkiLCJmcm9tIiwidGVzdCIsImxlbiIsImxlbmd0aCIsImFycjIiLCJfaSIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiX2FyciIsIl9uIiwiX2QiLCJfcyIsIl9lIiwibmV4dCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJlcnIiLCJpc0FycmF5IiwidXNlQWN0aXZlVHlwaW5nIiwiaG9va3MiLCJhcnJheUVxdWFscyIsIngiLCJ5IiwiZXZlcnkiLCJpbmRleCIsInVzZVR5cGlzdE5hbWVzIiwiX3VzZUFjdGl2ZVR5cGluZyIsIl91c2VBY3RpdmVUeXBpbmcyIiwiYWN0aXZlVHlwaW5nIiwicHJldlR5cGlzdE5hbWVzU3RhdGVSZWYiLCJ1c2VSZWYiLCJmcmVlemUiLCJhY3RpdmVUeXBpbmdGcm9tT3RoZXJzVmFsdWVzIiwidmFsdWVzIiwiZmlsdGVyIiwiX3JlZiIsInJvbGUiLCJzb3J0ZWRBY3RpdmVUeXBpbmdGcm9tT3RoZXJzVmFsdWVzIiwic29ydCIsIl9yZWYyIiwiX3JlZjMiLCJhdCIsInR5cGlzdE5hbWVzU3RhdGUiLCJtYXAiLCJfcmVmNCIsInByZXZUeXBpc3ROYW1lc1N0YXRlIiwiY3VycmVudCIsIm5leHRUeXBpc3ROYW1lc1N0YXRlIiwidXNlRWZmZWN0Il0sInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVHJhbnNjcmlwdC91c2VUeXBpc3ROYW1lcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBob29rcyB9IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWFwaSc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgeyB1c2VBY3RpdmVUeXBpbmcgfSA9IGhvb2tzO1xuXG5mdW5jdGlvbiBhcnJheUVxdWFsczxUPih4OiByZWFkb25seSBUW10sIHk6IHJlYWRvbmx5IFRbXSk6IGJvb2xlYW4ge1xuICByZXR1cm4geC5sZW5ndGggPT09IHkubGVuZ3RoICYmIHguZXZlcnkoKHZhbHVlLCBpbmRleCkgPT4geVsraW5kZXhdID09PSB2YWx1ZSk7XG59XG5cbi8qKiBHZXRzIG5hbWVzIG9mIHVzZXJzIHdobyBhcmUgYWN0aXZlbHkgdHlwaW5nLCBzb3J0ZWQgYnkgdGhlIHRpbWUgdGhleSBzdGFydGVkIHR5cGluZy4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZVR5cGlzdE5hbWVzKCk6IHJlYWRvbmx5IFtyZWFkb25seSBzdHJpbmdbXV0ge1xuICBjb25zdCBbYWN0aXZlVHlwaW5nXSA9IHVzZUFjdGl2ZVR5cGluZygpO1xuICBjb25zdCBwcmV2VHlwaXN0TmFtZXNTdGF0ZVJlZiA9IHVzZVJlZjxyZWFkb25seSBbcmVhZG9ubHkgc3RyaW5nW11dPihcbiAgICBPYmplY3QuZnJlZXplKFtPYmplY3QuZnJlZXplKFtdIGFzIHN0cmluZ1tdKV0pIGFzIFtyZWFkb25seSBzdHJpbmdbXV1cbiAgKTtcblxuICBjb25zdCBhY3RpdmVUeXBpbmdGcm9tT3RoZXJzVmFsdWVzID0gT2JqZWN0LnZhbHVlcyhhY3RpdmVUeXBpbmcpLmZpbHRlcigoeyByb2xlIH0pID0+IHJvbGUgIT09ICd1c2VyJyk7XG5cbiAgLy8gU29ydCB0aGUgbGlzdCBieSB0aGUgZmlyc3QgdHlwaXN0LlxuICBjb25zdCBzb3J0ZWRBY3RpdmVUeXBpbmdGcm9tT3RoZXJzVmFsdWVzID0gYWN0aXZlVHlwaW5nRnJvbU90aGVyc1ZhbHVlcy5zb3J0KCh7IGF0OiB4IH0sIHsgYXQ6IHkgfSkgPT4geCAtIHkpO1xuXG4gIGNvbnN0IHR5cGlzdE5hbWVzU3RhdGU6IHJlYWRvbmx5IFtyZWFkb25seSBzdHJpbmdbXV0gPSBPYmplY3QuZnJlZXplKFtcbiAgICBPYmplY3QuZnJlZXplKHNvcnRlZEFjdGl2ZVR5cGluZ0Zyb21PdGhlcnNWYWx1ZXMubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSkpXG4gIF0pIGFzIHJlYWRvbmx5IFtyZWFkb25seSBzdHJpbmdbXV07XG5cbiAgY29uc3QgeyBjdXJyZW50OiBwcmV2VHlwaXN0TmFtZXNTdGF0ZSB9ID0gcHJldlR5cGlzdE5hbWVzU3RhdGVSZWY7XG5cbiAgY29uc3QgbmV4dFR5cGlzdE5hbWVzU3RhdGUgPSBhcnJheUVxdWFscyh0eXBpc3ROYW1lc1N0YXRlWzBdLCBwcmV2VHlwaXN0TmFtZXNTdGF0ZVswXSlcbiAgICA/IHByZXZUeXBpc3ROYW1lc1N0YXRlXG4gICAgOiB0eXBpc3ROYW1lc1N0YXRlO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcHJldlR5cGlzdE5hbWVzU3RhdGVSZWYuY3VycmVudCA9IG5leHRUeXBpc3ROYW1lc1N0YXRlO1xuICB9LCBbcHJldlR5cGlzdE5hbWVzU3RhdGVSZWYsIG5leHRUeXBpc3ROYW1lc1N0YXRlXSk7XG5cbiAgcmV0dXJuIG5leHRUeXBpc3ROYW1lc1N0YXRlO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSx1QkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQTBDLFNBQUFFLGVBQUFDLEdBQUEsRUFBQUMsQ0FBQSxXQUFBQyxlQUFBLENBQUFGLEdBQUEsS0FBQUcscUJBQUEsQ0FBQUgsR0FBQSxFQUFBQyxDQUFBLEtBQUFHLDJCQUFBLENBQUFKLEdBQUEsRUFBQUMsQ0FBQSxLQUFBSSxnQkFBQTtBQUFBLFNBQUFBLGlCQUFBLGNBQUFD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
;