@@ -25,8 +25,8 @@ const containerBaseStyles: React.CSSProperties = {
25
25
position : "relative" ,
26
26
} ;
27
27
28
- const tooltipBaseStyles : React . CSSProperties = {
29
- bottom : "26px" ,
28
+ const tooltipBaseStyles = ( tooltipPosition : string ) : React . CSSProperties => ( {
29
+ [ tooltipPosition === "above" ? " bottom" : "top" ] : "26px" ,
30
30
maxWidth : "fit-content" ,
31
31
position : "absolute" ,
32
32
width : "auto" ,
@@ -41,10 +41,10 @@ const tooltipBaseStyles: React.CSSProperties = {
41
41
padding : "6px 8px" ,
42
42
borderRadius : "5px" ,
43
43
opacity : 0 ,
44
- transform : " translateY(-5px)" ,
44
+ transform : ` translateY(${ tooltipPosition === "above" ? " -5px" : "5px" } )` ,
45
45
visibility : "hidden" ,
46
46
transition : "all 0.2s ease-in-out" ,
47
- } ;
47
+ } ) ;
48
48
49
49
const toolTipVisibleStyles : React . CSSProperties = {
50
50
opacity : 1 ,
@@ -60,6 +60,7 @@ const CopyMailTo = ({
60
60
containerStyles = { } ,
61
61
tooltipStyles = { } ,
62
62
anchorStyles = { } ,
63
+ tooltipPosition = "above" ,
63
64
} : {
64
65
email : string ;
65
66
children ?: React . ReactNode ;
@@ -68,6 +69,7 @@ const CopyMailTo = ({
68
69
containerStyles ?: React . CSSProperties ;
69
70
tooltipStyles ?: React . CSSProperties ;
70
71
anchorStyles ?: React . CSSProperties ;
72
+ tooltipPosition ?: string ;
71
73
} ) : JSX . Element => {
72
74
const [ showCopied , setShowCopied ] = React . useState ( false ) ;
73
75
const [ showTooltip , setShowTooltip ] = React . useState ( false ) ;
@@ -101,10 +103,10 @@ const CopyMailTo = ({
101
103
} ;
102
104
103
105
const allTooltipStyles = {
104
- ...tooltipBaseStyles ,
105
- ...tooltipStyles ,
106
- ...( showTooltip && toolTipVisibleStyles ) ,
107
- } ;
106
+ ...tooltipBaseStyles ( tooltipPosition ) ,
107
+ ...tooltipStyles ,
108
+ ...( showTooltip && toolTipVisibleStyles ) ,
109
+ } ;
108
110
109
111
return (
110
112
< span style = { allContainerStyles } >
0 commit comments