Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import { IModalManagerChildrenProps } from '@/components/modal-manager';
  2. import { useTranslate } from '@/hooks/common-hooks';
  3. import { Form, Input, Modal } from 'antd';
  4. interface IProps extends Omit<IModalManagerChildrenProps, 'showModal'> {
  5. loading: boolean;
  6. onOk: (name: string) => void;
  7. }
  8. const FolderCreateModal = ({ visible, hideModal, loading, onOk }: IProps) => {
  9. const [form] = Form.useForm();
  10. const { t } = useTranslate('common');
  11. type FieldType = {
  12. name?: string;
  13. };
  14. const handleOk = async () => {
  15. const ret = await form.validateFields();
  16. return onOk(ret.name);
  17. };
  18. const handleCancel = () => {
  19. hideModal();
  20. };
  21. const onFinish = (values: any) => {
  22. console.log('Success:', values);
  23. };
  24. const onFinishFailed = (errorInfo: any) => {
  25. console.log('Failed:', errorInfo);
  26. };
  27. return (
  28. <Modal
  29. title={t('newFolder', { keyPrefix: 'fileManager' })}
  30. open={visible}
  31. onOk={handleOk}
  32. onCancel={handleCancel}
  33. okButtonProps={{ loading }}
  34. confirmLoading={loading}
  35. >
  36. <Form
  37. name="basic"
  38. labelCol={{ span: 4 }}
  39. wrapperCol={{ span: 20 }}
  40. style={{ maxWidth: 600 }}
  41. onFinish={onFinish}
  42. onFinishFailed={onFinishFailed}
  43. autoComplete="off"
  44. form={form}
  45. >
  46. <Form.Item<FieldType>
  47. label={t('name')}
  48. name="name"
  49. rules={[{ required: true, message: t('namePlaceholder') }]}
  50. >
  51. <Input />
  52. </Form.Item>
  53. </Form>
  54. </Modal>
  55. );
  56. };
  57. export default FolderCreateModal;