@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,
52 lines (51 loc) • 1.63 kB
JavaScript
import { TUIRole, TUIInvitationStatus } from "@tencentcloud/tuiroom-engine-js";
import { combineComparators, createComparator } from "../../../utils/utils.mjs";
function getNewUserInfo(userId) {
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;
}
function getUserListSortComparator({
localUserId
}) {
const defaultUserListCompareFunction = combineComparators(
createComparator(
(userInfo) => Boolean(userInfo.userId === localUserId)
),
createComparator(
(userInfo) => Boolean(userInfo.userRole === TUIRole.kRoomOwner)
),
createComparator(
(userInfo) => Boolean(userInfo.userRole === TUIRole.kAdministrator)
),
createComparator((userInfo) => Boolean(userInfo.hasScreenStream)),
createComparator(
(userInfo) => Boolean(userInfo.hasVideoStream && userInfo.hasAudioStream)
),
createComparator((userInfo) => Boolean(userInfo.hasVideoStream)),
createComparator((userInfo) => Boolean(userInfo.hasAudioStream)),
createComparator((userInfo) => Boolean(userInfo.isOnSeat)),
createComparator(
(userInfoA, userInfoB) => Boolean(Number(userInfoA.timestamp) < Number(userInfoB.timestamp))
)
);
return defaultUserListCompareFunction;
}
export {
getNewUserInfo,
getUserListSortComparator
};