Fix chat UI

This commit is contained in:
Yang Luo
2023-05-01 16:23:48 +08:00
parent d01d63d82a
commit 48c5bd942c
3 changed files with 10 additions and 5 deletions

View File

@ -30,7 +30,7 @@ class ChatBox extends React.Component {
} }
componentDidUpdate(prevProps) { componentDidUpdate(prevProps) {
if (prevProps.messages !== this.props.messages && this.props.messages !== null) { if (prevProps.messages !== this.props.messages && this.props.messages !== undefined && this.props.messages !== null) {
this.scrollToListItem(this.props.messages.length); this.scrollToListItem(this.props.messages.length);
} }
} }

View File

@ -110,8 +110,12 @@ class ChatMenu extends React.Component {
return items.map((item, index) => `${index}`); return items.map((item, index) => `${index}`);
} }
setSelectedKeyToNewChat() { setSelectedKeyToNewChat(chats) {
const items = this.chatsToItems(chats);
const openKeys = items.map((item) => item.key);
this.setState({ this.setState({
openKeys: openKeys,
selectedKeys: ["0-0"], selectedKeys: ["0-0"],
}); });
} }

View File

@ -120,7 +120,7 @@ class ChatPage extends BaseListPage {
if (j < 0) { if (j < 0) {
this.setState({ this.setState({
chatName: undefined, chatName: undefined,
messages: undefined, messages: [],
data: data, data: data,
}); });
} else { } else {
@ -180,7 +180,7 @@ class ChatPage extends BaseListPage {
</div> </div>
<div style={{flex: 1, height: "100%", backgroundColor: "white", position: "relative"}}> <div style={{flex: 1, height: "100%", backgroundColor: "white", position: "relative"}}>
{ {
this.state.messages === null ? null : ( (this.state.messages === undefined || this.state.messages === null) ? null : (
<div style={{ <div style={{
position: "absolute", position: "absolute",
top: -50, top: -50,
@ -224,6 +224,7 @@ class ChatPage extends BaseListPage {
this.setState({ this.setState({
loading: false, loading: false,
data: res.data, data: res.data,
messages: [],
pagination: { pagination: {
...params.pagination, ...params.pagination,
total: res.data2, total: res.data2,
@ -242,7 +243,7 @@ class ChatPage extends BaseListPage {
} }
if (!setLoading) { if (!setLoading) {
this.menu.current.setSelectedKeyToNewChat(); this.menu.current.setSelectedKeyToNewChat(chats);
} }
} else { } else {
if (Setting.isResponseDenied(res)) { if (Setting.isResponseDenied(res)) {