import { useState, useEffect } from 'react'; import { Form, Input, Modal } from 'antd'; import { isEmpty, pick } from '@/utils/commons'; import useConversationStore from '@/stores/ConversationStore'; import { phoneNumberToWAID } from '@/channel/whatsappUtils'; export const ConversationItemForm = ({ initialValues, onFormInstanceReady }) => { const [currentConversation] = useConversationStore((state) => [state.currentConversation]); const fromCurrent = initialValues?.is_current_order ? pick(currentConversation, ['coli_sn', 'coli_id', 'opi_sn']) : {}; const [form] = Form.useForm(); const [formatPhone, setFormatPhone] = useState(''); const [formatVisible, setFormatVisible] = useState(false); useEffect(() => { onFormInstanceReady(form); setFormatPhone(phoneNumberToWAID(initialValues.phone_number || '')); }, []); useEffect(() => { form.setFieldValue('wa_id', formatPhone); return () => {}; }, [formatPhone]); const onValuesChange = (changeValues, allValues) => { if ('phone_number' in changeValues) { const _t = phoneNumberToWAID(changeValues.phone_number); setFormatPhone(_t); setFormatVisible(_t !== changeValues.phone_number); } }; return (
{/* hidden */} {initialValues.is_current_order && ( <> )} {!initialValues.is_current_order && ( )} {/*
如果会话已存在, 将直接切换
*/}
); }; export const ConversationItemFormModal = ({ open, onCreate, onCancel, initialValues, loading }) => { const [formInstance, setFormInstance] = useState(); return ( { onCancel(); formInstance?.resetFields(); }} destroyOnClose onOk={async () => { try { const values = await formInstance?.validateFields(); // formInstance?.resetFields(); onCreate(values); } catch (error) { console.log('Failed:', error); } }}> { setFormInstance(instance); }} /> ); }; export default ConversationItemFormModal;