UNPKG

@digital-ai/plugin-dai-release

Version:

Frontend functionalities for the dai-release backstage plugin

45 lines (42 loc) 1.29 kB
import { useState, useEffect } from 'react'; import { daiReleaseApiRef } from '../api/DaiReleaseApi.esm.js'; import '@backstage/errors'; import 'moment'; import { useApi } from '@backstage/core-plugin-api'; function useFolders() { const [folders, setFolders] = useState({ folders: [], totalPages: 0, totalElements: 0 }); const [error, setError] = useState(null); const [shouldFetch, setShouldFetch] = useState(false); const [fetchParams, setFetchParams] = useState(null); const api = useApi(daiReleaseApiRef); useEffect(() => { const fetchFolders = async () => { if (!fetchParams) return; try { const folderResults = await api.getFolders(fetchParams.instance); setFolders(folderResults); setError(null); } catch (err) { setError( `Error in workflowID: ${fetchParams.workflowId} ${err.message}` ); } finally { setShouldFetch(false); } }; if (shouldFetch) { fetchFolders(); } }, [shouldFetch, fetchParams, api]); const triggerFetch = (instance, workflowId) => { setFetchParams({ instance, workflowId }); setShouldFetch(true); }; return { folders, error, triggerFetch }; } export { useFolders }; //# sourceMappingURL=useFolders.esm.js.map