import { useEffect, useState } from 'react'; import { Link, useSearchParams, useParams } from 'react-router-dom'; // @ts-ignore import { Button, Table, Stack } from '@carbon/react'; import ProcessBreadcrumb from '../components/ProcessBreadcrumb'; import PaginationForTable from '../components/PaginationForTable'; import HttpService from '../services/HttpService'; import { getPageInfoFromSearchParams, modifyProcessModelPath, unModifyProcessModelPath, } from '../helpers'; import { ProcessGroup } from '../interfaces'; export default function ProcessGroupShow() { const params = useParams(); const [searchParams] = useSearchParams(); const [processGroup, setProcessGroup] = useState(null); const [processModels, setProcessModels] = useState([]); const [processGroups, setProcessGroups] = useState([]); const [pagination, setPagination] = useState(null); useEffect(() => { const { page, perPage } = getPageInfoFromSearchParams(searchParams); const setProcessModelFromResult = (result: any) => { setProcessModels(result.results); setPagination(result.pagination); }; const processResult = (result: any) => { setProcessGroup(result); const unmodifiedProcessGroupId = unModifyProcessModelPath( (params as any).process_group_id ); HttpService.makeCallToBackend({ path: `/process-models?process_group_identifier=${unmodifiedProcessGroupId}&per_page=${perPage}&page=${page}`, successCallback: setProcessModelFromResult, }); setProcessGroups(result.process_groups); }; HttpService.makeCallToBackend({ path: `/process-groups/${params.process_group_id}`, successCallback: processResult, }); }, [params, searchParams]); const buildModelTable = () => { if (processGroup === null) { return null; } const rows = processModels.map((row) => { const modifiedProcessModelId: String = (row as any).id.replace('/', ':'); return ( {(row as any).id} {(row as any).display_name} ); }); return (

Process Models

{rows}
Process Model Id Display Name
); }; const buildGroupTable = () => { if (processGroup === null) { return null; } const rows = processGroups.map((row) => { const modifiedProcessGroupId: String = modifyProcessModelPath( (row as any).id ); return ( {(row as any).id} {(row as any).display_name} ); }); return (

Process Groups

{rows}
Process Group Id Display Name
); }; if (processGroup && pagination) { const { page, perPage } = getPageInfoFromSearchParams(searchParams); const modifiedProcessGroupId = modifyProcessModelPath( (processGroup as any).id ); return ( <> ); } return null; }