@digital-ai/plugin-dai-release
Version:
Frontend functionalities for the dai-release backstage plugin
92 lines (89 loc) • 2.38 kB
JavaScript
import { daiReleaseApiRef } from '../api/DaiReleaseApi.esm.js';
import '@backstage/errors';
import 'moment';
import { useApi } from '@backstage/core-plugin-api';
import useAsyncRetryWithSelectiveDeps from './stateSelectiveDeps.esm.js';
import { useDebouncedValue } from '../utils/helpers.esm.js';
import { useState } from 'react';
function useReleases() {
const [page, setPage] = useState(0);
const [rowsPerPage, setRowsPerPage] = useState(5);
const [orderBy, setOrderBy] = useState("start_date");
const [searchTitle, setSearchTitle] = useState("");
const [fromDate, setFromDate] = useState(null);
const [toDate, setToDate] = useState(null);
const [statusTags, setStatusTags] = useState([]);
const [instance, setInstance] = useState("");
const [instanceList, setInstanceList] = useState([]);
const [openModal, setOpenModal] = useState(false);
const [modalPopupInputId, setModalPopupInputId] = useState("");
const [modalTitle, setModalTitle] = useState("");
const [modalPopupData, setModalPopupData] = useState(void 0);
const api = useApi(daiReleaseApiRef);
const debouncedSearchTitle = useDebouncedValue(searchTitle, 1e3);
const { value, loading, error, retry } = useAsyncRetryWithSelectiveDeps(
async () => {
if (instance.trim() === "") {
return api.getInstanceList().then((data) => {
setInstance(data[0].name);
setInstanceList(data);
});
}
return api.getReleases(
page,
rowsPerPage,
orderBy,
debouncedSearchTitle,
fromDate,
toDate,
statusTags,
instance
);
},
page,
setPage,
[
api,
rowsPerPage,
orderBy,
debouncedSearchTitle,
fromDate,
toDate,
statusTags,
instance
]
);
return {
items: value?.items,
loading,
error,
retry,
page,
rowsPerPage,
searchTitle,
fromDate,
toDate,
orderBy,
statusTags,
instance,
instanceList,
openModal,
modalPopupInputId,
modalTitle,
modalPopupData,
setPage,
setRowsPerPage,
setSearchTitle,
setFromDate,
setToDate,
setOrderBy,
setStatusTags,
setInstance,
setOpenModal,
setModalPopupInputId,
setModalTitle,
setModalPopupData
};
}
export { useReleases };
//# sourceMappingURL=useReleases.esm.js.map