|
import { Form, Input, Modal } from 'antd'; |
|
|
|
import { IModalProps } from '@/interfaces/common'; |
|
import { IFeedbackRequestBody } from '@/interfaces/request/chat'; |
|
import { useCallback } from 'react'; |
|
|
|
type FieldType = { |
|
feedback?: string; |
|
}; |
|
|
|
const FeedbackModal = ({ |
|
visible, |
|
hideModal, |
|
onOk, |
|
loading, |
|
}: IModalProps<IFeedbackRequestBody>) => { |
|
const [form] = Form.useForm(); |
|
|
|
const handleOk = useCallback(async () => { |
|
const ret = await form.validateFields(); |
|
return onOk?.({ thumbup: false, feedback: ret.feedback }); |
|
}, [onOk, form]); |
|
|
|
return ( |
|
<Modal |
|
title="Feedback" |
|
open={visible} |
|
onOk={handleOk} |
|
onCancel={hideModal} |
|
confirmLoading={loading} |
|
> |
|
<Form |
|
name="basic" |
|
labelCol={{ span: 0 }} |
|
wrapperCol={{ span: 24 }} |
|
style={{ maxWidth: 600 }} |
|
autoComplete="off" |
|
form={form} |
|
> |
|
<Form.Item<FieldType> |
|
name="feedback" |
|
rules={[{ required: true, message: 'Please input your feedback!' }]} |
|
> |
|
<Input.TextArea rows={8} placeholder="Please input your feedback!" /> |
|
</Form.Item> |
|
</Form> |
|
</Modal> |
|
); |
|
}; |
|
|
|
export default FeedbackModal; |
|
|