mirror of
https://github.com/logos-messaging/js-waku.git
synced 2026-01-08 16:53:10 +00:00
Convert to functional component
This commit is contained in:
parent
c7ba19f43e
commit
5aee9f4841
@ -1,4 +1,4 @@
|
|||||||
import React, { ChangeEvent, KeyboardEvent } from 'react';
|
import React, { ChangeEvent, KeyboardEvent, useState } from 'react';
|
||||||
import { Button, Grid, TextField } from '@material-ui/core';
|
import { Button, Grid, TextField } from '@material-ui/core';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
@ -6,58 +6,46 @@ interface Props {
|
|||||||
sendMessage: () => void;
|
sendMessage: () => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface State {
|
export default function MessageInput(props: Props) {
|
||||||
inputText: string;
|
const [inputText, setInputText] = useState<string>('')
|
||||||
}
|
|
||||||
|
|
||||||
export default class MessageInput extends React.Component<Props, State> {
|
const sendMessage = () => {
|
||||||
constructor(props: Props) {
|
props.sendMessage()
|
||||||
super(props);
|
setInputText('')
|
||||||
|
|
||||||
this.state = {
|
|
||||||
inputText: ''
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
messageHandler(event: ChangeEvent<HTMLInputElement>) {
|
const messageHandler = (event: ChangeEvent<HTMLInputElement>) => {
|
||||||
this.setState({inputText: event.target.value})
|
setInputText(event.target.value)
|
||||||
this.props.messageHandler(event.target.value);
|
props.messageHandler(event.target.value);
|
||||||
}
|
};
|
||||||
|
|
||||||
keyPressHandler(event: KeyboardEvent<HTMLInputElement>) {
|
const keyPressHandler = (event: KeyboardEvent<HTMLInputElement>) => {
|
||||||
if (event.key === 'Enter') {
|
if (event.key === 'Enter') {
|
||||||
this.sendMessage()
|
sendMessage()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sendMessage() {
|
|
||||||
this.props.sendMessage()
|
|
||||||
this.setState({inputText: ''})
|
|
||||||
}
|
|
||||||
|
|
||||||
render() {
|
|
||||||
return (
|
return (
|
||||||
<Grid container spacing={2} direction='row' alignItems='center'>
|
<Grid container spacing={2} direction='row' alignItems='center'>
|
||||||
<Grid item xs={11}>
|
<Grid item xs={11}>
|
||||||
<TextField variant='outlined'
|
<TextField variant='outlined'
|
||||||
label='Send a message'
|
label='Send a message'
|
||||||
value={this.state.inputText}
|
value={inputText}
|
||||||
fullWidth
|
fullWidth
|
||||||
style={{ margin: 8 }}
|
style={{ margin: 8 }}
|
||||||
margin="normal"
|
margin="normal"
|
||||||
InputLabelProps={{
|
InputLabelProps={{
|
||||||
shrink: true,
|
shrink: true,
|
||||||
}}
|
}}
|
||||||
onChange={this.messageHandler.bind(this)}
|
onChange={messageHandler}
|
||||||
onKeyPress={this.keyPressHandler.bind(this)}
|
onKeyPress={keyPressHandler}
|
||||||
/>
|
/>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Grid item xs={1}>
|
<Grid item xs={1}>
|
||||||
<Button variant="contained" color="primary" size="large" onClick={this.sendMessage.bind(this)}>
|
<Button variant="contained" color="primary" size="large" onClick={sendMessage}>
|
||||||
Send
|
Send
|
||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
);
|
);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user