UNPKG

@veecode-platform/plugin-kong-service-manager

Version:

93 lines (90 loc) 3.75 kB
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