botframework-webchat-component
Version:
React component of botframework-webchat
32 lines (25 loc) • 3.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useRegisterScrollTo;
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 to a specific position, for example, to an activity of specified ID.
function useRegisterScrollTo(callback) {
var _useWebChatUIContext = (0, _useWebChatUIContext2.default)(),
scrollToCallbacksRef = _useWebChatUIContext.scrollToCallbacksRef;
(0, _react.useEffect)(function () {
if (callback) {
var scrollToCallbacks = scrollToCallbacksRef.current;
scrollToCallbacks.push(callback);
return function () {
return (0, _removeInline.default)(scrollToCallbacks, callback);
};
}
}, [callback, scrollToCallbacksRef]);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy9pbnRlcm5hbC91c2VSZWdpc3RlclNjcm9sbFRvLmpzIl0sIm5hbWVzIjpbInVzZVJlZ2lzdGVyU2Nyb2xsVG8iLCJjYWxsYmFjayIsInNjcm9sbFRvQ2FsbGJhY2tzUmVmIiwic2Nyb2xsVG9DYWxsYmFja3MiLCJjdXJyZW50IiwicHVzaCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOztBQUNBOzs7O0FBRUE7QUFDQTtBQUVlLFNBQVNBLG1CQUFULENBQTZCQyxRQUE3QixFQUF1QztBQUFBLDZCQUNuQixvQ0FEbUI7QUFBQSxNQUM1Q0Msb0JBRDRDLHdCQUM1Q0Esb0JBRDRDOztBQUdwRCx3QkFBVSxZQUFNO0FBQ2QsUUFBSUQsUUFBSixFQUFjO0FBQUEsVUFDS0UsaUJBREwsR0FDMkJELG9CQUQzQixDQUNKRSxPQURJO0FBR1pELE1BQUFBLGlCQUFpQixDQUFDRSxJQUFsQixDQUF1QkosUUFBdkI7QUFFQSxhQUFPO0FBQUEsZUFBTSwyQkFBYUUsaUJBQWIsRUFBZ0NGLFFBQWhDLENBQU47QUFBQSxPQUFQO0FBQ0Q7QUFDRixHQVJELEVBUUcsQ0FBQ0EsUUFBRCxFQUFXQyxvQkFBWCxDQVJIO0FBU0QiLCJzb3VyY2VSb290IjoiY29tcG9uZW50Oi8vLyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHJlbW92ZUlubGluZSBmcm9tICcuLi8uLi9VdGlscy9yZW1vdmVJbmxpbmUnO1xuaW1wb3J0IHVzZVdlYkNoYXRVSUNvbnRleHQgZnJvbSAnLi91c2VXZWJDaGF0VUlDb250ZXh0JztcblxuLy8gVGhpcyBob29rIGlzIGZvciByZWdpc3RlcmluZyBhbmQgdW5yZWdpc3RlciBhIGNhbGxiYWNrLCB1c2VkIGJ5IDxCYXNpY1RyYW5zY3JpcHQ+LlxuLy8gV2hlbiBjYWxsZWQsIHRoZSBjYWxsYmFjayBzaG91bGQgc2Nyb2xsIHRoZSB0cmFuc2NyaXB0IHRvIGEgc3BlY2lmaWMgcG9zaXRpb24sIGZvciBleGFtcGxlLCB0byBhbiBhY3Rpdml0eSBvZiBzcGVjaWZpZWQgSUQuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVzZVJlZ2lzdGVyU2Nyb2xsVG8oY2FsbGJhY2spIHtcbiAgY29uc3QgeyBzY3JvbGxUb0NhbGxiYWNrc1JlZiB9ID0gdXNlV2ViQ2hhdFVJQ29udGV4dCgpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICBjb25zdCB7IGN1cnJlbnQ6IHNjcm9sbFRvQ2FsbGJhY2tzIH0gPSBzY3JvbGxUb0NhbGxiYWNrc1JlZjtcblxuICAgICAgc2Nyb2xsVG9DYWxsYmFja3MucHVzaChjYWxsYmFjayk7XG5cbiAgICAgIHJldHVybiAoKSA9PiByZW1vdmVJbmxpbmUoc2Nyb2xsVG9DYWxsYmFja3MsIGNhbGxiYWNrKTtcbiAgICB9XG4gIH0sIFtjYWxsYmFjaywgc2Nyb2xsVG9DYWxsYmFja3NSZWZdKTtcbn1cbiJdfQ==