@veecode-platform/plugin-kong-service-manager
Version:
93 lines (90 loc) • 3.75 kB
JavaScript
import React from 'react';
import { BoxComponent } from '../shared/BoxComponent/BoxComponent.esm.js';
import '../shared/SelectComponent/Select.esm.js';
import { EmptyStateComponent } from '../shared/EmptyStateComponent/EmptyStateComponent.esm.js';
import '../shared/HtmlTooltip/HtmlTooltip.esm.js';
import { Button, Box } from '@material-ui/core';
import '../shared/ButtonComponent/styles.esm.js';
import '../shared/LoadingComponent/styles.esm.js';
import '../shared/MissingAnnotation/styles.esm.js';
import '@backstage/plugin-catalog-react';
import '../shared/Fields/Fields.esm.js';
import '@material-ui/lab';
import '../shared/SkeletonComponent/styles.esm.js';
import '@material-ui/icons/OpenInNew';
import '@material-ui/icons/RemoveRedEye';
import '@material-ui/icons/VisibilityOff';
import '@material-ui/icons/Close';
import '@material-ui/icons/Info';
import '@material-ui/icons/ArrowDropDown';
import '@material-ui/icons/ArrowDropUp';
import '@material-ui/icons/AccountCircle';
import '@material-ui/icons/Add';
import '@material-ui/icons/Remove';
import '@material-ui/icons/Undo';
import useAsync from 'react-use/lib/useAsync';
import { TableComponent } from './TableComponent/TableComponent.esm.js';
import ErrorBoundary from '../ErrorBoundary/ErrorBondary.esm.js';
import { useRoutesListStyles } from './styles.esm.js';
import { ModalComponent } from './ModalComponent/ModalComponent.esm.js';
import { kongRouteCreatePermission } from '@veecode-platform/backstage-plugin-kong-service-manager-common';
import { usePermission } from '@backstage/plugin-permission-react';
import '../../context/KongServiceManagerContext.esm.js';
import { useKongServiceManagerContext } from '../../context/KongServiceManagerProvider.esm.js';
const RoutesList = () => {
const [showModal, setShowModal] = React.useState(false);
const [refresh, setRefresh] = React.useState(false);
const [route, setRoute] = React.useState();
const { loading: loadingCreateRoutePermission, allowed: canAddRoute } = usePermission({
permission: kongRouteCreatePermission
});
const { getRoutesList } = useKongServiceManagerContext();
const { content, button } = useRoutesListStyles();
const fetchRoutes = async () => {
const data = await getRoutesList();
return data;
};
const { loading, error, value: allRoutes } = useAsync(fetchRoutes, [refresh]);
const handleToggleModal = (routeValue) => {
setRoute(routeValue);
setShowModal(!showModal);
};
if (error) return /* @__PURE__ */ React.createElement(EmptyStateComponent, null);
return /* @__PURE__ */ React.createElement(ErrorBoundary, null, /* @__PURE__ */ React.createElement(
BoxComponent,
{
title: "All Routes",
button: /* @__PURE__ */ React.createElement(React.Fragment, null, !loadingCreateRoutePermission && /* @__PURE__ */ React.createElement(
Button,
{
variant: "contained",
disabled: !canAddRoute,
color: "primary",
className: button,
onClick: () => handleToggleModal({})
},
"Create"
))
},
/* @__PURE__ */ React.createElement(Box, { className: content }, /* @__PURE__ */ React.createElement(
TableComponent,
{
isLoading: loading,
dataProps: allRoutes ?? [],
handleEditModal: handleToggleModal,
refreshList: () => setRefresh((prev) => !prev)
}
))
), showModal && /* @__PURE__ */ React.createElement(
ModalComponent,
{
show: showModal,
handleCloseModal: () => handleToggleModal({}),
refreshList: () => setRefresh((prev) => !prev),
route
}
));
};
var RoutesList$1 = React.memo(RoutesList);
export { RoutesList$1 as default };
//# sourceMappingURL=RoutesList.esm.js.map