UNPKG

react-native-gifted-chat

Version:

The most complete chat UI for React Native. Maintenance mode - active development continues in @kesha-antonov/react-native-chat

65 lines • 1.81 kB
import { StyleProp, ViewStyle } from 'react-native'; export type Omit<T, K> = Pick<T, Exclude<keyof T, K>>; export interface LeftRightStyle<T> { left?: StyleProp<T>; right?: StyleProp<T>; } type renderFunction = (x: unknown) => React.ReactNode; export interface User { _id: string | number; name?: string; avatar?: string | number | renderFunction; } export interface Reply { title: string; value: string; messageId?: number | string; } export interface QuickReplies { type: 'radio' | 'checkbox'; values: Reply[]; keepIt?: boolean; } export interface ReplyMessage extends Pick<IMessage, '_id' | 'text' | 'user' | 'audio' | 'image'> { } export interface MessageReaction { /** The emoji character (e.g. '👍') */ emoji: string; /** IDs of the users who reacted with this emoji */ userIds: (string | number)[]; } export interface IMessage { _id: string | number; text: string; createdAt: Date | number; user: User; image?: string; video?: string; audio?: string; system?: boolean; sent?: boolean; received?: boolean; pending?: boolean; quickReplies?: QuickReplies; replyMessage?: ReplyMessage; reactions?: MessageReaction[]; location?: { latitude: number; longitude: number; }; } export type IChatMessage = IMessage; export interface MessageVideoProps<TMessage extends IMessage> { currentMessage: TMessage; containerStyle?: StyleProp<ViewStyle>; videoStyle?: StyleProp<ViewStyle>; videoProps?: object; } export interface MessageAudioProps<TMessage extends IMessage> { currentMessage: TMessage; containerStyle?: StyleProp<ViewStyle>; audioStyle?: StyleProp<ViewStyle>; audioProps?: object; } export {}; //# sourceMappingURL=Models.d.ts.map