perf: 切换邮箱

2.0/email-builder
Lei OT 11 months ago
parent 0a353a2263
commit 3884ecb5da

@ -109,7 +109,7 @@ const EmailEditorPopup = ({ open, setOpen, fromEmail, fromUser, conversationid,
form.setFieldValue('abstract', getAbstract(textContent));
};
const [newFromEmail, setNewFromEmail] = useState('');
const [newFromEmail, setNewFromEmail] = useState();
const [initialForm, setInitialForm] = useState({});
const [initialContent, setInitialContent] = useState('');

@ -1,30 +1,31 @@
import { useState, useEffect } from 'react';
import { Button, ConfigProvider, Dropdown, Flex } from 'antd';
import { DownOutlined } from '@ant-design/icons';
import EmailEditorPopup from './EmailEditorPopup';
import useStyleStore from '@/stores/StyleStore';
import useAuthStore from '@/stores/AuthStore';
import { useState, useEffect } from 'react'
import { Button, ConfigProvider, Dropdown, Flex, Select } from 'antd'
import { DownOutlined } from '@ant-design/icons'
import EmailEditorPopup from './EmailEditorPopup'
import useStyleStore from '@/stores/StyleStore'
import useAuthStore from '@/stores/AuthStore'
// import { isEmpty, } from '@/utils/commons';
import useConversationStore from '@/stores/ConversationStore';
import { useOrderStore, } from "@/stores/OrderStore";
import useConversationStore from '@/stores/ConversationStore'
import { useOrderStore } from '@/stores/OrderStore'
import { EditIcon } from '@/components/Icons'
const EmailSwitcher = ({ ...props }) => {
const [mobile] = useStyleStore((state) => [state.mobile]);
const [mobile] = useStyleStore((state) => [state.mobile])
const {userId, username, emailList} = useAuthStore((state) => state.loginUser);
const { userId, username, emailList } = useAuthStore((state) => state.loginUser)
// const websocketOpened = useConversationStore((state) => state.websocketOpened);
const currentConversation = useConversationStore((state) => state.currentConversation);
const currentConversation = useConversationStore((state) => state.currentConversation)
// const talkabled = !isEmpty(currentConversation.sn) && websocketOpened;
const { orderDetail, } = useOrderStore();
const { orderDetail } = useOrderStore()
const emailListOption = emailList?.map(ele => ({ ...ele, label: ele.email, key: ele.email })) || [];
const emailListOption = emailList?.map((ele) => ({ ...ele, label: ele.email, key: ele.email, value: ele.email })) || []
const [pickEmail, setPickEmail] = useState({});
const [fromUser, setFromUser] = useState();
const [pickEmail, setPickEmail] = useState({})
const [fromUser, setFromUser] = useState()
useEffect(() => {
const order_opi = Number(orderDetail?.opi_sn || userId)
setFromUser(order_opi);
setFromUser(order_opi)
const find =
emailListOption?.find((ele) => ele.opi_sn === order_opi && ele.default === true) ||
@ -36,51 +37,49 @@ const EmailSwitcher = ({ ...props }) => {
return () => {}
}, [orderDetail])
const [open, setOpen] = useState(false);
const [fromEmail, setFromEmail] = useState('');
const openEditor = (email_addr, i) => {
setOpen(true);
setFromEmail(email_addr);
};
const [open, setOpen] = useState(false)
const [fromEmail, setFromEmail] = useState('')
const openEditor = (email_addr) => {
setOpen(true)
setFromEmail(email_addr)
}
return (
<Flex gap={8} className='p-2 bg-gray-200 rounded rounded-b-none border-gray-300 border-solid border border-b-0 border-x-0' align={'center'} justify={'flex-end'}>
<span>新邮件:</span>
<ConfigProvider theme={{ token: { colorPrimary: '#6366f1' } }}>
<Dropdown.Button
<ConfigProvider theme={{ token: { colorPrimary: '#6366f1' } }}>
<Flex gap={8} className='p-2 bg-gray-200 rounded rounded-b-none border-gray-300 border-solid border border-b-0 border-x-0' align={'center'} justify={'flex-end'}>
{/* <span>新邮件:</span> */}
{/* <Dropdown.Button
// disabled={!talkabled}
menu={{
selectable: true,
items: emailListOption,
onClick: ({ key }) => {
const find = emailListOption?.find(ele => ele.email === key);
setPickEmail(find);
openEditor(key);
const find = emailListOption?.find((ele) => ele.email === key)
setPickEmail(find)
// openEditor(key);
},
selectedKeys: [pickEmail?.email],
}}
onClick={() => openEditor(pickEmail.key)}
type='primary' className='w-auto'
// onClick={() => openEditor(pickEmail.key)}
type='primary'
className='w-auto'
icon={<DownOutlined />}>
{pickEmail?.email}
</Dropdown.Button>
</ConfigProvider>
{/* {[
{ email: 'lyt@hainatravel.com', name: 'LYT' },
{ email: 'lot@hainatravel.com', name: 'LOT' },
].map(({ email, name }, i) => (
<Button
key={email}
type='primary' size='small'
className='bg-indigo-500 shadow shadow-indigo-300 hover:!bg-indigo-400 active:bg-indigo-400 focus:bg-indigo-400'
onClick={() => openEditor(email, i)}>
{name}&nbsp;&lt;{email}&gt;
<>{pickEmail?.email}</>
</Dropdown.Button> */}
<span>切换邮箱:</span>
<Select
options={emailListOption}
labelInValue
value={pickEmail}
onChange={(val) => setPickEmail(val)}
// variant={'borderless'}
/>
<Button icon={<EditIcon />} type='primary' onClick={() => openEditor(pickEmail.key)}>
新邮件
</Button>
))} */}
{/* <EmailEditor {...{ open, setOpen }} fromEmail={fromEmail} key={'email-editor'} /> */}
<EmailEditorPopup {...{ open, setOpen }} fromEmail={fromEmail} fromUser={fromUser} conversationid={currentConversation.sn} key={'email-editor-popup'} />
{/* <EmailEditorPopup2 {...{ open, setOpen }} fromEmail={fromEmail} key={'email-editor-popup2'} /> */}
</Flex>
);
};
export default EmailSwitcher;
<EmailEditorPopup {...{ open, setOpen }} fromEmail={fromEmail} fromUser={fromUser} conversationid={currentConversation.sn} key={'email-editor-popup'} />
</Flex>
</ConfigProvider>
)
}
export default EmailSwitcher

Loading…
Cancel
Save