stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
62 lines (57 loc) • 1.52 kB
text/typescript
import type { ChannelResponse } from 'stream-chat';
import { mapDateTimeToStorable } from './mapDateTimeToStorable';
import type { TableRow } from '../types';
export const mapChannelDataToStorable = (channel: ChannelResponse): TableRow<'channels'> => {
const {
auto_translation_enabled,
auto_translation_language,
cid,
config,
cooldown,
created_at,
deleted_at,
disabled,
frozen,
hidden,
id,
invites,
last_message_at,
member_count,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
members,
muted,
own_capabilities,
team,
truncated_at,
truncated_by,
truncated_by_id,
type,
updated_at,
...extraData
} = channel;
return {
autoTranslationEnabled: auto_translation_enabled,
autoTranslationLanguage: auto_translation_language,
cid,
config: config && JSON.stringify(config),
cooldown,
createdAt: mapDateTimeToStorable(created_at),
deletedAt: mapDateTimeToStorable(deleted_at),
disabled,
extraData: JSON.stringify(extraData),
frozen,
hidden,
id,
invites: invites && JSON.stringify(invites),
lastMessageAt: mapDateTimeToStorable(last_message_at),
memberCount: member_count,
muted,
ownCapabilities: own_capabilities && JSON.stringify(own_capabilities),
team,
truncatedAt: truncated_at,
truncatedBy: truncated_by && JSON.stringify(truncated_by),
truncatedById: truncated_by_id,
type,
updatedAt: updated_at,
};
};