@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
JavaScript
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
};