@roadiehq/backstage-plugin-jira
Version:
33 lines (30 loc) • 1.01 kB
JavaScript
import { useCallback, useEffect } from 'react';
import { useApi } from '@backstage/core-plugin-api';
import { useAsyncFn } from 'react-use';
import { handleError } from './utils.esm.js';
import { jiraApiRef } from '../api/index.esm.js';
const useUserInfo = (userId, options = {}) => {
const api = useApi(jiraApiRef);
const { showLinkedPRs = true } = options;
const getUserDetails = useCallback(async () => {
try {
setTimeout(() => document.activeElement.blur(), 0);
return await api.getUserDetails(userId, showLinkedPRs);
} catch (err) {
return handleError(err);
}
}, [api, userId, showLinkedPRs]);
const [state, fetchUserInfo] = useAsyncFn(() => getUserDetails(), [userId]);
useEffect(() => {
fetchUserInfo();
}, [userId, fetchUserInfo]);
return {
loading: state.loading,
error: state.error,
user: state?.value?.user,
tickets: state?.value?.tickets,
fetchUserInfo
};
};
export { useUserInfo };
//# sourceMappingURL=useUserInfo.esm.js.map