create.tsx 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import { Create, useForm, useSelect } from "@refinedev/antd";
  2. import { Form, Input, Select, InputNumber, Divider } from "antd";
  3. import { DeploymentFormData, Environment } from "../../types/deployment";
  4. export const DeploymentCreate = () => {
  5. const { formProps, saveButtonProps } = useForm<DeploymentFormData>({});
  6. const { selectProps: clientSelectProps } = useSelect({
  7. resource: "clients",
  8. });
  9. const { selectProps: blueprintSelectProps } = useSelect({
  10. resource: "blueprints",
  11. });
  12. return (
  13. <Create saveButtonProps={saveButtonProps}>
  14. <Form {...formProps} layout="vertical">
  15. <Form.Item
  16. label={"Deployment Name"}
  17. name="name"
  18. rules={[{ required: true }]}
  19. >
  20. <Input />
  21. </Form.Item>
  22. <Form.Item
  23. label={"Client"}
  24. name="clientId"
  25. rules={[{ required: true }]}
  26. >
  27. <Select {...clientSelectProps} placeholder="Select client" />
  28. </Form.Item>
  29. <Form.Item
  30. label={"Blueprint"}
  31. name="blueprintId"
  32. rules={[{ required: true }]}
  33. >
  34. <Select {...blueprintSelectProps} placeholder="Select blueprint" />
  35. </Form.Item>
  36. <Divider>Configuration</Divider>
  37. <Form.Item
  38. label={"Version"}
  39. name="version"
  40. initialValue={"1.0.0"}
  41. rules={[{ required: true }]}
  42. >
  43. <Input />
  44. </Form.Item>
  45. <Form.Item
  46. label={"Container Instances"}
  47. name="containerCount"
  48. initialValue={1}
  49. rules={[{ required: true }]}
  50. >
  51. <InputNumber min={1} max={10} />
  52. </Form.Item>
  53. <Form.Item
  54. label={"Environment"}
  55. name="environment"
  56. initialValue={"production"}
  57. rules={[{ required: true }]}
  58. >
  59. <Select
  60. options={[
  61. { value: "development", label: "Development" },
  62. { value: "staging", label: "Staging" },
  63. { value: "production", label: "Production" },
  64. ]}
  65. />
  66. </Form.Item>
  67. </Form>
  68. </Create>
  69. );
  70. };