Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Chat<T, SS>

A chat message list.

example

export class ChatChatScreen extends React.PureComponent<IProps, IState> { constructor(props: IProps) { super(props);

this.state = {
  messages: []
}

}

render(): React.ReactNode { const { messages } = this.state;

return (
  <View style={styles.container}>
    <Chat<string>
      user={user}
      messages={messages}
      onInput={this.handleInput}
      onSend={this.handleSend}
      onRenderMessage={this.handleRenderMessage}
    />
    <KeyboardSpacer />
  </View>
);

}

private readonly handleInput = async ( { data, ...rest }: IMessageMutable ): Promise<IMessageImmutable> => { const text = isIUserInputText(data) ? data.text : 'Unsupported Input...'; return { ...rest, data: text }; }

private readonly handleSend = async (message: IMessageImmutable): Promise => { this.setState(({ messages }) => { messages.unshift(message); return { messages }; }) }

private readonly handleRenderMessage = (message: IMessageImmutable): Element => { const person = message.user === user ? styles.messageContainerUs : styles.messageContainerThem; return ( <View style={[styles.messageContainer, person]}> {message.data} ); } }

Type parameters

  • T

  • SS

Hierarchy

Index

Constructors

constructor

Accessors

disabled

  • get disabled(): boolean

focused

  • get focused(): boolean

length

  • get length(): number
  • The current length of the messages, respecting the user defined length property on the component

    Returns number

loading

  • get loading(): boolean

translateDelay

  • get translateDelay(): number

Methods

Optional UNSAFE_componentWillMount

  • UNSAFE_componentWillMount(): void

Optional UNSAFE_componentWillReceiveProps

  • UNSAFE_componentWillReceiveProps(nextProps: Readonly<IProps<T>>, nextContext: any): void

Optional UNSAFE_componentWillUpdate

  • UNSAFE_componentWillUpdate(nextProps: Readonly<IProps<T>>, nextState: Readonly<IState>, nextContext: any): void

blur

  • blur(): void

clear

  • clear(): void

Optional componentDidCatch

  • componentDidCatch(error: Error, errorInfo: ErrorInfo): void
  • Catches exceptions generated in descendant components. Unhandled exceptions will cause the entire component tree to unmount.

    Parameters

    • error: Error
    • errorInfo: ErrorInfo

    Returns void

Optional componentDidMount

  • componentDidMount(): void
  • Called immediately after a component is mounted. Setting state here will trigger re-rendering.

    Returns void

Optional componentDidUpdate

  • componentDidUpdate(prevProps: Readonly<IProps<T>>, prevState: Readonly<IState>, snapshot?: SS): void
  • Called immediately after updating occurs. Not called for the initial render.

    The snapshot is only present if getSnapshotBeforeUpdate is present and returns non-null.

    Parameters

    • prevProps: Readonly<IProps<T>>
    • prevState: Readonly<IState>
    • Optional snapshot: SS

    Returns void

Optional componentWillMount

  • componentWillMount(): void

Optional componentWillReceiveProps

  • componentWillReceiveProps(nextProps: Readonly<IProps<T>>, nextContext: any): void

Optional componentWillUnmount

  • componentWillUnmount(): void
  • Called immediately before a component is destroyed. Perform any necessary cleanup in this method, such as cancelled network requests, or cleaning up any DOM elements created in componentDidMount.

    Returns void

Optional componentWillUpdate

  • componentWillUpdate(nextProps: Readonly<IProps<T>>, nextState: Readonly<IState>, nextContext: any): void

focus

  • focus(): void

Optional getSnapshotBeforeUpdate

  • getSnapshotBeforeUpdate(prevProps: Readonly<IProps<T>>, prevState: Readonly<IState>): SS | null
  • Runs before React applies the result of render to the document, and returns an object to be given to componentDidUpdate. Useful for saving things such as scroll position before render causes changes to it.

    Note: the presence of getSnapshotBeforeUpdate prevents any of the deprecated lifecycle events from running.

    Parameters

    • prevProps: Readonly<IProps<T>>
    • prevState: Readonly<IState>

    Returns SS | null

input

  • input(input: IInputMutable): Promise<void>
  • Imperatively creates some input

    Parameters

    • input: IInputMutable

      the user input to create

    Returns Promise<void>

isDisabled

  • isDisabled(): boolean

isFocused

  • isFocused(): boolean

isLoading

  • isLoading(): boolean

load

  • load(): void

render

  • render(): React.ReactNode

Optional shouldComponentUpdate

  • shouldComponentUpdate(nextProps: Readonly<IProps<T>>, nextState: Readonly<IState>, nextContext: any): boolean
  • Called to determine whether the change in props and state should trigger a re-render.

    Component always returns true. PureComponent implements a shallow comparison on props and state and returns true if any props or states have changed.

    If false is returned, Component#render, componentWillUpdate and componentDidUpdate will not be called.

    Parameters

    • nextProps: Readonly<IProps<T>>
    • nextState: Readonly<IState>
    • nextContext: any

    Returns boolean

Static getDerivedStateFromProps

  • Used to determine if the extraData has changed. We prefer this over componentDidUpdate because this is called before the render happens rather than after. This means that when the extraData is changed we can just do a single render.

    Type parameters

    • T

    Parameters

    Returns Partial<IState> | null