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,

111 lines (110 loc) 5.16 kB
import { defineComponent, computed, createElementBlock, createCommentVNode, unref, openBlock, createVNode, createElementVNode, toDisplayString } from "vue"; import { TUIRole } from "@tencentcloud/tuiroom-engine-js"; import { IconApplyTips } from "@tencentcloud/uikit-base-component-vue3"; import { useI18n } from "../../../../locales/index.mjs"; import { useBasicStore } from "../../../../stores/basic.mjs"; import { isMobile } from "../../../../utils/environment.mjs"; import "../../../../components/common/base/IconButton.vue2.mjs"; /* empty css */ import "../../../../stores/room.mjs"; import "pinia"; /* empty css */ import "../../../../hooks/useZIndex.mjs"; import "../../../../services/main.mjs"; import "../../../../services/roomService.mjs"; import "mitt"; import "../../../../services/manager/roomActionManager.mjs"; import "@tencentcloud/tui-core"; /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ import "../../../hooks/useAudioDeviceState/index.mjs"; /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ import "../../../../hooks/useRoomEngine.mjs"; import "../../../hooks/useVideoDeviceState/index.mjs"; /* empty css */ /* empty css */ import useUserState from "../../../hooks/useUserState/index.mjs"; /* empty css */ import "../../../hooks/useFreeBeautyState/index.mjs"; /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ import "../../../hooks/useUserState/useUserActions/useMemberInviteAction.mjs"; /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ const _hoisted_1 = { key: 0, class: "apply-on-stage-info" }; const _hoisted_2 = { class: "apply-info" }; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "index", setup(__props) { const { t } = useI18n(); const basicStore = useBasicStore(); const { applyToOnSeatUserList, localUser } = useUserState(); const isGeneralUser = computed( () => { var _a; return ((_a = localUser.value) == null ? void 0 : _a.userRole) === TUIRole.kGeneralUser; } ); const applyToAnchorUserContent = computed(() => { var _a, _b, _c; const lastIndex = applyToOnSeatUserList.value.length - 1; const userName = ((_a = applyToOnSeatUserList.value[lastIndex]) == null ? void 0 : _a.nameCard) || ((_b = applyToOnSeatUserList.value[lastIndex]) == null ? void 0 : _b.userName) || ((_c = applyToOnSeatUserList.value[lastIndex]) == null ? void 0 : _c.userId); if (applyToOnSeatUserList.value.length === 1) { return `${userName} ${t("Applying for the stage")}`; } return `${userName} ${t("and so on number people applying to stage", { number: applyToOnSeatUserList.length })}`; }); function showApplyUserList() { if (isMobile) { basicStore.setSidebarOpenStatus(true); basicStore.setSidebarName("apply"); } else { basicStore.setShowApplyUserList(true); } } return (_ctx, _cache) => { return unref(applyToOnSeatUserList).length > 0 && !isGeneralUser.value ? (openBlock(), createElementBlock("div", _hoisted_1, [ createVNode(unref(IconApplyTips), { size: "24", class: "apply-icon" }), createElementVNode("div", _hoisted_2, toDisplayString(applyToAnchorUserContent.value), 1), createElementVNode("div", { class: "apply-check", onClick: showApplyUserList }, toDisplayString(unref(t)("Check")), 1) ])) : createCommentVNode("", true); }; } }); export { _sfc_main as default };