|
|
|
@ -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} <{email}>
|
|
|
|
|
<>{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
|
|
|
|
|