UNPKG

@botonic/react

Version:

Build Chatbots using React

102 lines (86 loc) 1.96 kB
import React from 'react' import { SENDERS } from '../index-types' export type MessageType = | 'audio' | 'buttonmessage' | 'carousel' | 'custom' | 'document' | 'image' | 'location' | 'text' | 'video' export interface MessageProps { blob?: boolean children?: React.ReactNode delay?: number enabletimestamps?: boolean sentBy?: SENDERS json?: Record<string, unknown> style?: Record<string, unknown> type?: MessageType typing?: number } export interface TextProps extends MessageProps { // converts markdown syntax to HTML markdown?: boolean feedbackEnabled?: boolean inferenceId?: string botInteractionId?: string } export interface CarouselProps extends MessageProps { children: React.ReactNode[] } export interface Webview { name: string } export interface ButtonProps { params?: any path?: string payload?: string target?: string url?: string webview?: Webview onClick?: () => void autodisable?: boolean disabled?: boolean disabledstyle?: Record<string, string> | string children: string setDisabled?: (disabled: boolean) => void parentId?: string } export interface ReplyProps { path?: string payload?: string children: string } export interface ImageProps extends MessageProps { src: string input?: { data: string } } export interface VideoProps extends MessageProps { src: string input?: { data: string } } export interface AudioProps extends MessageProps { src: string input?: { data: string } } export interface DocumentProps extends MessageProps { src: string input?: { data: string } from?: any } export interface CustomMessageType { (props: any): JSX.Element customTypeName: string deserialize(msg: any): JSX.Element } export type BlockInputOption = { preprocess?: (message: string) => string match: RegExp[] message: string } export type WrappedComponent<Props> = React.FunctionComponent<Props> & { customTypeName: string }