1
1
import React , { useState } from 'react' ;
2
2
import { Tab } from '@mui/material' ;
3
3
import { AddBox , Folder , Groups2 } from '@mui/icons-material' ;
4
+ import Tooltip from '../Tooltip' ;
4
5
5
6
interface TabWithTooltipProps {
6
7
label : string ;
@@ -13,18 +14,8 @@ const TabWithTooltip: React.FC<TabWithTooltipProps> = ({
13
14
label,
14
15
value,
15
16
activeTab,
16
- handleTabChange
17
+ handleTabChange,
17
18
} ) => {
18
- const [ showTooltip , setShowTooltip ] = useState ( false ) ;
19
-
20
- const handleMouseEnter = ( ) => {
21
- setShowTooltip ( true ) ;
22
- } ;
23
-
24
- const handleMouseLeave = ( ) => {
25
- setShowTooltip ( false ) ;
26
- } ;
27
-
28
19
let iconType ;
29
20
if ( value === 0 ) {
30
21
iconType = < Folder sx = { { fontSize : '25px' } } /> ;
@@ -37,63 +28,25 @@ const TabWithTooltip: React.FC<TabWithTooltipProps> = ({
37
28
const isCollabTab = label === 'Collab' ;
38
29
39
30
return (
40
- < div onMouseEnter = { handleMouseEnter } onMouseLeave = { handleMouseLeave } >
41
- { /* Tooltip */ }
42
- { showTooltip && (
43
- < div
44
- style = { {
45
- position : 'absolute' ,
46
- bottom : isCollabTab ? '120px' : 'none' ,
47
- marginTop : ! isCollabTab ? '45px' : 'none' ,
48
- left : '50%' ,
49
- transform : 'translateX(-50%)' ,
50
- padding : '5px 10px' ,
51
- backgroundColor : '#333' ,
52
- color : '#f0f0f0' ,
53
- borderRadius : '4px' ,
31
+ < div >
32
+ < Tooltip label = { label } isCollabTab = { isCollabTab } >
33
+ < Tab
34
+ sx = { {
35
+ color : activeTab === value ? '#f88e16' : '#9C9D9F' ,
36
+ backgroundColor : activeTab === value && '#2D313A' ,
37
+ '&.Mui-selected' : { color : '#f88e16' } ,
38
+ '&:hover' : { color : '#f88e16' } ,
54
39
fontSize : '11px' ,
55
40
textTransform : 'none' ,
56
- whiteSpace : 'nowrap ',
57
- zIndex : 1 ,
58
- transition : 'opacity 0.3s ease' ,
41
+ position : isCollabTab ? 'absolute' : 'relative ',
42
+ bottom : isCollabTab ? '80px' : 'auto' ,
43
+ opacity : 1 ,
59
44
} }
60
- >
61
- { label }
62
- < div
63
- style = { {
64
- position : 'absolute' ,
65
- top : isCollabTab ? '100%' : '-5px' ,
66
- left : '50%' ,
67
- transform : 'translateX(-50%)' ,
68
- width : '0' ,
69
- height : '0' ,
70
- borderLeft : '5px solid transparent' ,
71
- borderRight : '5px solid transparent' ,
72
- borderBottom : ! isCollabTab ? '5px solid #333' : 'none' ,
73
- borderTop : isCollabTab ? '5px solid #333' : 'none' ,
74
-
75
- } }
76
- />
77
- </ div >
78
- ) }
79
-
80
- { /* Tab */ }
81
- < Tab
82
- sx = { {
83
- color : activeTab === value ? '#f88e16' : '#9C9D9F' ,
84
- backgroundColor : activeTab === value && '#2D313A' ,
85
- '&.Mui-selected' : { color : '#f88e16' } ,
86
- '&:hover' : { color : '#f88e16' } ,
87
- fontSize : '11px' ,
88
- textTransform : 'none' ,
89
- position : isCollabTab ? 'absolute' : 'relative' ,
90
- bottom : isCollabTab ? '80px' : 'auto' ,
91
- opacity : 1 ,
92
- } }
93
- icon = { iconType }
94
- value = { value }
95
- onClick = { ( event ) => handleTabChange ( event , value ) }
96
- />
45
+ icon = { iconType }
46
+ value = { value }
47
+ onClick = { ( event ) => handleTabChange ( event , value ) }
48
+ />
49
+ </ Tooltip >
97
50
</ div >
98
51
) ;
99
52
} ;
0 commit comments