d3c2475041
Closes #21345 Closes #21344 Signed-off-by: Jon Koops <jonkoops@gmail.com> Co-authored-by: Erik Jan de Wit <erikjan.dewit@gmail.com> Co-authored-by: Mark Franceschelli <mfrances@redhat.com> Co-authored-by: Hynek Mlnařík <hmlnarik@redhat.com> Co-authored-by: Agnieszka Gancarczyk <agancarc@redhat.com>
43 lines
907 B
TypeScript
43 lines
907 B
TypeScript
import { ReactNode, useState } from "react";
|
|
import {
|
|
Dropdown,
|
|
DropdownProps,
|
|
DropdownToggle,
|
|
KebabToggle,
|
|
} from "@patternfly/react-core/deprecated";
|
|
|
|
type KeycloakDropdownProps = Omit<DropdownProps, "toggle"> & {
|
|
isKebab?: boolean;
|
|
title?: ReactNode;
|
|
dropDownItems: ReactNode[];
|
|
};
|
|
|
|
export const KeycloakDropdown = ({
|
|
isKebab = false,
|
|
title,
|
|
dropDownItems,
|
|
...rest
|
|
}: KeycloakDropdownProps) => {
|
|
const [open, setOpen] = useState(false);
|
|
|
|
return (
|
|
<Dropdown
|
|
{...rest}
|
|
isPlain
|
|
position="right"
|
|
toggle={
|
|
isKebab ? (
|
|
<KebabToggle onToggle={(_event, val) => setOpen(val)}>
|
|
{title}
|
|
</KebabToggle>
|
|
) : (
|
|
<DropdownToggle onToggle={(_event, val) => setOpen(val)}>
|
|
{title}
|
|
</DropdownToggle>
|
|
)
|
|
}
|
|
isOpen={open}
|
|
dropdownItems={dropDownItems}
|
|
/>
|
|
);
|
|
};
|