| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import { IModalManagerChildrenProps } from '@/components/modal-manager';
- import { useTranslate } from '@/hooks/common-hooks';
- import { Form, Input, Modal } from 'antd';
- import { useEffect } from 'react';
-
- interface IProps extends Omit<IModalManagerChildrenProps, 'showModal'> {
- loading: boolean;
- initialName: string;
- onOk: (name: string) => void;
- showModal?(): void;
- }
-
- const RenameModal = ({
- visible,
- onOk,
- loading,
- initialName,
- hideModal,
- }: IProps) => {
- const [form] = Form.useForm();
- const { t } = useTranslate('common');
- type FieldType = {
- name?: string;
- };
-
- const handleOk = async () => {
- const ret = await form.validateFields();
- onOk(ret.name);
- };
-
- const onFinish = (values: any) => {
- console.log('Success:', values);
- };
-
- const onFinishFailed = (errorInfo: any) => {
- console.log('Failed:', errorInfo);
- };
-
- useEffect(() => {
- if (visible) {
- form.setFieldValue('name', initialName);
- }
- }, [initialName, form, visible]);
-
- return (
- <Modal
- title={t('rename')}
- open={visible}
- onOk={handleOk}
- onCancel={hideModal}
- okButtonProps={{ loading }}
- >
- <Form
- name="basic"
- labelCol={{ span: 4 }}
- wrapperCol={{ span: 20 }}
- style={{ maxWidth: 600 }}
- onFinish={onFinish}
- onFinishFailed={onFinishFailed}
- autoComplete="off"
- form={form}
- >
- <Form.Item<FieldType>
- label={t('name')}
- name="name"
- rules={[{ required: true, message: t('namePlaceholder') }]}
- >
- <Input />
- </Form.Item>
- </Form>
- </Modal>
- );
- };
-
- export default RenameModal;
|