import { useQuery } from 'react-query';

import { getBasicInformation } from 'src/services/rolesAndPermissions';

import { rolesAndPermissionsKeys } from '../queries';
import { RoleState, RoleType } from '../types';

const useRoleBasicInfo = (roleId: string, enabled = true) => {
  const { data, isLoading } = useQuery({
    queryKey: rolesAndPermissionsKeys.basicInformation(roleId!),
    queryFn: () => getBasicInformation(roleId),
    select: r => r.data,
    enabled: !!roleId && enabled,
  });

  const roleType = data?.type;
  const isActive = data?.state === RoleState.ACTIVE;
  const isAdminRolePredefined = roleType === RoleType.ADMIN;
  const isAllUsersRolePredefined = roleType === RoleType.ALL_USERS;

  return {
    data,
    isLoading,
    isActive,
    isAdminRolePredefined,
    isAllUsersRolePredefined,
    roleType,
  };
};

export default useRoleBasicInfo;
