botframework-webchat-component
Version:
React component of botframework-webchat
32 lines (25 loc) • 3.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useRegisterScrollRelative;
var _react = require("react");
var _removeInline = _interopRequireDefault(require("../../Utils/removeInline"));
var _useWebChatUIContext2 = _interopRequireDefault(require("./useWebChatUIContext"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// This hook is for registering and unregister a callback, used by <BasicTranscript>.
// When called, the callback should scroll the transcript in a relative motion, for example, page up and down.
function useRegisterScrollRelative(callback) {
var _useWebChatUIContext = (0, _useWebChatUIContext2.default)(),
scrollRelativeCallbacksRef = _useWebChatUIContext.scrollRelativeCallbacksRef;
(0, _react.useEffect)(function () {
if (callback) {
var scrollRelativeCallbacks = scrollRelativeCallbacksRef.current;
scrollRelativeCallbacks.push(callback);
return function () {
return (0, _removeInline.default)(scrollRelativeCallbacks, callback);
};
}
}, [callback, scrollRelativeCallbacksRef]);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy9pbnRlcm5hbC91c2VSZWdpc3RlclNjcm9sbFJlbGF0aXZlLmpzIl0sIm5hbWVzIjpbInVzZVJlZ2lzdGVyU2Nyb2xsUmVsYXRpdmUiLCJjYWxsYmFjayIsInNjcm9sbFJlbGF0aXZlQ2FsbGJhY2tzUmVmIiwic2Nyb2xsUmVsYXRpdmVDYWxsYmFja3MiLCJjdXJyZW50IiwicHVzaCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOztBQUNBOzs7O0FBRUE7QUFDQTtBQUVlLFNBQVNBLHlCQUFULENBQW1DQyxRQUFuQyxFQUE2QztBQUFBLDZCQUNuQixvQ0FEbUI7QUFBQSxNQUNsREMsMEJBRGtELHdCQUNsREEsMEJBRGtEOztBQUcxRCx3QkFBVSxZQUFNO0FBQ2QsUUFBSUQsUUFBSixFQUFjO0FBQUEsVUFDS0UsdUJBREwsR0FDaUNELDBCQURqQyxDQUNKRSxPQURJO0FBR1pELE1BQUFBLHVCQUF1QixDQUFDRSxJQUF4QixDQUE2QkosUUFBN0I7QUFFQSxhQUFPO0FBQUEsZUFBTSwyQkFBYUUsdUJBQWIsRUFBc0NGLFFBQXRDLENBQU47QUFBQSxPQUFQO0FBQ0Q7QUFDRixHQVJELEVBUUcsQ0FBQ0EsUUFBRCxFQUFXQywwQkFBWCxDQVJIO0FBU0QiLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHJlbW92ZUlubGluZSBmcm9tICcuLi8uLi9VdGlscy9yZW1vdmVJbmxpbmUnO1xuaW1wb3J0IHVzZVdlYkNoYXRVSUNvbnRleHQgZnJvbSAnLi91c2VXZWJDaGF0VUlDb250ZXh0JztcblxuLy8gVGhpcyBob29rIGlzIGZvciByZWdpc3RlcmluZyBhbmQgdW5yZWdpc3RlciBhIGNhbGxiYWNrLCB1c2VkIGJ5IDxCYXNpY1RyYW5zY3JpcHQ+LlxuLy8gV2hlbiBjYWxsZWQsIHRoZSBjYWxsYmFjayBzaG91bGQgc2Nyb2xsIHRoZSB0cmFuc2NyaXB0IGluIGEgcmVsYXRpdmUgbW90aW9uLCBmb3IgZXhhbXBsZSwgcGFnZSB1cCBhbmQgZG93bi5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlUmVnaXN0ZXJTY3JvbGxSZWxhdGl2ZShjYWxsYmFjaykge1xuICBjb25zdCB7IHNjcm9sbFJlbGF0aXZlQ2FsbGJhY2tzUmVmIH0gPSB1c2VXZWJDaGF0VUlDb250ZXh0KCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIGNvbnN0IHsgY3VycmVudDogc2Nyb2xsUmVsYXRpdmVDYWxsYmFja3MgfSA9IHNjcm9sbFJlbGF0aXZlQ2FsbGJhY2tzUmVmO1xuXG4gICAgICBzY3JvbGxSZWxhdGl2ZUNhbGxiYWNrcy5wdXNoKGNhbGxiYWNrKTtcblxuICAgICAgcmV0dXJuICgpID0+IHJlbW92ZUlubGluZShzY3JvbGxSZWxhdGl2ZUNhbGxiYWNrcywgY2FsbGJhY2spO1xuICAgIH1cbiAgfSwgW2NhbGxiYWNrLCBzY3JvbGxSZWxhdGl2ZUNhbGxiYWNrc1JlZl0pO1xufVxuIl19