mirror of https://github.com/msgbyte/tailchat
				
				
				
			feat: 增加会话快速切换
							parent
							
								
									64be97d07f
								
							
						
					
					
						commit
						c0c56734da
					
				@ -1,26 +1,17 @@
 | 
			
		||||
import { getCachedUserInfo, isValidStr, useAsync } from '../../index';
 | 
			
		||||
import { getDMConverseName } from '../../helper/converse-helper';
 | 
			
		||||
import { isValidStr, useAsync } from '../../index';
 | 
			
		||||
import type { ChatConverseState } from '../slices/chat';
 | 
			
		||||
import { useUserId } from './useUserInfo';
 | 
			
		||||
 | 
			
		||||
export function useDMConverseName(converse: ChatConverseState) {
 | 
			
		||||
  const userId = useUserId();
 | 
			
		||||
  const otherConverseMembers = converse.members.filter((m) => m !== userId); // 成员Id
 | 
			
		||||
  const len = otherConverseMembers.length;
 | 
			
		||||
  const { value: otherMembersInfo = [] } = useAsync(() => {
 | 
			
		||||
    return Promise.all(
 | 
			
		||||
      otherConverseMembers.map((userId) => getCachedUserInfo(userId))
 | 
			
		||||
    );
 | 
			
		||||
  }, [otherConverseMembers.join(',')]);
 | 
			
		||||
  const { value: name = '' } = useAsync(async () => {
 | 
			
		||||
    if (!isValidStr(userId)) {
 | 
			
		||||
      return '';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  if (isValidStr(converse.name)) {
 | 
			
		||||
    return converse.name;
 | 
			
		||||
  }
 | 
			
		||||
    return getDMConverseName(userId, converse);
 | 
			
		||||
  }, [userId, converse.name, converse.members.join(',')]);
 | 
			
		||||
 | 
			
		||||
  if (len === 1) {
 | 
			
		||||
    return otherMembersInfo[0]?.nickname ?? '';
 | 
			
		||||
  } else if (len === 2) {
 | 
			
		||||
    return `${otherMembersInfo[0]?.nickname}, ${otherMembersInfo[1]?.nickname}`;
 | 
			
		||||
  } else {
 | 
			
		||||
    return `${otherMembersInfo[0]?.nickname}, ${otherMembersInfo[1]?.nickname} ...`;
 | 
			
		||||
  }
 | 
			
		||||
  return name;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue