UNPKG

stream-chat-react-native-core

Version:

The official React Native and Expo components for Stream Chat, a service for building chat applications

48 lines 1.81 kB
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.useCreateChatClient = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = require("react"); var _streamChat = require("stream-chat"); var useCreateChatClient = ({ apiKey, options, tokenOrProvider, userData }) => { var _useState = (0, _react.useState)(null), _useState2 = (0, _slicedToArray2.default)(_useState, 2), chatClient = _useState2[0], setChatClient = _useState2[1]; var _useState3 = (0, _react.useState)(userData), _useState4 = (0, _slicedToArray2.default)(_useState3, 2), cachedUserData = _useState4[0], setCachedUserData = _useState4[1]; if (userData.id !== cachedUserData.id) { setCachedUserData(userData); } var _useState5 = (0, _react.useState)(options), _useState6 = (0, _slicedToArray2.default)(_useState5, 1), cachedOptions = _useState6[0]; (0, _react.useEffect)(() => { var client = new _streamChat.StreamChat(apiKey, undefined, cachedOptions); var didUserConnectInterrupt = false; var connectionPromise = client.connectUser(cachedUserData, tokenOrProvider).then(() => { if (!didUserConnectInterrupt) { setChatClient(client); } }); return () => { didUserConnectInterrupt = true; setChatClient(null); connectionPromise.then(() => client.disconnectUser()).then(() => { console.log(`Connection for user "${cachedUserData.id}" has been closed`); }); }; }, [apiKey, cachedUserData, cachedOptions, tokenOrProvider]); return chatClient; }; exports.useCreateChatClient = useCreateChatClient; //# sourceMappingURL=useCreateChatClient.js.map