Skip to content

Commit 26951f5

Browse files
committed
Apply review suggestions and fix lint
1 parent 738b1b8 commit 26951f5

File tree

6 files changed

+12
-10
lines changed

6 files changed

+12
-10
lines changed

site/src/components/HelpTooltip/HelpTooltip.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ export const HelpTooltipAction: FC<HelpTooltipActionProps> = ({
160160
onClick={(event) => {
161161
event.stopPropagation();
162162
onClick();
163-
popover.setIsOpen(false);
163+
popover.setOpen(false);
164164
}}
165165
>
166166
<Icon css={styles.actionIcon} />

site/src/components/Popover/Popover.tsx

+7-5
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ type BasePopoverProps = {
4343
mode?: TriggerMode;
4444
};
4545

46+
// By separating controlled and uncontrolled props, we achieve more accurate
47+
// type inference.
4648
type UncontrolledPopoverProps = BasePopoverProps & {
4749
open?: undefined;
4850
onOpenChange?: undefined;
@@ -57,16 +59,15 @@ export type PopoverProps = UncontrolledPopoverProps | ControlledPopoverProps;
5759

5860
export const Popover: FC<PopoverProps> = (props) => {
5961
const hookId = useId();
60-
const [open, setOpen] = useState(false);
62+
const [uncontrolledOpen, setUncontrolledOpen] = useState(false);
6163
const triggerRef: TriggerRef = useRef(null);
62-
const isControlled = props.open !== undefined;
6364

6465
const value: PopoverContextValue = {
6566
triggerRef,
6667
id: `${hookId}-popover`,
6768
mode: props.mode ?? "click",
68-
open: isControlled ? props.open : open,
69-
setOpen: isControlled ? props.onOpenChange : setOpen,
69+
open: props.open ?? uncontrolledOpen,
70+
setOpen: props.onOpenChange ?? setUncontrolledOpen,
7071
};
7172

7273
return (
@@ -113,7 +114,8 @@ export const PopoverTrigger = (
113114
...elementProps,
114115
...(popover.mode === "click" ? clickProps : hoverProps),
115116
"aria-haspopup": true,
116-
"aria-owns": popover.open ? popover.id : undefined,
117+
"aria-owns": popover.id,
118+
"aria-expanded": popover.open,
117119
ref: popover.triggerRef,
118120
});
119121
};

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ const DeploymentDropdownContent: FC<DeploymentDropdownProps> = ({
8787
}) => {
8888
const popover = usePopover();
8989

90-
const onPopoverClose = () => popover.setIsOpen(false);
90+
const onPopoverClose = () => popover.setOpen(false);
9191

9292
return (
9393
<nav>

site/src/modules/workspaces/WorkspaceOutdatedTooltip/WorkspaceOutdatedTooltip.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export const WorkspaceOutdatedTooltipContent: FC<TooltipProps> = ({
5656
const popover = usePopover();
5757
const { data: activeVersion } = useQuery({
5858
...templateVersion(latestVersionId),
59-
enabled: popover.isOpen,
59+
enabled: popover.open,
6060
});
6161
const theme = useTheme();
6262

site/src/pages/WorkspacePage/WorkspaceActions/BuildParametersPopover.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ const BuildParametersPopoverContent: FC<BuildParametersPopoverContentProps> = ({
117117
<Form
118118
onSubmit={(buildParameters) => {
119119
onSubmit(buildParameters);
120-
popover.setIsOpen(false);
120+
popover.setOpen(false);
121121
}}
122122
ephemeralParameters={ephemeralParameters}
123123
buildParameters={buildParameters.map(

site/src/pages/WorkspacePage/WorkspaceNotifications/Notifications.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ const NotificationPill: FC<NotificationsProps> = ({
7070
icon={icon}
7171
css={(theme) => ({
7272
"& svg": { color: theme.roles[severity].outline },
73-
borderColor: popover.isOpen ? theme.roles[severity].outline : undefined,
73+
borderColor: popover.open ? theme.roles[severity].outline : undefined,
7474
})}
7575
>
7676
{items.length}

0 commit comments

Comments
 (0)