UNPKG

stream-chat-react-native-core

Version:

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

121 lines 3.81 kB
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 id = opts.id ?? (0, _uuid.v4)(); var type = 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