Skip to content

Commit dfc9e21

Browse files
committed
[add] keyCode enter send message
1 parent 7270b94 commit dfc9e21

File tree

9 files changed

+66
-84
lines changed

9 files changed

+66
-84
lines changed

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
},
1212
"author": "@Manuel_Galindez",
1313
"license": "MIT",
14-
"dependencies": {
14+
"devDependencies": {
1515
"babel-cli": "^6.16.0",
1616
"babel-preset-es2015": "^6.16.0",
1717
"babel-preset-react": "^6.16.0",
@@ -20,7 +20,9 @@
2020
"express": "^4.14.0",
2121
"nib": "^1.1.2",
2222
"react-engine": "^4.1.0",
23-
"stylus": "^0.54.5",
23+
"stylus": "^0.54.5"
24+
},
25+
"dependencies": {
2426
"react": "^15.3.2",
2527
"react-addons-css-transition-group": "^15.3.2",
2628
"react-dom": "^15.3.2",

package.json.save

Lines changed: 0 additions & 33 deletions
This file was deleted.

src/client/Components/Discussions.js

Lines changed: 38 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,40 +10,43 @@ export default class Discussions extends React.Component {
1010
super(props)
1111
this.state = { messages: [] };
1212
this._dataValue = this._dataValue.bind(this);
13-
this._MessageSend = this._MessageSend.bind(this);
13+
this._Message = this._Message.bind(this);
1414
this.user = uid(10);
1515
}
1616

1717
componentDidMount(){
1818

19-
this.socket = io('localhost:3000');
19+
this.socket = io('http://localhost:3000');
2020

2121
this.socket.on('message', (message) => {
2222
if (message.user !== this.user) {
23-
this._MessageSend(message);
23+
this._Message(message);
2424
}
2525
})
26-
}
27-
28-
29-
_dataValue(ev) {
3026

31-
ev.preventDefault();
32-
33-
let textValue = document.getElementById('textarea').value;
27+
const textValue = document.getElementById('textarea');
28+
textValue.addEventListener('keypress', event => {
29+
if ( event.keyCode === 13){
30+
this._dataValue();
31+
event.preventDefault();
32+
}
33+
})
34+
}
3435

36+
_dataValue() {
37+
const textValue = document.getElementById('textarea');
3538
const avatar = this.props.avatar;
3639
const username = this.props.username;
37-
let message = { avatar: avatar, username: username, message: textValue };
40+
let message = { avatar: avatar, username: username, message: textValue.value };
3841

39-
if ( textValue !== '' ) {
42+
if ( textValue.value !== '' ) {
4043
this.socket.emit('new-message', message);
4144
Notification(message);
42-
document.getElementById('textarea').value = '';
45+
textValue.value = '';
4346
}
4447
}
4548

46-
_MessageSend(message) {
49+
_Message(message) {
4750
this.state.messages.push( message );
4851
let MessageGlobal = this.state.messages;
4952
this.setState({ messages: MessageGlobal });
@@ -52,24 +55,32 @@ export default class Discussions extends React.Component {
5255
render(){
5356
return <div className="conversationBody">
5457
<header className="header-user">
55-
<h2 className="header-user-username">
56-
{ `${this.props.username}` }
57-
</h2>
5858

59-
<figure className="avatar">
60-
<img src={this.props.avatar} width="30" height="30" />
61-
</figure>
59+
<figure className="avatar">
60+
<img src={this.props.avatar} width="30" height="30" />
61+
</figure>
62+
63+
<h2 className="header-user-username">
64+
{ `${this.props.username}` }
65+
</h2>
66+
6267
</header>
6368

6469
<section className="Message-list">
65-
<MessageList messages={this.state.messages} />
66-
</section>
67-
70+
<MessageList
71+
messages={this.state.messages}/>
72+
73+
<form className="Message-form" method="POST">
74+
<textarea
75+
id="textarea"
76+
rows="1"
77+
placeholder="Write message..."
78+
autoComplete="false"
79+
autoFocus="true"></textarea>
80+
<button type="submit">Send</button>
81+
</form>
6882

69-
<form className="Message-form" method="POST">
70-
<textarea id="textarea" placeholder="Write message..."></textarea>
71-
<button type="submit" onClick={ this._dataValue }>Send</button>
72-
</form>
83+
</section>
7384

7485
</div>
7586
}

src/client/Components/MessageList.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ export default function MessageList (props){
88

99
let id = uid()
1010

11-
12-
return <article key={id} className="Message">
11+
return <div key={id} className="Message">
1312
<figure className="avatar Message-avatar">
1413
<img title={ item.username } src={ item.avatar } width="40" height="40" />
1514
</figure>
@@ -21,7 +20,7 @@ export default function MessageList (props){
2120
</p>
2221
</div>
2322
</div>
24-
</article>
23+
</div>
2524

2625
})
2726
}

src/client/Components/Notification.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export default function Notification (obj) {
88

99
if(Notification) {
1010
console.log('excelente');
11-
if (Notification.permission == "granted"){
11+
if (Notification.permission === "granted"){
1212
var newNoti = new Notification(titulo, options);
1313
setTimeout(newNoti.close.bind(newNoti), 6000);
1414
}

src/client/stylus/colours.styl

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1 @@
1-
oranges = #F77A52
2-
gray = #8d8d8d
3-
blues = #2FA48A
4-
greens = #6ca717
1+
purpe = #4D394B

src/client/stylus/formsUI.styl

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
.inputA
55
height 35px
66
font-size 16px
7-
border gray
7+
border #DDD
88
padding 0 15px
99
border-radius 5px
1010
box-sizing border-box
@@ -18,11 +18,9 @@
1818
border-radius 3px
1919
height 56px
2020
font-size 23px
21-
background oranges
22-
box-shadow inset 0 -2px rgba(black,0.3)
21+
background purpe
22+
box-shadow inset 0 -2px rgba(black,0.2)
2323
transition all .3s
24-
&:hover
25-
background blues
2624

2725
@media (min-width: 768px)
2826
.inputA

src/client/stylus/style.styl

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,17 @@ figure
2929
.conversationBody
3030
display flex
3131
min-height 100vh
32-
flex-direction column
32+
flex-direction row
3333
justify-content space-between
3434

3535
.header-user
36-
background greens
36+
background purpe
3737
display flex
38-
flex-direction row
38+
flex-direction column
3939
flex-wrap wrap
40-
justify-content space-between
41-
align-items center
4240
padding .4em
41+
text-align center
42+
width 300px
4343
z-index 1
4444

4545

@@ -70,19 +70,27 @@ figure
7070
transform scale(.9)
7171

7272
.Message
73+
align-items center
7374
display flex
7475
flex-direction row
7576
flex-wrap wrap
76-
align-items center
77+
padding .1em
78+
margin-bottom 1em
7779

7880
.Message-list
79-
height 80vh
81+
height 98vh
82+
justify-content space-between
8083
display flex
81-
flex-direction column-reverse
84+
flex-direction column
8285
padding 20px
8386
overflow-y auto
8487
width 100%
8588
box-sizing border-box
89+
> div
90+
height 100%
91+
display flex
92+
flex-direction column
93+
justify-content flex-end
8694

8795

8896
.Message-form

src/client/views/index.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export default function Index (props) {
1010
</head>
1111
<body>
1212
<section className="container">
13-
<div className="conversation-wrapper" id="conversation">
13+
<div className="" id="conversation">
1414

1515
</div>
1616
</section>

0 commit comments

Comments
 (0)