stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
122 lines • 3.91 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.generateChannelResponse = exports.generateChannel = void 0;
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _uuid = require("uuid");
var _user = require("./user");
var _excluded = ["channel", "id", "messages", "members", "read", "type"];
var defaultCapabilities = ['ban-channel-members', 'delete-any-message', 'delete-own-message', 'flag-message', 'mute-channel', 'pin-message', 'quote-message', 'read-events', 'send-links', 'send-message', 'send-reaction', 'send-reply', 'typing-events', 'update-any-message', 'update-own-message', 'upload-file'];
var defaultConfig = {
automod: 'disabled',
automod_behavior: 'flag',
commands: [{
args: '[text]',
description: 'Post a random gif to the channel',
name: 'giphy',
set: 'fun_set'
}],
connect_events: true,
created_at: '2020-04-24T11:36:43.859020368Z',
max_message_length: 5000,
message_retention: 'infinite',
mutes: true,
name: 'messaging',
reactions: true,
read_events: true,
reminders: false,
replies: true,
search: true,
typing_events: true,
updated_at: '2020-04-24T11:36:43.859022903Z',
uploads: true,
url_enrichment: true
};
var defaultState = {
members: {},
messages: [],
setIsUpToDate: jest.fn()
};
var getChannelDefaults = (opts = {}) => {
var _opts$id, _opts$type;
var id = (_opts$id = opts.id) != null ? _opts$id : (0, _uuid.v4)();
var type = (_opts$type = opts.type) != null ? _opts$type : 'messaging';
return {
channel: {
cid: `${type}:${id}`,
config: {
...defaultConfig,
name: type
},
created_at: '2020-04-28T11:20:48.578147Z',
created_by: (0, _user.getUserDefaults)(),
frozen: false,
id,
own_capabilities: defaultCapabilities,
type,
updated_at: '2020-04-28T11:20:48.578147Z'
},
cid: `${type}:${id}`,
id,
messages: [],
state: defaultState,
type
};
};
var generateChannel = (customValues = {}) => Object.keys(customValues).reduce((accumulated, current) => {
var key = current;
if (current in accumulated) {
accumulated[current] = typeof accumulated[key] === 'object' ? {
...accumulated[key],
...customValues[current]
} : customValues[current];
return accumulated;
}
return {
...accumulated,
[current]: customValues[current]
};
}, getChannelDefaults());
exports.generateChannel = generateChannel;
var generateChannelResponse = (customValues = {
channel: {},
id: (0, _uuid.v4)(),
members: [],
messages: [],
read: [],
type: 'messaging'
}) => {
var _customValues$channel = customValues.channel,
channel = _customValues$channel === void 0 ? {} : _customValues$channel,
_customValues$id = customValues.id,
id = _customValues$id === void 0 ? (0, _uuid.v4)() : _customValues$id,
_customValues$message = customValues.messages,
messages = _customValues$message === void 0 ? [] : _customValues$message,
_customValues$members = customValues.members,
members = _customValues$members === void 0 ? [] : _customValues$members,
read = customValues.read,
_customValues$type = customValues.type,
type = _customValues$type === void 0 ? 'messaging' : _customValues$type,
rest = (0, _objectWithoutProperties2.default)(customValues, _excluded);
var defaults = getChannelDefaults();
return {
channel: {
...defaults.channel,
...{
cid: `${type}:${id}`,
...channel,
id,
member_count: members.length,
type,
user: (0, _user.generateUser)()
}
},
members,
messages,
read,
...rest
};
};
exports.generateChannelResponse = generateChannelResponse;
//# sourceMappingURL=channel.js.map