58 lines
1.6 KiB
TypeScript

import FormField from "@/components/ui/form";
import { MiscFormFieldProps } from "../types";
import { InputField } from "@/components/ui/input";
import { SelectField } from "@/components/ui/select";
import { incusTypes } from "../schema/form";
import CredentialsSection from "./credentials-section";
import { useKeychainsOptions } from "../hooks/query";
export const IncusFormFields = ({ form }: MiscFormFieldProps) => {
const keys = useKeychainsOptions();
const type = form.watch("metadata.type");
return (
<>
<FormField label="Type">
<SelectField
form={form}
name="metadata.type"
placeholder="Select Type"
items={incusTypes}
/>
</FormField>
<FormField label="Instance ID">
<InputField
form={form}
name="metadata.instance"
placeholder="myinstance"
/>
</FormField>
{type === "lxc" && (
<>
<FormField label="User ID">
<InputField
form={form}
keyboardType="number-pad"
name="metadata.user"
/>
</FormField>
<FormField label="Shell">
<InputField form={form} name="metadata.shell" placeholder="bash" />
</FormField>
</>
)}
<CredentialsSection type="cert" />
<FormField label="Client Certificate">
<SelectField
form={form}
name="keyId"
placeholder="Select Certificate"
items={keys.filter((i) => i.type === "cert")}
/>
</FormField>
</>
);
};