add upload button; fix autofocus of text field after inserting an emoji
This commit is contained in:
parent
a0601c0047
commit
0ace315d7d
|
@ -15,6 +15,7 @@ import Dropzone from 'react-dropzone';
|
||||||
import Jazzicon, { jsNumberForAddress } from 'react-jazzicon';
|
import Jazzicon, { jsNumberForAddress } from 'react-jazzicon';
|
||||||
import { Picker } from 'emoji-mart';
|
import { Picker } from 'emoji-mart';
|
||||||
import InsertEmoticon from '@material-ui/icons/InsertEmoticon'
|
import InsertEmoticon from '@material-ui/icons/InsertEmoticon'
|
||||||
|
import AddCircle from '@material-ui/icons/AddCircle'
|
||||||
|
|
||||||
import ChatBox, { Emoji } from './ChatBox';
|
import ChatBox, { Emoji } from './ChatBox';
|
||||||
import ChatHeader from './ChatHeader';
|
import ChatHeader from './ChatHeader';
|
||||||
|
@ -86,10 +87,15 @@ class ChatRoom extends Component {
|
||||||
this.setState(({showEmojis: !this.state.showEmojis}));
|
this.setState(({showEmojis: !this.state.showEmojis}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uploadFileDialog() {
|
||||||
|
}
|
||||||
|
|
||||||
addEmoji(emoji, chatInput, setValue) {
|
addEmoji(emoji, chatInput, setValue) {
|
||||||
console.log(emoji);
|
console.log(emoji);
|
||||||
setValue('chatInput', `${chatInput}:${emoji.id}:`);
|
setValue('chatInput', `${chatInput}:${emoji.id}:`);
|
||||||
this.setState(({showEmojis: false}));
|
this.setState(({showEmojis: false}), () => {
|
||||||
|
this.nameInput.labelNode.focus();
|
||||||
|
});
|
||||||
// <Emoji emoji=":santa::skin-tone-3:" size={16} />
|
// <Emoji emoji=":santa::skin-tone-3:" size={16} />
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -164,8 +170,11 @@ class ChatRoom extends Component {
|
||||||
<div className="chat-input"
|
<div className="chat-input"
|
||||||
style={{ position: 'absolute', bottom: 0, left: 0, right: 0, paddingBottom: 10, 'background-color': 'white' }}>
|
style={{ position: 'absolute', bottom: 0, left: 0, right: 0, paddingBottom: 10, 'background-color': 'white' }}>
|
||||||
<form onSubmit={handleSubmit} style={formStyle} ref={ChatRoomForm}>
|
<form onSubmit={handleSubmit} style={formStyle} ref={ChatRoomForm}>
|
||||||
|
<Button onClick={(e) => this.uploadFileDialog()}><AddCircle /></Button>
|
||||||
<TextField
|
<TextField
|
||||||
|
autofocus
|
||||||
id="chatInput"
|
id="chatInput"
|
||||||
|
ref={(input) => { this.nameInput = input; }}
|
||||||
multiline
|
multiline
|
||||||
style={{ width: 'auto', flexGrow: '0.95', margin: '2px 0 0 0' }}
|
style={{ width: 'auto', flexGrow: '0.95', margin: '2px 0 0 0' }}
|
||||||
label="Type a message..."
|
label="Type a message..."
|
||||||
|
@ -178,7 +187,8 @@ class ChatRoom extends Component {
|
||||||
onKeyDown={(e) => keyDownHandler(e, typingEvent, setFieldValue, values.chatInput)}
|
onKeyDown={(e) => keyDownHandler(e, typingEvent, setFieldValue, values.chatInput)}
|
||||||
onBlur={handleBlur}
|
onBlur={handleBlur}
|
||||||
value={values.chatInput || ''}
|
value={values.chatInput || ''}
|
||||||
/>
|
>
|
||||||
|
</TextField>
|
||||||
{showEmojis && <Picker title="" onSelect={(emoji) => this.addEmoji(emoji, values.chatInput, setFieldValue)}
|
{showEmojis && <Picker title="" onSelect={(emoji) => this.addEmoji(emoji, values.chatInput, setFieldValue)}
|
||||||
style={{ position: 'absolute', bottom: '80px', right: '20px' }}/>}
|
style={{ position: 'absolute', bottom: '80px', right: '20px' }}/>}
|
||||||
<Button onClick={(e) => this.toggleEmojis(e)}><InsertEmoticon /></Button>
|
<Button onClick={(e) => this.toggleEmojis(e)}><InsertEmoticon /></Button>
|
||||||
|
|
Loading…
Reference in New Issue