mirror of
https://github.com/nextui-org/nextui.git
synced 2025-12-08 19:26:11 +00:00
Fix/dropdown disabled state (#2452)
* fix(popover): dropdown behavior on disabled state and update popover trigger props * chore(dropdown): add DisabledTrigger story to dropdown.stories.tsx
This commit is contained in:
parent
65f48135d6
commit
feafb36fcc
@ -353,6 +353,36 @@ describe("Dropdown", () => {
|
||||
expect(menu).toBeFalsy();
|
||||
});
|
||||
|
||||
it("should not open on disabled dropdown", () => {
|
||||
const wrapper = render(
|
||||
<Dropdown isDisabled>
|
||||
<DropdownTrigger>
|
||||
<Button data-testid="trigger-test">Trigger</Button>
|
||||
</DropdownTrigger>
|
||||
<DropdownMenu aria-label="Actions">
|
||||
<DropdownItem key="new">New file</DropdownItem>
|
||||
<DropdownItem key="copy">Copy link</DropdownItem>
|
||||
<DropdownItem key="edit">Edit file</DropdownItem>
|
||||
<DropdownItem key="delete" color="danger">
|
||||
Delete file
|
||||
</DropdownItem>
|
||||
</DropdownMenu>
|
||||
</Dropdown>,
|
||||
);
|
||||
|
||||
let triggerButton = wrapper.getByTestId("trigger-test");
|
||||
|
||||
expect(triggerButton).toBeTruthy();
|
||||
|
||||
act(() => {
|
||||
triggerButton.click();
|
||||
});
|
||||
|
||||
let menu = wrapper.queryByRole("menu");
|
||||
|
||||
expect(menu).toBeFalsy();
|
||||
});
|
||||
|
||||
it("should not select on disabled item", () => {
|
||||
const onSelectionChange = jest.fn();
|
||||
const wrapper = render(
|
||||
|
||||
@ -610,6 +610,15 @@ export const DisabledKeys = {
|
||||
},
|
||||
};
|
||||
|
||||
export const DisabledTrigger = {
|
||||
render: Template,
|
||||
|
||||
args: {
|
||||
...defaultProps,
|
||||
isDisabled: true,
|
||||
},
|
||||
};
|
||||
|
||||
export const SingleSelection = {
|
||||
render: SingleSelectionTemplate,
|
||||
|
||||
|
||||
@ -30,7 +30,7 @@ const PopoverTrigger = forwardRef<"button", PopoverTriggerProps>((props, _) => {
|
||||
}, [children]);
|
||||
|
||||
const {onPress, ...rest} = useMemo(() => {
|
||||
return getTriggerProps(mergeProps(child.props, otherProps), child.ref);
|
||||
return getTriggerProps(mergeProps(otherProps, child.props), child.ref);
|
||||
}, [getTriggerProps, child.props, otherProps, child.ref]);
|
||||
|
||||
// validates if contains a NextUI Button as a child
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user