Skip to content

Commit 44e14ac

Browse files
committed
refactor: replace deprecated Popover in UserGroupsCell
1 parent 942842f commit 44e14ac

File tree

1 file changed

+77
-90
lines changed

1 file changed

+77
-90
lines changed

site/src/pages/UsersPage/UsersTable/UserGroupsCell.tsx

Lines changed: 77 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@ import List from "@mui/material/List";
44
import ListItem from "@mui/material/ListItem";
55
import type { Group } from "api/typesGenerated";
66
import { Avatar } from "components/Avatar/Avatar";
7-
import {
8-
Popover,
9-
PopoverContent,
10-
PopoverTrigger,
11-
} from "components/deprecated/Popover/Popover";
127
import { OverflowY } from "components/OverflowY/OverflowY";
138
import { TableCell } from "components/Table/Table";
9+
import {
10+
Tooltip,
11+
TooltipContent,
12+
TooltipProvider,
13+
TooltipTrigger,
14+
} from "components/Tooltip/Tooltip";
1415
import type { FC } from "react";
1516

1617
type GroupsCellProps = {
@@ -28,98 +29,84 @@ export const UserGroupsCell: FC<GroupsCellProps> = ({ userGroups }) => {
2829
// the table UI
2930
<em css={{ fontStyle: "normal" }}>N/A</em>
3031
) : (
31-
<Popover mode="hover">
32-
<PopoverTrigger>
33-
<button
34-
css={{
35-
cursor: "pointer",
36-
backgroundColor: "transparent",
37-
border: "none",
38-
padding: 0,
39-
color: "inherit",
40-
lineHeight: "1",
41-
}}
42-
type="button"
43-
>
44-
<div className="flex flex-row gap-2 items-center">
45-
<GroupIcon
46-
css={{
47-
width: "1rem",
48-
height: "1rem",
49-
opacity: userGroups.length > 0 ? 0.8 : 0.5,
50-
}}
51-
/>
52-
53-
<span>
54-
{userGroups.length} Group{userGroups.length !== 1 && "s"}
55-
</span>
56-
</div>
57-
</button>
58-
</PopoverTrigger>
59-
60-
<PopoverContent
61-
disableScrollLock
62-
disableRestoreFocus
63-
css={{
64-
".MuiPaper-root": {
65-
minWidth: "auto",
66-
},
67-
}}
68-
anchorOrigin={{
69-
vertical: "top",
70-
horizontal: "center",
71-
}}
72-
transformOrigin={{
73-
vertical: "bottom",
74-
horizontal: "center",
75-
}}
76-
>
77-
<OverflowY maxHeight={400}>
78-
<List
79-
component="ul"
32+
<TooltipProvider>
33+
<Tooltip delayDuration={0}>
34+
<TooltipTrigger asChild>
35+
<button
8036
css={{
81-
display: "flex",
82-
flexFlow: "column nowrap",
83-
fontSize: theme.typography.body2.fontSize,
84-
padding: "4px 2px",
85-
gap: 0,
37+
cursor: "pointer",
38+
backgroundColor: "transparent",
39+
border: "none",
40+
padding: 0,
41+
color: "inherit",
42+
lineHeight: "1",
8643
}}
44+
type="button"
8745
>
88-
{userGroups.map((group) => {
89-
const groupName = group.display_name || group.name;
90-
return (
91-
<ListItem
92-
key={group.id}
93-
css={{
94-
columnGap: 10,
95-
alignItems: "center",
96-
}}
97-
>
98-
<Avatar
99-
size="sm"
100-
variant="icon"
101-
src={group.avatar_url}
102-
fallback={groupName}
103-
/>
46+
<div className="flex flex-row gap-2 items-center">
47+
<GroupIcon
48+
css={{
49+
width: "1rem",
50+
height: "1rem",
51+
opacity: userGroups.length > 0 ? 0.8 : 0.5,
52+
}}
53+
/>
54+
55+
<span>
56+
{userGroups.length} Group{userGroups.length !== 1 && "s"}
57+
</span>
58+
</div>
59+
</button>
60+
</TooltipTrigger>
10461

105-
<span
62+
<TooltipContent className="p-0 bg-surface-secondary border-surface-quaternary text-white">
63+
<OverflowY maxHeight={400}>
64+
<List
65+
component="ul"
66+
css={{
67+
display: "flex",
68+
flexFlow: "column nowrap",
69+
fontSize: theme.typography.body2.fontSize,
70+
padding: "4px 2px",
71+
gap: 0,
72+
}}
73+
>
74+
{userGroups.map((group) => {
75+
const groupName = group.display_name || group.name;
76+
return (
77+
<ListItem
78+
key={group.id}
10679
css={{
107-
whiteSpace: "nowrap",
108-
textOverflow: "ellipsis",
109-
overflow: "hidden",
110-
lineHeight: 1,
111-
margin: 0,
80+
columnGap: 10,
81+
alignItems: "center",
11282
}}
11383
>
114-
{groupName || <em>N/A</em>}
115-
</span>
116-
</ListItem>
117-
);
118-
})}
119-
</List>
120-
</OverflowY>
121-
</PopoverContent>
122-
</Popover>
84+
<Avatar
85+
size="sm"
86+
variant="icon"
87+
src={group.avatar_url}
88+
fallback={groupName}
89+
/>
90+
91+
<span
92+
css={{
93+
whiteSpace: "nowrap",
94+
textOverflow: "ellipsis",
95+
overflow: "hidden",
96+
lineHeight: 1,
97+
margin: 0,
98+
}}
99+
>
100+
{groupName || <em>N/A</em>}
101+
</span>
102+
</ListItem>
103+
);
104+
})}
105+
</List>
106+
</OverflowY>
107+
</TooltipContent>
108+
</Tooltip>
109+
</TooltipProvider>
123110
)}
124111
</TableCell>
125112
);

0 commit comments

Comments
 (0)