整理 ConversationContext .

todo: 使用 useContext useReducer 管理事件触发更新状态
dev/chat
Lei OT 1 year ago
parent 3f31656630
commit d8a88be180

@ -62,7 +62,7 @@ export const useConversations = () => {
useEffect(() => { useEffect(() => {
getConversationsList(); getConversationsList();
// getTemplates(); getTemplates();
return () => {}; return () => {};
}, []); }, []);
@ -90,7 +90,7 @@ export const useConversations = () => {
const [templatesList, setTemplatesList] = useState([]); const [templatesList, setTemplatesList] = useState([]);
const getTemplates = async () => { const getTemplates = async () => {
const data = await fetchJSON(`${API_HOST}/listtemplates`); const data = await fetchJSON(`${API_HOST}/listtemplates`);
const canUseTemplates = (data?.result?.items || []).filter((_t) => _t.status !== 'REJECTED'); const canUseTemplates = (data?.result?.items || []).filter((_t) => _t.status !== 'REJECTED').map((ele) => ({ ...ele, components: groupBy(ele.components, (_c) => _c.type.toLowerCase()) }));
setTemplatesList(canUseTemplates); setTemplatesList(canUseTemplates);
}; };
@ -163,7 +163,7 @@ export const useConversations = () => {
setMessages((prevMessages) => { setMessages((prevMessages) => {
return prevMessages.map(ele => { return prevMessages.map(ele => {
if (ele.id === message.id) { if (ele.id === message.id) {
return {...ele, id: message.id, status: message.status}; return {...ele, id: message.id, status: message.status}; // todo: renderId 需要返回
} }
return ele; return ele;
}); });
@ -214,8 +214,8 @@ export const useConversations = () => {
sendMessage, sendMessage,
getConversationsList, getConversationsList,
switchConversation, switchConversation,
// templates: templatesList, // setTemplates, getTemplates, templates: templatesList, // setTemplates, getTemplates,
templates, // debug: 0 // templates, // debug: 0
customerOrderProfile, customerOrderProfile,
}; };
}; };

@ -7,7 +7,7 @@ import ConversationsList from './Components/ConversationsList';
import CustomerProfile from './Components/CustomerProfile'; import CustomerProfile from './Components/CustomerProfile';
import LocalTimeClock from './Components/LocalTimeClock'; import LocalTimeClock from './Components/LocalTimeClock';
import { useConversationContext } from '@/stores/ConversationContext'; import { useConversationContext } from '@/stores/Conversations/ConversationContext';
import './Conversations.css'; import './Conversations.css';
import { useAuthContext } from '@/stores/AuthContext.js'; import { useAuthContext } from '@/stores/AuthContext.js';

@ -1,7 +1,7 @@
import { useRef, useEffect, useState } from 'react'; import { useRef, useEffect, useState } from 'react';
import { observer } from 'mobx-react'; import { observer } from 'mobx-react';
import { List, Avatar, Flex } from 'antd'; import { List, Avatar, Flex } from 'antd';
import { useConversationContext } from '@/stores/ConversationContext'; import { useConversationContext } from '@/stores/Conversations/ConversationContext';
import { ChatItem, ChatList } from 'react-chat-elements'; import { ChatItem, ChatList } from 'react-chat-elements';
import { useGetJson } from '@/hooks/userFetch'; import { useGetJson } from '@/hooks/userFetch';
/** /**

@ -1,7 +1,7 @@
import { observer } from 'mobx-react'; import { observer } from 'mobx-react';
import { Card, Flex, Avatar, Typography, Radio, Button, Table } from 'antd'; import { Card, Flex, Avatar, Typography, Radio, Button, Table } from 'antd';
import { useAuthContext } from '@/stores/AuthContext.js'; import { useAuthContext } from '@/stores/AuthContext.js';
import { useConversationContext } from '@/stores/ConversationContext'; import { useConversationContext } from '@/stores/Conversations/ConversationContext';
import { import {
HomeOutlined, HomeOutlined,
LoadingOutlined, LoadingOutlined,

@ -2,7 +2,7 @@ import React, { useEffect, useState } from 'react';
import { observer } from 'mobx-react'; import { observer } from 'mobx-react';
import { Input, Button, Tabs, List, Space, Popover, Flex } from 'antd'; import { Input, Button, Tabs, List, Space, Popover, Flex } from 'antd';
// import { Input } from 'react-chat-elements'; // import { Input } from 'react-chat-elements';
import { useConversationContext } from '@/stores/ConversationContext'; import { useConversationContext } from '@/stores/Conversations/ConversationContext';
import { LikeOutlined, MessageOutlined, StarOutlined, SendOutlined, PlusOutlined, PlusCircleOutlined } from '@ant-design/icons'; import { LikeOutlined, MessageOutlined, StarOutlined, SendOutlined, PlusOutlined, PlusCircleOutlined } from '@ant-design/icons';
import { isEmpty } from '@/utils/utils'; import { isEmpty } from '@/utils/utils';

@ -1,7 +1,7 @@
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { observer } from 'mobx-react'; import { observer } from 'mobx-react';
import { Typography } from 'antd'; import { Typography } from 'antd';
import { useConversationContext } from '@/stores/ConversationContext'; import { useConversationContext } from '@/stores/Conversations/ConversationContext';
const LocalTimeClock = observer((props) => { const LocalTimeClock = observer((props) => {
const { customerOrderProfile: orderInfo } = useConversationContext(); const { customerOrderProfile: orderInfo } = useConversationContext();

@ -2,7 +2,7 @@ import { useEffect, useState, useRef } from 'react';
import { observer } from 'mobx-react'; import { observer } from 'mobx-react';
import { List, Avatar, Timeline, Image } from 'antd'; import { List, Avatar, Timeline, Image } from 'antd';
import { MessageBox } from 'react-chat-elements'; import { MessageBox } from 'react-chat-elements';
import { useConversationContext } from '@/stores/ConversationContext'; import { useConversationContext } from '@/stores/Conversations/ConversationContext';
const Messages = observer(() => { const Messages = observer(() => {
const { messages: messagesList } = useConversationContext(); const { messages: messagesList } = useConversationContext();

@ -1,4 +1,4 @@
import { ConversationContext, useConversations, } from '@/stores/ConversationContext'; import { ConversationContext, useConversations, } from '@/stores/Conversations/ConversationContext';
export const ConversationProvider = ({ children }) => { export const ConversationProvider = ({ children }) => {

Loading…
Cancel
Save