@roadiehq/backstage-plugin-jira
Version:
42 lines (39 loc) • 1.23 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 useProjectInfo = (projectKey, component, label, statusesNames) => {
const api = useApi(jiraApiRef);
const getProjectDetails = useCallback(async () => {
try {
setTimeout(() => document.activeElement.blur(), 0);
return await api.getProjectDetails(
projectKey,
component,
label,
statusesNames
);
} catch (err) {
return handleError(err);
}
}, [api, projectKey, component, label, statusesNames]);
const [state, fetchProjectInfo] = useAsyncFn(
() => getProjectDetails(),
[statusesNames]
);
useEffect(() => {
fetchProjectInfo();
}, [statusesNames, fetchProjectInfo]);
return {
projectLoading: state.loading,
project: state?.value?.project,
issues: state?.value?.issues,
tickets: state?.value?.tickets,
ticketIds: state?.value?.ticketIds,
projectError: state.error,
fetchProjectInfo
};
};
export { useProjectInfo };
//# sourceMappingURL=useProjectInfo.esm.js.map