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
JavaScript
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