test: region code to flag

2.0/email-builder
Lei OT 11 months ago
parent 43d2dec880
commit 76fc8f936d

@ -32,6 +32,11 @@ const OrderSignEmoji = ({ item }) => (
</>
)
const RegionCodeEmoji = ({ regionCode }) => {
const countryCode = String.fromCodePoint(...[...regionCode.toUpperCase()].map((x) => 0x1f1a5 + x.charCodeAt()))
return <span title={regionCode}>{countryCode}</span>
}
const NewTagForm = ({onSubmit,...props}) => {
const [form] = Form.useForm();
const [subLoding, setSubLoding] = useState(false);
@ -205,11 +210,17 @@ const ChatListItem = (({item, refreshConversationList,setListUpdateFlag,onSwitch
{
label: (
<>
<Popover content={<NewTagForm onSubmit={(tagLabel) => {
handleConversationItemTags(item, '', tagLabel);
setContextMenuOpen(false);
}}
/>} placement='bottom' trigger={['click']}>
<Popover
content={
<NewTagForm
onSubmit={(tagLabel) => {
handleConversationItemTags(item, '', tagLabel)
setContextMenuOpen(false)
}}
/>
}
placement='bottom'
trigger={['click']}>
<Button type='dashed' size='small' className='m-1'>
+新标签
</Button>
@ -231,36 +242,36 @@ const ChatListItem = (({item, refreshConversationList,setListUpdateFlag,onSwitch
openKeys: openTags,
onOpenChange: (openKeys) => {
if (!isEmpty(openKeys) && contextMenuOpen) {
setOpenTags(openKeys);
setOpenTags(openKeys)
}
},
onClick: ({ key, domEvent }) => {
domEvent.stopPropagation();
domEvent.stopPropagation()
if (key.startsWith('tag_')) {
const tagKey = key.replace('tag_', '');
return handleConversationItemTags(item, tagKey);
const tagKey = key.replace('tag_', '')
return handleConversationItemTags(item, tagKey)
}
switch (key) {
case 'top':
setContextMenuOpen(false);
return handleConversationItemTop(item);
setContextMenuOpen(false)
return handleConversationItemTop(item)
case 'unread':
setContextMenuOpen(false);
return handleConversationItemUnread(item);
setContextMenuOpen(false)
return handleConversationItemUnread(item)
case 'close':
setContextMenuOpen(false);
return handleConversationItemClose(item);
setContextMenuOpen(false)
return handleConversationItemClose(item)
case 'edit0':
setOpenTags([]);
setEditingChat({...item, is_new: false});
return setNewChatModalVisible(true);
setOpenTags([])
setEditingChat({ ...item, is_new: false })
return setNewChatModalVisible(true)
case 'new_tags':
return;
return
default:
// setContextMenuOpen(false);
console.log('unknown key', key);
console.log('unknown key', key)
return;
return
}
},
}}>
@ -279,9 +290,14 @@ const ChatListItem = (({item, refreshConversationList,setListUpdateFlag,onSwitch
id={item.sn}
letterItem={{ id: item.whatsapp_name || item.whatsapp_phone_number, letter: (item.whatsapp_name || item.whatsapp_phone_number).slice(0, 5) }}
alt={item.whatsapp_name}
title={(item.top_state === 1 ? '🔝' : '')
+ (item.conversation_memo || item.whatsapp_name || item.whatsapp_phone_number)}
// item.conversation_memo ||
title={
<>
{/* <RegionCodeEmoji regionCode={item?.last_message?.regionCode || ''} /> */}
{(item.top_state === 1 ? '🔝' : '')
+ (item.conversation_memo || item.whatsapp_name || item.whatsapp_phone_number)}
</>
// item.conversation_memo ||
}
// subtitle={item.coli_id}
subtitle={
<div>
@ -290,7 +306,9 @@ const ChatListItem = (({item, refreshConversationList,setListUpdateFlag,onSwitch
{/* <SentIcon /> */}
{/* <span>{item.coli_id}</span> */}
{/* <span><ReadIcon />最后一条消息</span> */}
<span><RenderLastMsg {...item?.last_message } /></span>
<span>
<RenderLastMsg {...item?.last_message} />
</span>
<div className='text-sm'>
<OrderSignEmoji item={item} />
{(item?.tags || [])?.map((tag) => (
@ -309,12 +327,16 @@ const ChatListItem = (({item, refreshConversationList,setListUpdateFlag,onSwitch
// String(item.sn) === String(tabSelectedConversation?.sn) ? ' bg-neutral-200' : '',
// ].join(' ')}
// statusText={<WhatsAppOutlined key={'channel'} className='text-whatsapp' />}
statusText={<ChannelLogo channel={flush([
item?.channels?.phone_number ? 'phone' : null,
item?.channels?.email ? 'email' : null,
item?.channels?.whatsapp_phone_number ? 'waba' : null,
item?.last_message?.type === 'email' ? 'email' : null,
])} />}
statusText={
<ChannelLogo
channel={flush([
item?.channels?.phone_number ? 'phone' : null,
item?.channels?.email ? 'email' : null,
item?.channels?.whatsapp_phone_number ? 'waba' : null,
item?.last_message?.type === 'email' ? 'email' : null,
])}
/>
}
statusColor={'#fff'}
onClick={() => onSwitchConversation(item)}
customStatusComponents={[
@ -325,6 +347,6 @@ const ChatListItem = (({item, refreshConversationList,setListUpdateFlag,onSwitch
</div>
</Dropdown>
</>
);
)
});
export default ChatListItem;

Loading…
Cancel
Save