UNPKG

@digital-ai/plugin-dai-release

Version:

Frontend functionalities for the dai-release backstage plugin

92 lines (89 loc) 2.38 kB
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