Files
linoman 06a0890c2e RolePickerDrawer: Replace RolePicker modal for drawer (#94801)
* Add RolePickerDrawer

* Add RoiePickerBadges

* Add RolePickerSelect

* Replace RolePicker in OrgUsersTable

* Replace RolePicker in ServiceAccountCreatePage

* Add RolePickerDrawer test

* Add tests

* Add i18n texts

* Update RolePickerBadges
2024-10-22 16:21:10 +02:00

38 lines
1007 B
TypeScript

import { useState } from 'react';
import { Controller, useFormContext } from 'react-hook-form';
import { toOption } from '@grafana/data';
import { MultiSelect } from '@grafana/ui';
import { RolePickerDrawer } from './RolePickerDrawer';
export interface Props {}
export const RolePickerSelect = ({}: Props) => {
const [isDrawerOpen, setIsDrawerOpen] = useState(false);
const { control } = useFormContext();
const toggleDrawer = () => setIsDrawerOpen(!isDrawerOpen);
return (
<>
<Controller
name="role-collection"
control={control}
render={({ field: { ref, value, ...field } }) => (
<MultiSelect
{...field}
onOpenMenu={toggleDrawer}
onChange={() => {
// TODO cannnot remove basic roles
// TODO open drawer instead
}}
value={value?.map(toOption)}
/>
)}
/>
{isDrawerOpen && <RolePickerDrawer onClose={toggleDrawer} />}
</>
);
};