fix: fix a problem which deleted conversation can not get name occur crash

pull/227/head
moonrailgun 12 months ago
parent f084d4b364
commit 88b05da0c9

@ -4,16 +4,20 @@ import type { ChatConverseState } from '../slices/chat';
import { useUserId } from './useUserInfo';
import type { FriendInfo } from '../slices/user';
export function useDMConverseName(converse: ChatConverseState) {
export function useDMConverseName(converse: ChatConverseState | undefined) {
const userId = useUserId();
const friends: FriendInfo[] = useAppSelector((state) => state.user.friends);
const { value: name = '' } = useAsync(async () => {
if (!converse) {
return '';
}
if (!isValidStr(userId)) {
return '';
}
return getDMConverseName(userId, converse);
}, [userId, converse.name, converse.members.join(','), friends]);
}, [userId, converse?.name, converse?.members.join(','), friends]);
return name;
}

@ -1,5 +1,9 @@
import React from 'react';
import { useAppSelector, useDMConverseName } from 'tailchat-shared';
import {
ChatConverseState,
useAppSelector,
useDMConverseName,
} from 'tailchat-shared';
interface ConverseNameProps {
converseId: string;
@ -9,7 +13,9 @@ interface ConverseNameProps {
export const ConverseName: React.FC<ConverseNameProps> = React.memo((props) => {
const { converseId, className, style } = props;
const converse = useAppSelector((state) => state.chat.converses[converseId]);
const converse = useAppSelector<ChatConverseState | undefined>(
(state) => state.chat.converses[converseId]
);
const converseName = useDMConverseName(converse);
return (

Loading…
Cancel
Save