Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 96d6479

Browse files
author
Andrew Mead
committed
Lesson: Working with Time
1 parent adf53d3 commit 96d6479

File tree

4 files changed

+34
-7
lines changed

4 files changed

+34
-7
lines changed

chat-app/public/index.html

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,13 @@
1616

1717
<script id="message-template" type="text/html">
1818
<div>
19-
<p>{{message}}</p>
19+
<p>{{createdAt}} - {{message}}</p>
20+
</div>
21+
</script>
22+
23+
<script id="location-message-template" type="text/html">
24+
<div>
25+
<p><a href="{{url}}" target="_blank">My current location</a></p>
2026
</div>
2127
</script>
2228

chat-app/public/js/chat.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,21 @@ const $messages = document.querySelector('#messages')
99

1010
// Templates
1111
const messageTemplate = document.querySelector('#message-template').innerHTML
12+
const locationMessageTemplate = document.querySelector('#location-message-template').innerHTML
1213

1314
socket.on('message', (message) => {
1415
console.log(message)
1516
const html = Mustache.render(messageTemplate, {
16-
message
17+
message: message.text,
18+
createdAt: moment(message.createdAt).format('h:mm a')
19+
})
20+
$messages.insertAdjacentHTML('beforeend', html)
21+
})
22+
23+
socket.on('locationMessage', (url) => {
24+
console.log(url)
25+
const html = Mustache.render(locationMessageTemplate, {
26+
url
1727
})
1828
$messages.insertAdjacentHTML('beforeend', html)
1929
})

chat-app/src/index.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ const http = require('http')
33
const express = require('express')
44
const socketio = require('socket.io')
55
const Filter = require('bad-words')
6+
const { generateMessage } = require('./utils/messages')
67

78
const app = express()
89
const server = http.createServer(app)
@@ -16,8 +17,8 @@ app.use(express.static(publicDirectoryPath))
1617
io.on('connection', (socket) => {
1718
console.log('New WebSocket connection')
1819

19-
socket.emit('message', 'Welcome!')
20-
socket.broadcast.emit('message', 'A new user has joined!')
20+
socket.emit('message', generateMessage('Welcome!'))
21+
socket.broadcast.emit('message', generateMessage('A new user has joined!'))
2122

2223
socket.on('sendMessage', (message, callback) => {
2324
const filter = new Filter()
@@ -26,17 +27,17 @@ io.on('connection', (socket) => {
2627
return callback('Profanity is not allowed!')
2728
}
2829

29-
io.emit('message', message)
30+
io.emit('message', generateMessage(message))
3031
callback()
3132
})
3233

3334
socket.on('sendLocation', (coords, callback) => {
34-
io.emit('message', `https://google.com/maps?q=${coords.latitude},${coords.longitude}`)
35+
io.emit('locationMessage', `https://google.com/maps?q=${coords.latitude},${coords.longitude}`)
3536
callback()
3637
})
3738

3839
socket.on('disconnect', () => {
39-
io.emit('message', 'A user has left!')
40+
io.emit('message', generateMessage('A user has left!'))
4041
})
4142
})
4243

chat-app/src/utils/messages.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
const generateMessage = (text) => {
2+
return {
3+
text,
4+
createdAt: new Date().getTime()
5+
}
6+
}
7+
8+
module.exports = {
9+
generateMessage
10+
}

0 commit comments

Comments
 (0)