Skip to content

Commit 5d43a02

Browse files
committed
feat: add tooltip position appear below
1 parent 7a766e2 commit 5d43a02

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

src/demo/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const App = () => (
88
style={{ display: "flex", alignItems: "center", flexDirection: "column" }}
99
>
1010
<h1 style={{ marginBottom: "50px" }}>Copy email address to clipboard</h1>
11-
<CopyMailTo email="[email protected]" />
11+
<CopyMailTo email="[email protected]" tooltipPosition="below" />
1212
</div>
1313
);
1414

src/lib/index.tsx

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ const containerBaseStyles: React.CSSProperties = {
2525
position: "relative",
2626
};
2727

28-
const tooltipBaseStyles: React.CSSProperties = {
29-
bottom: "26px",
28+
const tooltipBaseStyles = (tooltipPosition: string): React.CSSProperties => ({
29+
[tooltipPosition === "above" ? "bottom" : "top"]: "26px",
3030
maxWidth: "fit-content",
3131
position: "absolute",
3232
width: "auto",
@@ -41,10 +41,10 @@ const tooltipBaseStyles: React.CSSProperties = {
4141
padding: "6px 8px",
4242
borderRadius: "5px",
4343
opacity: 0,
44-
transform: "translateY(-5px)",
44+
transform: `translateY(${tooltipPosition === "above" ? "-5px": "5px"})`,
4545
visibility: "hidden",
4646
transition: "all 0.2s ease-in-out",
47-
};
47+
});
4848

4949
const toolTipVisibleStyles: React.CSSProperties = {
5050
opacity: 1,
@@ -60,6 +60,7 @@ const CopyMailTo = ({
6060
containerStyles = {},
6161
tooltipStyles = {},
6262
anchorStyles = {},
63+
tooltipPosition = "above",
6364
}: {
6465
email: string;
6566
children?: React.ReactNode;
@@ -68,6 +69,7 @@ const CopyMailTo = ({
6869
containerStyles?: React.CSSProperties;
6970
tooltipStyles?: React.CSSProperties;
7071
anchorStyles?: React.CSSProperties;
72+
tooltipPosition?: string;
7173
}): JSX.Element => {
7274
const [showCopied, setShowCopied] = React.useState(false);
7375
const [showTooltip, setShowTooltip] = React.useState(false);
@@ -101,10 +103,10 @@ const CopyMailTo = ({
101103
};
102104

103105
const allTooltipStyles = {
104-
...tooltipBaseStyles,
105-
...tooltipStyles,
106-
...(showTooltip && toolTipVisibleStyles),
107-
};
106+
...tooltipBaseStyles(tooltipPosition),
107+
...tooltipStyles,
108+
...(showTooltip && toolTipVisibleStyles),
109+
};
108110

109111
return (
110112
<span style={allContainerStyles}>

0 commit comments

Comments
 (0)