ui: 修正 消息右鍵菜單
* 修正打開狀態 * 避免不必要的狀態變更
This commit is contained in:
@@ -33,6 +33,9 @@ export default function Message({ userId, rawData, renderHTML, message, ...props
|
|||||||
|
|
||||||
const dropDownRef = React.useRef<Dropdown>(null)
|
const dropDownRef = React.useRef<Dropdown>(null)
|
||||||
const messageJsonDialogRef = React.useRef<Dialog>(null)
|
const messageJsonDialogRef = React.useRef<Dialog>(null)
|
||||||
|
useEventListener(messageJsonDialogRef, 'click', (e) => {
|
||||||
|
e.stopPropagation()
|
||||||
|
})
|
||||||
|
|
||||||
const [isDropDownOpen, setDropDownOpen] = React.useState(false)
|
const [isDropDownOpen, setDropDownOpen] = React.useState(false)
|
||||||
|
|
||||||
@@ -116,7 +119,10 @@ export default function Message({ userId, rawData, renderHTML, message, ...props
|
|||||||
dangerouslySetInnerHTML={{
|
dangerouslySetInnerHTML={{
|
||||||
__html: renderHTML
|
__html: renderHTML
|
||||||
}} />
|
}} />
|
||||||
<mdui-menu onClick={(e) => e.stopPropagation()}>
|
<mdui-menu onClick={(e) => {
|
||||||
|
e.stopPropagation()
|
||||||
|
setDropDownOpen(false)
|
||||||
|
}}>
|
||||||
<mdui-menu-item icon="content_copy" onClick={() => copyToClipboard($(dropDownRef.current as HTMLElement).find('#msg').text())}>複製文字</mdui-menu-item>
|
<mdui-menu-item icon="content_copy" onClick={() => copyToClipboard($(dropDownRef.current as HTMLElement).find('#msg').text())}>複製文字</mdui-menu-item>
|
||||||
<mdui-menu-item icon="content_copy" onClick={() => copyToClipboard(rawData)}>複製原文</mdui-menu-item>
|
<mdui-menu-item icon="content_copy" onClick={() => copyToClipboard(rawData)}>複製原文</mdui-menu-item>
|
||||||
<mdui-menu-item icon="info" onClick={() => messageJsonDialogRef.current.open = true}>查看詳情</mdui-menu-item>
|
<mdui-menu-item icon="info" onClick={() => messageJsonDialogRef.current.open = true}>查看詳情</mdui-menu-item>
|
||||||
|
|||||||
Reference in New Issue
Block a user