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