import PropTypes from 'prop-types'; import { Link, useSearchParams } from 'react-router-dom'; import Pagination from '@mui/material/Pagination'; import PaginationItem from '@mui/material/PaginationItem'; import * as URLS from 'config/urls'; import AppFlowRow from 'components/FlowRow'; import NoResultFound from 'components/NoResultFound'; import useFormatMessage from 'hooks/useFormatMessage'; import useConnectionFlows from 'hooks/useConnectionFlows'; import useAppFlows from 'hooks/useAppFlows'; function AppFlows(props) { const { appKey } = props; const formatMessage = useFormatMessage(); const [searchParams, setSearchParams] = useSearchParams(); const connectionId = searchParams.get('connectionId') || undefined; const page = parseInt(searchParams.get('page') || '', 10) || 1; const isConnectionFlowEnabled = !!connectionId; const isAppFlowEnabled = !!appKey && !connectionId; const connectionFlows = useConnectionFlows( { connectionId, page }, { enabled: isConnectionFlowEnabled }, ); const appFlows = useAppFlows({ appKey, page }, { enabled: isAppFlowEnabled }); const flows = isConnectionFlowEnabled ? connectionFlows?.data?.data || [] : appFlows?.data?.data || []; const pageInfo = isConnectionFlowEnabled ? connectionFlows?.data?.meta || [] : appFlows?.data?.meta || []; const hasFlows = flows?.length; if (!hasFlows) { return ( ); } return ( <> {flows?.map((appFlow) => ( ))} {pageInfo && pageInfo.totalPages > 1 && ( setSearchParams({ page: page.toString() })} renderItem={(item) => ( )} /> )} ); } AppFlows.propTypes = { appKey: PropTypes.string.isRequired, }; export default AppFlows;