@digital-ai/plugin-dai-release
Version:
Frontend functionalities for the dai-release backstage plugin
45 lines (42 loc) • 1.29 kB
JavaScript
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