Skip to content

Commit

Permalink
🐛 Popover: Ikke lukk ved klikk inni når parent er fokuserbar (#2521)
Browse files Browse the repository at this point in the history
  • Loading branch information
HalvorHaugan authored Nov 28, 2023
1 parent 1bdebfd commit 5cd1a6d
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 6 deletions.
5 changes: 5 additions & 0 deletions .changeset/four-plums-destroy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@navikt/ds-react": patch
---

:bug: Popover: Ikke lukk ved klikk inni når parent er fokuserbar
5 changes: 3 additions & 2 deletions @navikt/core/react/src/popover/Popover.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -184,9 +184,10 @@ export const Popover = forwardRef<HTMLDivElement, PopoverProps>(
(e: FocusEvent) => {
if (
e.target instanceof HTMLElement &&
![anchorEl, refs?.floating?.current].some((element) =>
![anchorEl, refs.floating.current].some((element) =>
element?.contains(e.target as Node)
)
) &&
!e.target.contains(refs.floating.current)
) {
open && onClose();
}
Expand Down
10 changes: 6 additions & 4 deletions @navikt/core/react/src/popover/popover.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { useState } from "react";
import { Popover } from "../index";
import { Button } from "../button";
import { Popover } from "../index";

const placements = [
"top",
Expand Down Expand Up @@ -47,20 +47,22 @@ export default {

export const Default = (props: any) => {
const [anchorEl, setAnchorEl] = useState<HTMLButtonElement | null>();
const [open, setOpen] = useState<boolean>(false);
const [open, setOpen] = useState(false);
return (
<div>
<div tabIndex={-1}>
<Button ref={(el) => setAnchorEl(el)} onClick={() => setOpen((x) => !x)}>
Open
</Button>
<Popover
{...props}
open={props.open ?? open}
anchorEl={anchorEl}
onClose={(e) => setOpen(e)}
onClose={() => setOpen(false)}
>
<Popover.Content>Velit in consequat</Popover.Content>
</Popover>
&nbsp;
<Button variant="secondary">Another button</Button>
</div>
);
};
Expand Down

0 comments on commit 5cd1a6d

Please sign in to comment.