diff --git a/packages/app/src/components/SyncRoomCard/index.jsx b/packages/app/src/components/SyncRoomCard/index.jsx
index e6e81db0..e8c7fb1c 100644
--- a/packages/app/src/components/SyncRoomCard/index.jsx
+++ b/packages/app/src/components/SyncRoomCard/index.jsx
@@ -1,11 +1,20 @@
import React from "react"
-import { Button, Tooltip, Badge } from "antd"
+import { Button, Tooltip, Badge, Dropdown } from "antd"
import { Icons } from "components/Icons"
import LiveChat from "components/LiveChat"
import classnames from "classnames"
import "./index.less"
+const eventsToDispatch = {
+ "kick": (user) => {
+ app.cores.sync.music.moderation.kickUser(user.user_id)
+ },
+ "transfer_owner": (user) => {
+ app.cores.sync.music.moderation.transferOwner(user.user_id)
+ }
+}
+
export default class SyncRoomCard extends React.Component {
state = {
roomData: {},
@@ -59,7 +68,7 @@ export default class SyncRoomCard extends React.Component {
// chat instance
const chatInstance = app.cores.api.instance().wsInstances.chat
-
+
if (chatInstance) {
Object.keys(this.chatEvents).forEach((event) => {
chatInstance.on(event, this.chatEvents[event])
@@ -112,6 +121,45 @@ export default class SyncRoomCard extends React.Component {
}
}
+ generateUserMenu = (user) => {
+ const isSelf = user.user_id === app.userData._id
+ const imOwner = app.userData._id === this.state.roomData.ownerUserId
+
+ const items = []
+
+ if (!isSelf && imOwner) {
+ items.push({
+ key: "kick",
+ label: <>
+