UNPKG

@tencentcloud/roomkit-web-vue3

Version:

<h1 align="center"> TUIRoomKit</h1> Conference (TUIRoomKit) is a product suitable for multi-person audio and video conversation scenarios such as business meetings, webinars, and online education. By integrating this product, you can add room management,

61 lines (58 loc) 1.98 kB
import { TUIRole, TUIInvitationStatus } from '@tencentcloud/tuiroom-engine-js'; import { Comparator, combineComparators, createComparator, } from '../../../utils/utils'; import { UserInfo } from '../../type'; export function getNewUserInfo(userId: string): UserInfo { const newUserInfo = { userId, userName: '', avatarUrl: '', nameCard: '', hasAudioStream: false, hasVideoStream: false, hasScreenStream: false, isMessageDisabled: false, userRole: TUIRole.kGeneralUser, customInfo: {}, isOnSeat: false, isInRoom: false, invitationStatus: TUIInvitationStatus.kNone, timestamp: Date.now(), }; return newUserInfo; } let userListCompareFunction: Comparator<UserInfo>; export function setUserListSortComparator(comparator: Comparator<UserInfo>) { userListCompareFunction = comparator; } export function getUserListSortComparator({ localUserId, }: { localUserId: string; }) { const defaultUserListCompareFunction = combineComparators( createComparator((userInfo: UserInfo) => Boolean(userInfo.userId === localUserId) ), createComparator((userInfo: UserInfo) => Boolean(userInfo.userRole === TUIRole.kRoomOwner) ), createComparator((userInfo: UserInfo) => Boolean(userInfo.userRole === TUIRole.kAdministrator) ), createComparator((userInfo: UserInfo) => Boolean(userInfo.hasScreenStream)), createComparator((userInfo: UserInfo) => Boolean(userInfo.hasVideoStream && userInfo.hasAudioStream) ), createComparator((userInfo: UserInfo) => Boolean(userInfo.hasVideoStream)), createComparator((userInfo: UserInfo) => Boolean(userInfo.hasAudioStream)), createComparator((userInfo: UserInfo) => Boolean(userInfo.isOnSeat)), createComparator((userInfoA: UserInfo, userInfoB: UserInfo) => Boolean(Number(userInfoA.timestamp) < Number(userInfoB.timestamp)) ) ); return userListCompareFunction || defaultUserListCompareFunction; }