mirror of
https://github.com/sergeyyarkov/react-chat-app.git
synced 2026-10-11 10:29:04 +03:00
date synced
This commit is contained in:
parent
1c4937d31a
commit
1b9a4ebb22
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
node_modules
|
node_modules
|
||||||
|
.idea
|
||||||
|
|||||||
@ -12,24 +12,25 @@ const ChatBox = ({ user }) => {
|
|||||||
const sendMessage = e => {
|
const sendMessage = e => {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
const message = e.target.elements.message
|
const message = e.target.elements.message
|
||||||
|
const date = new Date()
|
||||||
|
|
||||||
socket.emit('chat:message', message.value, user.username)
|
socket.emit('chat:message', message.value, user.username, `${date.getHours()}:${(`0${date.getMinutes()}`).slice(-2)}`)
|
||||||
message.value = ''
|
message.value = ''
|
||||||
}
|
}
|
||||||
|
|
||||||
const ChatContent = () => <div ref={chatContentElement} className="chat-content">
|
const ChatContent = () => <div ref={chatContentElement} className="chat-content">
|
||||||
{messages.map((obj, i) => {
|
{messages.map((client, i) => {
|
||||||
const date = new Date()
|
|
||||||
return (
|
return (
|
||||||
<div key={i} className='message'>
|
<div key={i} className='message'>
|
||||||
<div className="message-username">
|
<div className="message-username">
|
||||||
<p>
|
<p>
|
||||||
{obj.username}
|
{client.username}
|
||||||
<span>{`${date.getHours()}:${date.getMinutes()}`}</span>
|
<span>{client.date}</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="message-text">
|
<div className="message-text">
|
||||||
{obj.message}
|
{client.message}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
@ -52,8 +53,8 @@ const ChatBox = ({ user }) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
socket.on('chat:message', (message, username) => {
|
socket.on('chat:message', (message, username, date) => {
|
||||||
setMessages(messages => ([...messages, { message, username }]))
|
setMessages(messages => ([...messages, { message, username, date }]))
|
||||||
chatContentElement.current.scrollTop = chatContentElement.current.scrollHeight
|
chatContentElement.current.scrollTop = chatContentElement.current.scrollHeight
|
||||||
inputMessageElement.current.focus()
|
inputMessageElement.current.focus()
|
||||||
})
|
})
|
||||||
|
|||||||
@ -15,12 +15,17 @@ const EnterChat = ({ setUser }) => {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (username.match(/\d/)) {
|
||||||
|
setAuthError({ status: true, message: '*Numbers are not allowed!' })
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (username.length >= maxUserameLength) {
|
if (username.length >= maxUserameLength) {
|
||||||
setAuthError({ status: true, message: `*Max username length: ${maxUserameLength}` })
|
setAuthError({ status: true, message: `*Max username length: ${maxUserameLength}` })
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
setUser({ username: username, isLoggedIn: true })
|
setUser({ username: username[0].toUpperCase() + username.slice(1), isLoggedIn: true })
|
||||||
setAuthError({ status: false, message: '' })
|
setAuthError({ status: false, message: '' })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -10,6 +10,9 @@
|
|||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/sergeyyarkov/react-chat-app.git"
|
"url": "git+https://github.com/sergeyyarkov/react-chat-app.git"
|
||||||
},
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"concurrently": "^5.3.0"
|
||||||
|
},
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
|
|||||||
@ -9,8 +9,8 @@ server.get('/', (req, res) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
io.on('connection', (socket) => {
|
io.on('connection', (socket) => {
|
||||||
socket.on('chat:message', (message, username) => {
|
socket.on('chat:message', (message, username, date) => {
|
||||||
io.emit('chat:message', message, username)
|
io.emit('chat:message', message, username, date)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user