@red-hat-developer-hub/backstage-plugin-bulk-import
Version:
63 lines (60 loc) • 2.61 kB
JavaScript
import { jsxs, jsx } from 'react/jsx-runtime';
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 Typography from '@mui/material/Typography';
import { Formik } from 'formik';
import { bulkImportPermission } from '@red-hat-developer-hub/backstage-plugin-bulk-import-common';
import { useTranslation } from '../hooks/useTranslation.esm.js';
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 { t } = useTranslation();
const initialValues = {
repositoryType: RepositorySelection.Repository,
repositories: {},
excludedRepositories: {},
approvalTool: ApprovalTool.Git
};
const bulkImportViewPermissionResult = usePermission({
permission: bulkImportPermission,
resourceRef: bulkImportPermission.resourceType
});
const showContent = () => {
if (bulkImportViewPermissionResult.loading) {
return /* @__PURE__ */ jsx(Progress, {});
}
if (bulkImportViewPermissionResult.allowed) {
return /* @__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: t("permissions.title") }),
t("permissions.viewRepositoriesMessage")
] });
};
return /* @__PURE__ */ jsxs(Page, { themeId: "tool", children: [
/* @__PURE__ */ jsx(
Header,
{
title: /* @__PURE__ */ jsx(Typography, { variant: "h4", component: "h1", sx: { fontWeight: "bold" }, children: t("page.title") }),
style: { borderBottom: "1px solid #ccc" }
}
),
/* @__PURE__ */ jsx(DrawerContextProvider, { children: /* @__PURE__ */ jsx(DeleteDialogContextProvider, { children: /* @__PURE__ */ jsx(Content, { children: showContent() }) }) })
] });
};
export { BulkImportPage };
//# sourceMappingURL=BulkImportPage.esm.js.map