mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-10 02:54:15 +00:00
added ConnectedFriends
component
This commit is contained in:
parent
918298f89b
commit
163592b21c
59
packages/app/src/components/ConnectedFriends/index.jsx
Normal file
59
packages/app/src/components/ConnectedFriends/index.jsx
Normal file
@ -0,0 +1,59 @@
|
||||
import React from "react"
|
||||
|
||||
import User from "models/user"
|
||||
import UserPreview from "components/UserPreview"
|
||||
|
||||
import "./index.less"
|
||||
|
||||
export default (props) => {
|
||||
const [connectedUsers, setConnectedUsers] = React.useState([])
|
||||
|
||||
const fetchConnectedFriends = async () => {
|
||||
const result = await User.getConnectedUsersFollowing().catch((err) => {
|
||||
console.error(err)
|
||||
app.message.error("Failed to fetch connected friends")
|
||||
|
||||
return null
|
||||
})
|
||||
|
||||
if (result) {
|
||||
console.log(`Connected friends:`, result)
|
||||
setConnectedUsers(result)
|
||||
}
|
||||
}
|
||||
|
||||
const wsEvents = {
|
||||
"friend.connected": (user_id) => {
|
||||
setConnectedUsers([...connectedUsers, user_id])
|
||||
},
|
||||
"friend.disconnected": (user_id) => {
|
||||
setConnectedUsers(connectedUsers.filter((id) => id !== user_id))
|
||||
}
|
||||
}
|
||||
|
||||
React.useEffect(() => {
|
||||
fetchConnectedFriends()
|
||||
|
||||
for (const [event, callback] of Object.entries(wsEvents)) {
|
||||
window.app.api.namespaces["main"].listenEvent(event, callback)
|
||||
}
|
||||
|
||||
return () => {
|
||||
for (const [event, callback] of Object.entries(wsEvents)) {
|
||||
window.app.api.namespaces["main"].unlistenEvent(event, callback)
|
||||
}
|
||||
}
|
||||
}, [])
|
||||
|
||||
return <div className="connectedFriends">
|
||||
{
|
||||
connectedUsers.length === 0 ?
|
||||
<span>No connected friends</span> :
|
||||
connectedUsers.map((user_id) => {
|
||||
return <div className="item">
|
||||
<UserPreview user_id={user_id} />
|
||||
</div>
|
||||
})
|
||||
}
|
||||
</div>
|
||||
}
|
8
packages/app/src/components/ConnectedFriends/index.less
Normal file
8
packages/app/src/components/ConnectedFriends/index.less
Normal file
@ -0,0 +1,8 @@
|
||||
.connectedFriends {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.item {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
@ -50,6 +50,7 @@ export { default as CommentCreator } from "./CommentCreator"
|
||||
|
||||
// USERS
|
||||
export { default as FollowersList } from "./FollowersList"
|
||||
export { default as ConnectedFriends } from "./ConnectedFriends"
|
||||
|
||||
// OTHERS
|
||||
export * as AdminTools from "./AdminTools"
|
||||
|
Loading…
x
Reference in New Issue
Block a user