Chat Widget - 


<ChatWidget
    chatId={chatId}
    commentHistory={this.state.commentHistory}
    documentData={this.state.documentData}
    loadingCommentHistory={this.state.loadingCommentHistory}
    uploadingDocument={this.state.uploadingDocument}
    onAddComment={(ticketId, comment) => this.addComment(ticketId, comment)}
    onUploadFiles={(event, ticketid) => this.uploadFiles(event, ticketid)}
    onCommentChange={(comment) => this.handleCommentChange(comment)}
/>

Properties - 

 *  chatId - unique id of chat widget
 *  commentHistory - 
                    {type: 'Comment', timestamp, message, name: (initials to be shown ), title, contactNumber, department}
 *                  {type: 'Document', timestamp, url, documentName, name: (initials to be shown ), title, contactNumber, department}
 *
 *  documentData - {lastUpdatedTimestamp, documentName, url, userDetail: {name}}
 *  loadingCommentHistory - boolean
 *  uploadingDocument - boolean
 *  onAddComment - function(chatId, comment)
 *  onUploadFiles - function(event, chatId)
 *  onCommentChange - function(comment)
 
 
 ![picture](images/chatwidget1.png)

# Form Components


## Motivation

- Create common form components that can be directly used without handling state of fields
- Use components in either controlled or uncontrolled way.

## Usage

```jsx

import { InputField, TextArea, DropDown, Upload, Toggle, DateTimePicker } from '../ReactComponents/formElements';

<InputField 
	label="Simple Input Field"
    onChange={this.onChange}   
    placeholder="Simple Text"
    error                 
    isRequired         
    disabled           
/>
```

## Components

This pakage provides following React Field components:

### `InputField`

Abstract component that expects label, onChange method.

Prop Name | Type | Default | Description
--- | --- | --- | ---
`label` | String | | Label of field.
`type` | String | | Type of field (text/number)
`disabled` | Boolean | `false` | Toggles component disabled.
`isRequired` | Boolean | `false` | Show `*` if field is required.
`placeholder` | Boolean | | Any value that is displayed if `value` is empty.
`className` | String | | Style class name added to root element.
