UNPKG

stream-chat-react-native-core

Version:

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

42 lines 2.1 kB
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.useIsChannelMuted = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = require("react"); var _ChatContext = require("../../../contexts/chatContext/ChatContext"); var defaultMuteStatus = { createdAt: null, expiresAt: null, muted: false }; var useIsChannelMuted = channel => { var _useChatContext = (0, _ChatContext.useChatContext)(), client = _useChatContext.client; var _useState = (0, _react.useState)(() => channel.muteStatus()), _useState2 = (0, _slicedToArray2.default)(_useState, 2), muted = _useState2[0], setMuted = _useState2[1]; (0, _react.useEffect)(() => { var handleEvent = () => { var _newMuteStatus$create, _muted$createdAt, _newMuteStatus$expire, _muted$expiresAt; var newMuteStatus = channel.muteStatus(); if (newMuteStatus.muted === muted.muted && ((_newMuteStatus$create = newMuteStatus.createdAt) == null || _newMuteStatus$create.getTime == null ? void 0 : _newMuteStatus$create.getTime()) === ((_muted$createdAt = muted.createdAt) == null || _muted$createdAt.getTime == null ? void 0 : _muted$createdAt.getTime()) && ((_newMuteStatus$expire = newMuteStatus.expiresAt) == null || _newMuteStatus$expire.getTime == null ? void 0 : _newMuteStatus$expire.getTime()) === ((_muted$expiresAt = muted.expiresAt) == null || _muted$expiresAt.getTime == null ? void 0 : _muted$expiresAt.getTime())) { return; } setMuted(channel.muteStatus()); }; var listeners = [client.on('notification.channel_mutes_updated', handleEvent), client.on('health.check', event => { if (event.me) { handleEvent(); } })]; return () => { listeners.forEach(listener => listener.unsubscribe()); }; }, [channel, client, muted]); return muted != null ? muted : defaultMuteStatus; }; exports.useIsChannelMuted = useIsChannelMuted; //# sourceMappingURL=useIsChannelMuted.js.map