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

Loading…
Cancel
Save