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