grafana/public/app/core/components/RolePicker/hooks.ts
Mihály Gyöngyösi a915977002
Teams: Add TeamRolePicker to the Create and Edit Team pages (#53775)
* Add TeamRolePicker to CreateTeam and TeamSettings pages

* Align tests to the changes

* Change TeamRolePicker

* Add useRoleOptions hook

* Clean up

* Requested changes by reviewers

* Fixes

* Fixes
2022-08-18 13:21:06 +02:00

21 lines
649 B
TypeScript

import { useState } from 'react';
import useAsync from 'react-use/lib/useAsync';
import { contextSrv } from 'app/core/core';
import { AccessControlAction } from 'app/types';
import { fetchRoleOptions } from './api';
export const useRoleOptions = (organizationId: number) => {
const [orgId, setOrgId] = useState(organizationId);
const { value = [] } = useAsync(async () => {
if (contextSrv.licensedAccessControlEnabled() && contextSrv.hasPermission(AccessControlAction.ActionRolesList)) {
return fetchRoleOptions(orgId);
}
return Promise.resolve([]);
}, [orgId]);
return [{ roleOptions: value }, setOrgId] as const;
};