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 1.95 kB
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.useCreateOwnCapabilitiesContext = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = require("react"); var _OwnCapabilitiesContext = require("../../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext"); var useCreateOwnCapabilitiesContext = ({ channel, overrideCapabilities }) => { var _useState = (0, _react.useState)(JSON.stringify(channel.data?.own_capabilities)), _useState2 = (0, _slicedToArray2.default)(_useState, 2), own_capabilities = _useState2[0], setOwnCapabilites = _useState2[1]; var overrideCapabilitiesStr = overrideCapabilities ? JSON.stringify(Object.values(overrideCapabilities)) : null; (0, _react.useEffect)(() => { setOwnCapabilites(JSON.stringify(channel.data?.own_capabilities)); }, [channel.data?.own_capabilities]); (0, _react.useEffect)(() => { var listener = channel.on('capabilities.changed', event => { if (event.own_capabilities) { setOwnCapabilites(JSON.stringify(event.own_capabilities)); } }); return () => { listener.unsubscribe(); }; }, []); var ownCapabilitiesContext = (0, _react.useMemo)(() => { var capabilities = own_capabilities || []; var ownCapabilitiesContext = Object.keys(_OwnCapabilitiesContext.allOwnCapabilities).reduce((result, capability) => ({ ...result, [capability]: overrideCapabilities?.[capability] ?? !!capabilities.includes(_OwnCapabilitiesContext.allOwnCapabilities[capability]) }), {}); return ownCapabilitiesContext; }, [channel.id, overrideCapabilitiesStr, own_capabilities]); return ownCapabilitiesContext; }; exports.useCreateOwnCapabilitiesContext = useCreateOwnCapabilitiesContext; //# sourceMappingURL=useCreateOwnCapabilitiesContext.js.map