grafana/public/app/core/components/RolePicker/hooks.ts

21 lines
649 B
TypeScript
Raw Normal View History

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