|
|
|
import { FC, useState } from 'react';
|
|
|
|
|
|
|
|
import CrudList from '../CrudList';
|
|
|
|
import PrepareHostForm from './PrepareHostForm';
|
|
|
|
import TestAccessForm from './TestAccessForm';
|
|
|
|
import { BodyText } from '../Text';
|
|
|
|
|
|
|
|
const ManageHost: FC = () => {
|
|
|
|
const [inquireHostResponse, setInquireHostResponse] = useState<
|
|
|
|
InquireHostResponse | undefined
|
|
|
|
>();
|
|
|
|
|
|
|
|
return (
|
|
|
|
<CrudList<APIHostOverview, APIHostDetail>
|
|
|
|
addHeader="Initialize host"
|
|
|
|
editHeader=""
|
|
|
|
entriesUrl="/host?types=dr,node"
|
|
|
|
entryUrlPrefix="/host"
|
|
|
|
getDeleteErrorMessage={(children, ...rest) => ({
|
|
|
|
...rest,
|
|
|
|
children: <>Failed to delete host(s). {children}</>,
|
|
|
|
})}
|
|
|
|
getDeleteHeader={(count) => `Delete the following ${count} host(s)?`}
|
|
|
|
getDeleteSuccessMessage={() => ({
|
|
|
|
children: <>Successfully deleted host(s)</>,
|
|
|
|
})}
|
|
|
|
listEmpty="No host(s) found"
|
|
|
|
listProps={{ allowAddItem: true, allowEdit: false }}
|
|
|
|
renderAddForm={(tools) => (
|
|
|
|
<>
|
|
|
|
<TestAccessForm setResponse={setInquireHostResponse} />
|
|
|
|
{inquireHostResponse && (
|
|
|
|
<PrepareHostForm host={inquireHostResponse} tools={tools} />
|
|
|
|
)}
|
|
|
|
</>
|
|
|
|
)}
|
|
|
|
renderDeleteItem={(hosts, { key }) => {
|
|
|
|
const host = hosts?.[key];
|
|
|
|
|
|
|
|
return <BodyText>{host?.shortHostName}</BodyText>;
|
|
|
|
}}
|
|
|
|
renderEditForm={() => <></>}
|
|
|
|
renderListItem={(uuid, { hostName }) => <BodyText>{hostName}</BodyText>}
|
|
|
|
/>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export default ManageHost;
|