1
- import React from "react" ;
1
+ import React , { useRef , useState } from "react" ;
2
2
import { Button , Popconfirm , Tooltip } from "antd" ;
3
3
import workspaceSvg from "@/assets/img/workspace.svg"
4
4
import {
@@ -8,6 +8,21 @@ import {
8
8
import styles from "./styles.module.less"
9
9
10
10
const WorkspaceCard = ( { title, desc, nickName, createDate, onClick, onDelete, handleEdit } ) => {
11
+ const [ showTooltip , setShowTooltip ] = useState ( false ) ;
12
+ const timerRef = useRef ( null ) ;
13
+
14
+ const handleMouseEnter = ( ) => {
15
+ timerRef . current = setTimeout ( ( ) => {
16
+ setShowTooltip ( true ) ;
17
+ } , 1000 ) ;
18
+ } ;
19
+
20
+ const handleMouseLeave = ( ) => {
21
+ if ( timerRef . current ) {
22
+ clearTimeout ( timerRef . current ) ;
23
+ }
24
+ setShowTooltip ( false ) ;
25
+ } ;
11
26
12
27
return (
13
28
< div className = { styles . workspace_card } >
@@ -17,7 +32,9 @@ const WorkspaceCard = ({ title, desc, nickName, createDate, onClick, onDelete, h
17
32
< div className = { styles . workspace_card_icon } >
18
33
< img src = { workspaceSvg } alt = "svgIcon" />
19
34
</ div >
20
- < div className = { styles . workspace_card_title } > { title } </ div >
35
+ < div className = { styles . workspace_card_title } >
36
+ { title }
37
+ </ div >
21
38
</ div >
22
39
< div >
23
40
< Button type = 'link' onClick = { ( e ) => {
@@ -56,8 +73,21 @@ const WorkspaceCard = ({ title, desc, nickName, createDate, onClick, onDelete, h
56
73
</ div >
57
74
</ div >
58
75
< div className = { styles . workspace_card_content } onClick = { onClick } style = { { cursor : 'pointer' } } >
59
- < Tooltip title = { desc } placement = "topLeft" >
60
- < div className = { styles . kusion_card_content_desc } >
76
+ < Tooltip
77
+ title = { desc }
78
+ placement = "topLeft"
79
+ open = { showTooltip }
80
+ onOpenChange = { ( visible ) => {
81
+ if ( ! visible ) {
82
+ handleMouseLeave ( ) ;
83
+ }
84
+ } }
85
+ >
86
+ < div
87
+ className = { styles . kusion_card_content_desc }
88
+ onMouseEnter = { handleMouseEnter }
89
+ onMouseLeave = { handleMouseLeave }
90
+ >
61
91
{ desc }
62
92
</ div >
63
93
</ Tooltip >
0 commit comments