feat(MessageMenubar): Automatically hide tooltip when secondary popups appear

- Introduced state management for tooltips related to regenerate and delete actions in the MessageMenubar component.
- Updated Tooltip components to control visibility based on user interactions.
This commit is contained in:
ousugo 2025-03-21 15:16:37 +08:00 committed by 亢奋猫
parent 4927f98e59
commit 27a384b0c8

View File

@ -54,6 +54,8 @@ const MessageMenubar: FC<Props> = (props) => {
const { t } = useTranslation()
const [copied, setCopied] = useState(false)
const [isTranslating, setIsTranslating] = useState(false)
const [showRegenerateTooltip, setShowRegenerateTooltip] = useState(false)
const [showDeleteTooltip, setShowDeleteTooltip] = useState(false)
const assistantModel = assistant?.model
const {
loading,
@ -290,10 +292,14 @@ const MessageMenubar: FC<Props> = (props) => {
<Popconfirm
title={t('message.regenerate.confirm')}
okButtonProps={{ danger: true }}
destroyTooltipOnHide
icon={<QuestionCircleOutlined style={{ color: 'red' }} />}
onConfirm={onRegenerate}>
<Tooltip title={t('common.regenerate')} mouseEnterDelay={0.8}>
onConfirm={onRegenerate}
onOpenChange={(open) => open && setShowRegenerateTooltip(false)}>
<Tooltip
title={t('common.regenerate')}
mouseEnterDelay={0.8}
open={showRegenerateTooltip}
onOpenChange={setShowRegenerateTooltip}>
<ActionButton className="message-action-button">
<SyncOutlined />
</ActionButton>
@ -345,9 +351,14 @@ const MessageMenubar: FC<Props> = (props) => {
title={t('message.message.delete.content')}
okButtonProps={{ danger: true }}
icon={<QuestionCircleOutlined style={{ color: 'red' }} />}
onOpenChange={(open) => open && setShowDeleteTooltip(false)}
onConfirm={() => deleteMessage(message)}>
<ActionButton className="message-action-button" onClick={(e) => e.stopPropagation()}>
<Tooltip title={t('common.delete')} mouseEnterDelay={1}>
<Tooltip
title={t('common.delete')}
mouseEnterDelay={1}
open={showDeleteTooltip}
onOpenChange={setShowDeleteTooltip}>
<DeleteOutlined />
</Tooltip>
</ActionButton>