UNPKG

@red-hat-developer-hub/backstage-plugin-bulk-import

Version:
60 lines (57 loc) 2.65 kB
import { jsxs, jsx } from 'react/jsx-runtime'; import { useRef } from 'react'; import { Page, Header, Content, Progress } from '@backstage/core-components'; import { usePermission } from '@backstage/plugin-permission-react'; import Alert from '@mui/material/Alert'; import AlertTitle from '@mui/material/AlertTitle'; import FormControl from '@mui/material/FormControl'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { Formik } from 'formik'; import { bulkImportPermission } from '@red-hat-developer-hub/backstage-plugin-bulk-import-common'; import { RepositorySelection, ApprovalTool } from '../types/types.esm.js'; import { DeleteDialogContextProvider } from './DeleteDialogContext.esm.js'; import { DrawerContextProvider } from './DrawerContext.esm.js'; import { RepositoriesList } from './Repositories/RepositoriesList.esm.js'; const BulkImportPage = () => { const queryClientRef = useRef(); const initialValues = { repositoryType: RepositorySelection.Repository, repositories: {}, excludedRepositories: {}, approvalTool: ApprovalTool.Git }; const bulkImportViewPermissionResult = usePermission({ permission: bulkImportPermission, resourceRef: bulkImportPermission.resourceType }); if (!queryClientRef.current) { queryClientRef.current = new QueryClient(); } const showContent = () => { if (bulkImportViewPermissionResult.loading) { return /* @__PURE__ */ jsx(Progress, {}); } if (bulkImportViewPermissionResult.allowed) { return /* @__PURE__ */ jsx(QueryClientProvider, { client: queryClientRef.current, children: /* @__PURE__ */ jsx( Formik, { initialValues, enableReinitialize: true, onSubmit: async (_values) => { }, children: /* @__PURE__ */ jsx(FormControl, { fullWidth: true, children: /* @__PURE__ */ jsx(RepositoriesList, {}) }) } ) }); } return /* @__PURE__ */ jsxs(Alert, { severity: "warning", "data-testid": "no-permission-alert", children: [ /* @__PURE__ */ jsx(AlertTitle, { children: "Permission required" }), "To view the added repositories, contact your administrator to give you the `bulk.import` permission." ] }); }; return /* @__PURE__ */ jsxs(Page, { themeId: "tool", children: [ /* @__PURE__ */ jsx(Header, { title: "Bulk import" }), /* @__PURE__ */ jsx(DrawerContextProvider, { children: /* @__PURE__ */ jsx(DeleteDialogContextProvider, { children: /* @__PURE__ */ jsx(Content, { children: showContent() }) }) }) ] }); }; export { BulkImportPage }; //# sourceMappingURL=BulkImportPage.esm.js.map