import { useEffect, useState } from 'react'; import { // Link, useSearchParams, useParams, useNavigate, } from 'react-router-dom'; import { TrashCan, Edit, // @ts-ignore } from '@carbon/icons-react'; // @ts-ignore import { Button, Stack } from '@carbon/react'; import { Can } from '@casl/react'; import ProcessBreadcrumb from '../components/ProcessBreadcrumb'; import HttpService from '../services/HttpService'; import { getPageInfoFromSearchParams, modifyProcessIdentifierForPathParam, unModifyProcessIdentifierForPathParam, } from '../helpers'; import { PaginationObject, PermissionsToCheck, ProcessGroup, // ProcessModel, } from '../interfaces'; import { useUriListForPermissions } from '../hooks/UriListForPermissions'; import { usePermissionFetcher } from '../hooks/PermissionService'; import ProcessGroupListTiles from '../components/ProcessGroupListTiles'; import ButtonWithConfirmation from '../components/ButtonWithConfirmation'; import ProcessModelListTiles from '../components/ProcessModelListTiles'; export default function ProcessGroupShow() { const params = useParams(); const [searchParams] = useSearchParams(); const navigate = useNavigate(); const [processGroup, setProcessGroup] = useState(null); // const [processModels, setProcessModels] = useState([]); const [modelPagination, setModelPagination] = useState(null); const { targetUris } = useUriListForPermissions(); const permissionRequestData: PermissionsToCheck = { [targetUris.processGroupListPath]: ['POST'], [targetUris.processGroupShowPath]: ['PUT', 'DELETE'], [targetUris.processModelCreatePath]: ['POST'], }; const { ability } = usePermissionFetcher(permissionRequestData); useEffect(() => { const { page, perPage } = getPageInfoFromSearchParams(searchParams); const setProcessModelFromResult = (result: any) => { // setProcessModels(result.results); setModelPagination(result.pagination); }; const processResult = (result: any) => { setProcessGroup(result); const unmodifiedProcessGroupId = unModifyProcessIdentifierForPathParam( (params as any).process_group_id ); HttpService.makeCallToBackend({ path: `/process-models?process_group_identifier=${unmodifiedProcessGroupId}&per_page=${perPage}&page=${page}`, successCallback: setProcessModelFromResult, }); }; 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: ProcessModel) => { // const modifiedProcessModelId: String = // modifyProcessIdentifierForPathParam((row as any).id); // return ( // // // // {row.id} // // // {row.display_name} // // ); // }); // return ( //
//

Process Models

// // // // // // // // {rows} //
Process Model IdDisplay Name
//
// ); // }; const navigateToProcessGroups = (_result: any) => { navigate(`/admin/process-groups`); }; const deleteProcessGroup = () => { if (processGroup) { HttpService.makeCallToBackend({ path: `/process-groups/${modifyProcessIdentifierForPathParam( processGroup.id )}`, successCallback: navigateToProcessGroups, httpMethod: 'DELETE', }); } }; if (processGroup && modelPagination) { // const { page, perPage } = getPageInfoFromSearchParams(searchParams); const modifiedProcessGroupId = modifyProcessIdentifierForPathParam( processGroup.id ); return ( <>

Process Group: {processGroup.display_name}

{processGroup.description}



    Process Models} processGroup={processGroup} /> {/* eslint-disable-next-line sonarjs/no-gratuitous-expressions */} {/* {modelPagination && modelPagination.total > 0 && ( )} */}

    Process Groups} />
); } return null; }