Skip to content

Commit 423bddc

Browse files
committed
refactor: replace deprecated Popover in UserDropdown
1 parent 6921bbe commit 423bddc

File tree

2 files changed

+23
-31
lines changed

2 files changed

+23
-31
lines changed

site/src/modules/dashboard/Navbar/UserDropdown/UserDropdown.tsx

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
import { useTheme } from "@emotion/react";
21
import type * as TypesGen from "api/typesGenerated";
32
import { Avatar } from "components/Avatar/Avatar";
43
import {
54
Popover,
65
PopoverContent,
76
PopoverTrigger,
8-
} from "components/deprecated/Popover/Popover";
7+
} from "components/Popover/Popover";
98
import { type FC, useState } from "react";
109
import { UserDropdownContent } from "./UserDropdownContent";
1110

@@ -22,12 +21,11 @@ export const UserDropdown: FC<UserDropdownProps> = ({
2221
supportLinks,
2322
onSignOut,
2423
}) => {
25-
const theme = useTheme();
2624
const [open, setOpen] = useState(false);
2725

2826
return (
2927
<Popover open={open} onOpenChange={setOpen}>
30-
<PopoverTrigger>
28+
<PopoverTrigger asChild>
3129
<button
3230
type="button"
3331
className="bg-transparent border-0 cursor-pointer p-0"
@@ -37,14 +35,8 @@ export const UserDropdown: FC<UserDropdownProps> = ({
3735
</PopoverTrigger>
3836

3937
<PopoverContent
40-
horizontal="right"
41-
css={{
42-
".MuiPaper-root": {
43-
minWidth: "auto",
44-
width: 260,
45-
boxShadow: theme.shadows[6],
46-
},
47-
}}
38+
align="end"
39+
className="min-w-auto w-[260px] bg-surface-secondary border-surface-quaternary"
4840
>
4941
<UserDropdownContent
5042
user={user}

site/src/modules/dashboard/Navbar/UserDropdown/UserDropdownContent.tsx

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import Divider from "@mui/material/Divider";
88
import MenuItem from "@mui/material/MenuItem";
99
import type { SvgIconProps } from "@mui/material/SvgIcon";
1010
import Tooltip from "@mui/material/Tooltip";
11+
import { PopoverClose } from "@radix-ui/react-popover";
1112
import type * as TypesGen from "api/typesGenerated";
1213
import { CopyButton } from "components/CopyButton/CopyButton";
13-
import { usePopover } from "components/deprecated/Popover/Popover";
1414
import { ExternalImage } from "components/ExternalImage/ExternalImage";
1515
import { Stack } from "components/Stack/Stack";
1616
import {
@@ -44,12 +44,6 @@ export const UserDropdownContent: FC<UserDropdownContentProps> = ({
4444
supportLinks,
4545
onSignOut,
4646
}) => {
47-
const popover = usePopover();
48-
49-
const onPopoverClose = () => {
50-
popover.setOpen(false);
51-
};
52-
5347
const renderMenuIcon = (icon: string): JSX.Element => {
5448
switch (icon) {
5549
case "bug":
@@ -80,17 +74,21 @@ export const UserDropdownContent: FC<UserDropdownContentProps> = ({
8074
<Divider css={{ marginBottom: 8 }} />
8175

8276
<Link to="/install" css={styles.link}>
83-
<MenuItem css={styles.menuItem} onClick={onPopoverClose}>
84-
<MonitorDownIcon css={styles.menuItemIcon} />
85-
<span css={styles.menuItemText}>Install CLI</span>
86-
</MenuItem>
77+
<PopoverClose asChild>
78+
<MenuItem css={styles.menuItem}>
79+
<MonitorDownIcon css={styles.menuItemIcon} />
80+
<span css={styles.menuItemText}>Install CLI</span>
81+
</MenuItem>
82+
</PopoverClose>
8783
</Link>
8884

8985
<Link to="/settings/account" css={styles.link}>
90-
<MenuItem css={styles.menuItem} onClick={onPopoverClose}>
91-
<CircleUserIcon css={styles.menuItemIcon} />
92-
<span css={styles.menuItemText}>{Language.accountLabel}</span>
93-
</MenuItem>
86+
<PopoverClose asChild>
87+
<MenuItem css={styles.menuItem}>
88+
<CircleUserIcon css={styles.menuItemIcon} />
89+
<span css={styles.menuItemText}>{Language.accountLabel}</span>
90+
</MenuItem>
91+
</PopoverClose>
9492
</Link>
9593

9694
<MenuItem css={styles.menuItem} onClick={onSignOut}>
@@ -109,10 +107,12 @@ export const UserDropdownContent: FC<UserDropdownContentProps> = ({
109107
rel="noreferrer"
110108
css={styles.link}
111109
>
112-
<MenuItem css={styles.menuItem} onClick={onPopoverClose}>
113-
{renderMenuIcon(link.icon)}
114-
<span css={styles.menuItemText}>{link.name}</span>
115-
</MenuItem>
110+
<PopoverClose asChild>
111+
<MenuItem css={styles.menuItem}>
112+
{renderMenuIcon(link.icon)}
113+
<span css={styles.menuItemText}>{link.name}</span>
114+
</MenuItem>
115+
</PopoverClose>
116116
</a>
117117
))}
118118
</>

0 commit comments

Comments
 (0)