UNPKG

@roadiehq/backstage-plugin-jira

Version:
42 lines (39 loc) 1.23 kB
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