UNPKG

cometchat-react-ui-kit2

Version:

CometChat UI Kit for React App

94 lines (92 loc) 4.07 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.Hooks = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _react = _interopRequireDefault(require("react")); var _chat = require("@cometchat-pro/chat"); var _ = require(".."); var _2 = require("../.."); var getUser = function getUser(uid) { return new Promise(function (resolve, reject) { _chat.CometChat.getUser(uid).then(function (user) { return resolve(user); })["catch"](function (error) { return reject(error); }); }); }; var getGroup = function getGroup(guid) { return new Promise(function (resolve, reject) { _chat.CometChat.getGroup(guid).then(function (group) { return resolve(group); })["catch"](function (error) { return reject(error); }); }); }; var Hooks = function Hooks(props, loggedInUser, setChatWith, setChatWithType, setMessageHeaderStatus, setUserPresence, messageHeaderManager, messageHeaderCallback, handlers, callbackData, errorHandler) { //fetch logged in user _react["default"].useEffect(function () { _chat.CometChat.getLoggedinUser().then(function (user) { var _messageHeaderManager; loggedInUser.current = user; (_messageHeaderManager = messageHeaderManager.current) === null || _messageHeaderManager === void 0 ? void 0 : _messageHeaderManager.attachListeners(messageHeaderCallback); })["catch"](function (error) { return errorHandler(error); }); }, []); var updateMessageHeaderStatusForUser = _react["default"].useCallback(function (user) { if (user.status === _2.UserStatusConstants.offline) { setMessageHeaderStatus((0, _2.localize)("OFFLINE")); setUserPresence(_2.UserStatusConstants.offline); } else if (user.status === _2.UserStatusConstants.online) { setMessageHeaderStatus((0, _2.localize)("ONLINE")); setUserPresence(_2.UserStatusConstants.online); } }, [setMessageHeaderStatus, setUserPresence]); var updateMessageHeaderStatusForGroup = _react["default"].useCallback(function (group) { var status = "".concat(group.membersCount, " ").concat((0, _2.localize)("MEMBERS")); setMessageHeaderStatus(status); //setUserPresence(CometChat.USER_STATUS.OFFLINE); }, [setMessageHeaderStatus]); //update receiver user _react["default"].useEffect(function () { if (props.user && props.user.uid) { if (props.user.name) { setChatWithType(_.CometChatMessageReceiverType.user); setChatWith(props.user); updateMessageHeaderStatusForUser(props.user); } else { getUser(props.user.uid).then(function (user) { setChatWithType(_.CometChatMessageReceiverType.user); setChatWith(user); updateMessageHeaderStatusForUser(user); })["catch"](function (error) { return errorHandler(error); }); } } else if (props.group && props.group.guid) { if (props.group.name) { setChatWithType(_.CometChatMessageReceiverType.group); setChatWith(props.group); updateMessageHeaderStatusForGroup(props.group); } else { getGroup(props.group.guid).then(function (group) { setChatWithType(_.CometChatMessageReceiverType.group); setChatWith(group); updateMessageHeaderStatusForGroup(group); })["catch"](function (error) { return errorHandler(error); }); } } }, [props.user, props.group, setChatWith, setChatWithType, updateMessageHeaderStatusForUser, updateMessageHeaderStatusForGroup]); _react["default"].useEffect(function () { var handler = handlers[callbackData === null || callbackData === void 0 ? void 0 : callbackData.name]; if (handler) return handler.apply(void 0, (0, _toConsumableArray2["default"])(callbackData === null || callbackData === void 0 ? void 0 : callbackData.args)); }, [callbackData, handlers]); }; exports.Hooks = Hooks;