feat: 会话过期提示
parent
8c4ed2f7a9
commit
67cea51bd5
@ -0,0 +1,36 @@
|
||||
import { useEffect, useState } from 'react';
|
||||
import { Typography } from 'antd';
|
||||
import { ClockCircleOutlined } from '@ant-design/icons';
|
||||
import useConversationStore from '@/stores/ConversationStore';
|
||||
|
||||
import dayjs from 'dayjs';
|
||||
import utc from 'dayjs/plugin/utc';
|
||||
import timezone from 'dayjs/plugin/timezone';
|
||||
import relativeTime from 'dayjs/plugin/relativeTime';
|
||||
|
||||
dayjs.extend(utc);
|
||||
dayjs.extend(timezone);
|
||||
dayjs.extend(relativeTime);
|
||||
|
||||
const ExpireTimeClock = () => {
|
||||
const currentConversation = useConversationStore((state) => state.currentConversation);
|
||||
|
||||
const [customerDateTime, setCustomerDateTime] = useState();
|
||||
|
||||
useEffect(() => {
|
||||
const intervalId = setInterval(() => {
|
||||
setCustomerDateTime(dayjs(currentConversation.conversation_expireTime).tz('Asia/Shanghai').fromNow());
|
||||
}, 1000); // Update every second
|
||||
return () => clearInterval(intervalId);
|
||||
}, []);
|
||||
|
||||
return currentConversation.conversation_expireTime ? (
|
||||
<>
|
||||
<Typography.Text className='text-primary'>
|
||||
<ClockCircleOutlined className='px-1' />
|
||||
Expire {customerDateTime}
|
||||
</Typography.Text>
|
||||
</>
|
||||
) : null;
|
||||
};
|
||||
export default ExpireTimeClock;
|
Loading…
Reference in New Issue