You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.4 KiB
48 lines
1.4 KiB
11 months ago
|
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"
|
||
|
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;
|