UNPKG

stream-chat-react-native-core

Version:

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

65 lines 2.73 kB
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.useIsNameEdited = exports.useIsImageEdited = exports.useAreChannelDetailsEdited = exports.isNameEdited = exports.isImageEdited = exports.EditChannelDetailsStore = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _streamChat = require("stream-chat"); var _useStateStore = require("../hooks/useStateStore"); var EditChannelDetailsStore = exports.EditChannelDetailsStore = function () { function EditChannelDetailsStore(channel) { (0, _classCallCheck2.default)(this, EditChannelDetailsStore); var initialName = channel.data?.name ?? ''; var initialImage = channel.data?.image; this.state = new _streamChat.StateStore({ currentName: initialName, initialImage, initialName, pendingAction: null, updatedImage: undefined }); } return (0, _createClass2.default)(EditChannelDetailsStore, [{ key: "setCurrentName", value: function setCurrentName(currentName) { this.state.partialNext({ currentName }); } }, { key: "setUpdatedImage", value: function setUpdatedImage(updatedImage) { this.state.partialNext({ updatedImage }); } }, { key: "setPendingAction", value: function setPendingAction(pendingAction) { this.state.partialNext({ pendingAction }); } }]); }(); var isNameEdited = state => state.currentName !== state.initialName; exports.isNameEdited = isNameEdited; var isImageEdited = state => !(state.updatedImage === undefined || !state.updatedImage && !state.initialImage); exports.isImageEdited = isImageEdited; var selectIsNameEdited = state => ({ isNameEdited: isNameEdited(state) }); var selectIsImageEdited = state => ({ isImageEdited: isImageEdited(state) }); var selectAreChannelDetailsEdited = state => ({ areChannelDetailsEdited: isNameEdited(state) || isImageEdited(state) }); var useIsNameEdited = store => (0, _useStateStore.useStateStore)(store.state, selectIsNameEdited).isNameEdited; exports.useIsNameEdited = useIsNameEdited; var useIsImageEdited = store => (0, _useStateStore.useStateStore)(store.state, selectIsImageEdited).isImageEdited; exports.useIsImageEdited = useIsImageEdited; var useAreChannelDetailsEdited = store => (0, _useStateStore.useStateStore)(store.state, selectAreChannelDetailsEdited).areChannelDetailsEdited; exports.useAreChannelDetailsEdited = useAreChannelDetailsEdited; //# sourceMappingURL=edit-channel-details-store.js.map