fix: fix problem which allow operate to local message

add flag to hide it
pull/105/merge
moonrailgun 2 years ago
parent 58f7144c31
commit 9fb024659b

@ -75,6 +75,10 @@ const NormalMessage: React.FC<ChatMessageItemProps> = React.memo((props) => {
}, },
}); });
// 禁止对消息进行操作,因为此时消息尚未发送到远程
const disableOperate =
payload.isLocal === true || payload.sendFailed === true;
return ( return (
<div <div
className={clsx( className={clsx(
@ -169,39 +173,41 @@ const NormalMessage: React.FC<ChatMessageItemProps> = React.memo((props) => {
</div> </div>
{/* 操作 */} {/* 操作 */}
<div {!disableOperate && (
className={clsx( <div
'bg-white dark:bg-black rounded absolute right-2 cursor-pointer -top-3 shadow-sm flex', className={clsx(
{ 'bg-white dark:bg-black rounded absolute right-2 cursor-pointer -top-3 shadow-sm flex',
'opacity-0 group-hover:opacity-100 bg-opacity-80 hover:bg-opacity-100': {
!isActionBtnActive, 'opacity-0 group-hover:opacity-100 bg-opacity-80 hover:bg-opacity-100':
'opacity-100 bg-opacity-100': isActionBtnActive, !isActionBtnActive,
} 'opacity-100 bg-opacity-100': isActionBtnActive,
)} }
> )}
<TcPopover
overlayClassName="chat-message-item_action-popover"
content={emojiAction}
placement="bottomLeft"
trigger={['click']}
onOpenChange={setIsActionBtnActive}
> >
<div> <TcPopover
<MessageActionIcon icon="mdi:emoticon-happy-outline" /> overlayClassName="chat-message-item_action-popover"
</div> content={emojiAction}
</TcPopover> placement="bottomLeft"
trigger={['click']}
onOpenChange={setIsActionBtnActive}
>
<div>
<MessageActionIcon icon="mdi:emoticon-happy-outline" />
</div>
</TcPopover>
<Dropdown <Dropdown
menu={moreActions} menu={moreActions}
placement="bottomLeft" placement="bottomLeft"
trigger={['click']} trigger={['click']}
onOpenChange={setIsActionBtnActive} onOpenChange={setIsActionBtnActive}
> >
<div> <div>
<MessageActionIcon icon="mdi:dots-horizontal" /> <MessageActionIcon icon="mdi:dots-horizontal" />
</div> </div>
</Dropdown> </Dropdown>
</div> </div>
)}
</div> </div>
); );
}); });

Loading…
Cancel
Save