UNPKG

react-peer-chat

Version:

An easy to use react component for impleting peer-to-peer chatting.

50 lines (46 loc) 1.54 kB
import { PeerOptions } from 'peerjs'; export { PeerOptions } from 'peerjs'; import { CSSProperties, DetailedHTMLProps, HTMLAttributes, ReactNode } from 'react'; type Message = { id: string; text: string; }; type MessageEvent = (message: Message) => void; type RemotePeerId = string | string[]; type useChatProps = { name?: string; peerId: string; remotePeerId?: RemotePeerId; text?: boolean; recoverChat?: boolean; audio?: boolean; peerOptions?: PeerOptions; onError?: Function; onMicError?: Function; onMessageSent?: MessageEvent; onMessageReceived?: MessageEvent; }; type IconProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>; type RemotePeers = { [id: string]: string; }; type Children = (childrenOptions: ChildrenOptions) => ReactNode; type ChildrenOptions = { remotePeers?: RemotePeers; messages?: Message[]; sendMessage?: (message: Message) => void; audio?: boolean; setAudio?: (audio: boolean) => void; }; type ChatProps = useChatProps & { dialogOptions?: DialogOptions; props?: DivProps; children?: Children; }; type DialogOptions = { position?: DialogPosition; style?: CSSProperties; }; type DialogPosition = "left" | "center" | "right"; type DivProps = DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>; export type { ChatProps, Children, ChildrenOptions, DialogOptions, DialogPosition, DivProps, IconProps, Message, MessageEvent, RemotePeerId, RemotePeers, useChatProps };