stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
56 lines • 2.35 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useIsNameEdited = exports.useIsImageEdited = exports.useAreChannelDetailsEdited = exports.isNameEdited = exports.isImageEdited = exports.EditChannelDetailsStore = void 0;
var _streamChat = require("stream-chat");
var _useStateStore = require("../hooks/useStateStore");
class EditChannelDetailsStore {
constructor(channel) {
var _channel$data$name, _channel$data, _channel$data2;
var initialName = (_channel$data$name = (_channel$data = channel.data) == null ? void 0 : _channel$data.name) != null ? _channel$data$name : '';
var initialImage = (_channel$data2 = channel.data) == null ? void 0 : _channel$data2.image;
this.state = new _streamChat.StateStore({
currentName: initialName,
initialImage,
initialName,
pendingAction: null,
updatedImage: undefined
});
}
setCurrentName(currentName) {
this.state.partialNext({
currentName
});
}
setUpdatedImage(updatedImage) {
this.state.partialNext({
updatedImage
});
}
setPendingAction(pendingAction) {
this.state.partialNext({
pendingAction
});
}
}
exports.EditChannelDetailsStore = EditChannelDetailsStore;
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