keycloak-scim/js/libs/keycloak-masthead/src/KeycloakDropdown.tsx
Jon Koops d3c2475041
Upgrade admin and account console to PatternFly 5 (#28196)
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>
2024-04-05 16:37:05 +02:00

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}
/>
);
};