feat: 输入区域的小工具栏
parent
283718c4c7
commit
6796d90ce6
@ -0,0 +1,35 @@
|
||||
import { createContext, useEffect, useState } from 'react'
|
||||
import { Flex } from 'antd'
|
||||
import InputTemplate from './Template'
|
||||
import InputEmoji from './Emoji'
|
||||
import InputMediaUpload from './MediaUpload'
|
||||
import PaymentlinkBtn from './PaymentlinkBtn'
|
||||
import SnippestBtn from './SnippestBtn'
|
||||
import useConversationStore from '@/stores/ConversationStore'
|
||||
import { isEmpty } from '@/utils/commons'
|
||||
|
||||
const ComposerTools = ({ channel, invokeSendUploadMessage, invokeSendMessage, invokeUploadFileMessage, inputEmoji, ...props }) => {
|
||||
const websocket = useConversationStore((state) => state.websocket)
|
||||
const websocketOpened = useConversationStore((state) => state.websocketOpened)
|
||||
const currentConversation = useConversationStore((state) => state.currentConversation)
|
||||
const talkabled = !isEmpty(currentConversation.sn) && websocketOpened
|
||||
|
||||
return (
|
||||
<>
|
||||
<Flex gap={4} className='*:text-primary *:rounded-none items-center'>
|
||||
{['waba'].includes(channel) && <InputTemplate key='templates' disabled={!talkabled} invokeSendMessage={invokeSendMessage} />}
|
||||
|
||||
<InputEmoji key='emoji' disabled={!talkabled} inputEmoji={inputEmoji} />
|
||||
|
||||
{['waba', 'wa'].includes(channel) && <InputMediaUpload key={'addNewMedia'} disabled={!talkabled} {...{ invokeUploadFileMessage, invokeSendUploadMessage }} />}
|
||||
|
||||
<PaymentlinkBtn />
|
||||
<SnippestBtn />
|
||||
|
||||
{/* <Button type='text' className='' icon={<YoutubeOutlined />} size={'middle'} />
|
||||
<Button type='text' className='' icon={<AudioOutlined />} size={'middle'} /> */}
|
||||
</Flex>
|
||||
</>
|
||||
)
|
||||
}
|
||||
export default ComposerTools
|
@ -0,0 +1,15 @@
|
||||
import { createContext, useEffect, useState } from 'react'
|
||||
import { useOrderStore } from '@/stores/OrderStore'
|
||||
import { Tooltip, Button } from 'antd'
|
||||
|
||||
const PaymentlinkBtn = ({ ...props }) => {
|
||||
const [openPaymentDrawer] = useOrderStore((state) => [state.openDrawer])
|
||||
|
||||
return (
|
||||
<Tooltip title='支付链接' >
|
||||
{/* <Button type='text' onClick={() => openPaymentDrawer()} icon={<DollarOutlined className='text-orange-500' />} size={'middle'} /> */}
|
||||
<Button type='text' onClick={() => openPaymentDrawer()} size={'middle'} className='px-1' >💲</Button>
|
||||
</Tooltip>
|
||||
)
|
||||
}
|
||||
export default PaymentlinkBtn
|
@ -0,0 +1,17 @@
|
||||
import { createContext, useEffect, useState } from 'react'
|
||||
import useSnippetStore from '@/stores/SnippetStore'
|
||||
|
||||
import { Tooltip, Button } from 'antd'
|
||||
|
||||
const SnippestBtn = ({ ...props }) => {
|
||||
const [openSnippetDrawer] = useSnippetStore((state) => [state.openDrawer])
|
||||
|
||||
return (
|
||||
<Tooltip title='图文集'>
|
||||
<Button type='text' onClick={() => openSnippetDrawer()} size={'middle'} className='px-1'>
|
||||
📝
|
||||
</Button>
|
||||
</Tooltip>
|
||||
)
|
||||
}
|
||||
export default SnippestBtn
|
Loading…
Reference in New Issue