Skip to content

Commit f0fb349

Browse files
committed
feat(settings): improve tooltips
Signed-off-by: Adam Setch <[email protected]>
1 parent 576e0e8 commit f0fb349

File tree

10 files changed

+381
-156
lines changed

10 files changed

+381
-156
lines changed
Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { type FC, type ReactNode, useState } from 'react';
22

33
import { QuestionIcon } from '@primer/octicons-react';
4+
import { AnchoredOverlay } from '@primer/react';
45

56
export interface ITooltip {
67
name: string;
@@ -9,33 +10,35 @@ export interface ITooltip {
910

1011
export const Tooltip: FC<ITooltip> = (props: ITooltip) => {
1112
const [showTooltip, setShowTooltip] = useState(false);
12-
// Use CSS/Tailwind to center the tooltip and constrain its width to the
13-
// viewport so it doesn't overflow the application window.
1413

1514
return (
16-
<button
17-
aria-label={props.name}
18-
className="relative"
19-
data-testid={`tooltip-${props.name}`}
20-
id={props.name}
21-
onBlur={() => setShowTooltip(false)}
22-
onFocus={() => setShowTooltip(true)}
23-
onMouseEnter={() => setShowTooltip(true)}
24-
onMouseLeave={() => setShowTooltip(false)}
25-
type="button"
26-
>
27-
<QuestionIcon className="text-gitify-tooltip-icon" />
28-
{showTooltip && (
29-
<div
30-
className={
31-
'absolute left-1/2 top-full mt-2 z-10 w-[240px] max-w-[calc(100vw-16px)] -translate-x-1/2 rounded-sm border border-gray-300 p-2 shadow-sm bg-gitify-tooltip-popout'
32-
}
15+
<AnchoredOverlay
16+
align="center"
17+
onClose={() => setShowTooltip(false)}
18+
onOpen={() => setShowTooltip(true)}
19+
open={showTooltip}
20+
renderAnchor={(anchorProps) => (
21+
<button
22+
{...anchorProps}
23+
aria-label={props.name}
24+
data-testid={`tooltip-${props.name}`}
25+
id={props.name}
26+
onMouseEnter={() => setShowTooltip(true)}
27+
onMouseLeave={() => setShowTooltip(false)}
28+
type="button"
3329
>
34-
<div className="text-left text-xs text-gitify-font">
35-
{props.tooltip}
36-
</div>
37-
</div>
30+
<QuestionIcon className="text-gitify-tooltip-icon" />
31+
</button>
3832
)}
39-
</button>
33+
side="outside-bottom"
34+
>
35+
<div
36+
className={
37+
'z-10 w-30 rounded-sm border border-gray-300 p-2 shadow-sm bg-gitify-tooltip-popout text-left text-xs text-gitify-font'
38+
}
39+
>
40+
{props.tooltip}
41+
</div>
42+
</AnchoredOverlay>
4043
);
4144
};

src/renderer/components/fields/__snapshots__/Checkbox.test.tsx.snap

Lines changed: 6 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/renderer/components/fields/__snapshots__/Tooltip.test.tsx.snap

Lines changed: 6 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/renderer/components/filters/__snapshots__/FilterSection.test.tsx.snap

Lines changed: 54 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)