UNPKG

stream-chat-react-native-core

Version:

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

45 lines 1.6 kB
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.useChannelState = useChannelState; exports.useStateManager = useStateManager; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = require("react"); var _ChannelsStateContext = require("./ChannelsStateContext"); function useStateManager({ cid, key, setState, state }, initialValue) { var memoizedInitialValue = (0, _react.useMemo)(() => initialValue, []); var value = state[cid]?.[key] || memoizedInitialValue; var setValue = (0, _react.useCallback)(value => setState({ cid, key, value }), [cid, key]); return [value, setValue]; } function useChannelState(channel, threadId) { var cid = channel?.id || 'id'; var _useChannelsStateCont = (0, _ChannelsStateContext.useChannelsStateContext)(), setState = _useChannelsStateCont.setState, state = _useChannelsStateCont.state; var _useStateManager = useStateManager({ cid, key: 'threadMessages', setState, state }, threadId && channel?.state?.threads?.[threadId] || []), _useStateManager2 = (0, _slicedToArray2.default)(_useStateManager, 2), threadMessages = _useStateManager2[0], setThreadMessagesInternal = _useStateManager2[1]; var setThreadMessages = (0, _react.useCallback)(value => setThreadMessagesInternal([...value]), [setThreadMessagesInternal]); return { setThreadMessages, threadMessages }; } //# sourceMappingURL=useChannelState.js.map