@tencentcloud/roomkit-electron-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,
76 lines (75 loc) • 3.33 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const Vue = require("vue");
const useRoomInfoHooks = require("../RoomHeader/RoomInfo/useRoomInfoHooks.js");
const CopyIcon = require("../common/icons/CopyIcon.vue.js");
const SvgIcon = require("../common/base/SvgIcon.vue.js");
const environment = require("../../utils/environment.js");
const TUIRoomEngine = require("@tencentcloud/tuiroom-engine-electron");
const index = require("../../locales/index.js");
const _hoisted_1 = { class: "detail-title" };
const _hoisted_2 = { class: "detail-info" };
const _hoisted_3 = ["title"];
const _hoisted_4 = ["onClick"];
const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
__name: "ConferenceDetail",
props: {
conferenceInfo: {},
scheduleRoomDetailList: {}
},
setup(__props) {
const { t } = index.useI18n();
const statusMap = {
[TUIRoomEngine.TUIConferenceStatus.kConferenceStatusRunning]: {
text: "Ongoing",
className: "status-running"
}
};
const props = __props;
const { onCopy } = useRoomInfoHooks.default();
const getStatusTextAndClass = (status) => {
if (!status) return { text: "", className: "" };
return statusMap[status] || { text: "", className: "" };
};
return (_ctx, _cache) => {
return Vue.openBlock(), Vue.createElementBlock("div", {
class: Vue.normalizeClass(["detail-container", Vue.unref(environment.isMobile) ? "h5" : ""])
}, [
(Vue.openBlock(true), Vue.createElementBlock(Vue.Fragment, null, Vue.renderList(props.scheduleRoomDetailList, (item, index2) => {
return Vue.openBlock(), Vue.createElementBlock(Vue.Fragment, null, [
item.isVisible ? (Vue.openBlock(), Vue.createElementBlock("div", {
class: Vue.normalizeClass(["detail-content"]),
key: index2
}, [
Vue.createElementVNode("span", _hoisted_1, Vue.toDisplayString(Vue.unref(t)(item.title)), 1),
Vue.createElementVNode("span", _hoisted_2, [
Vue.createElementVNode("span", {
class: "detail-item",
title: item.content
}, Vue.toDisplayString(item.content), 9, _hoisted_3),
item.isShowCopyIcon ? (Vue.openBlock(), Vue.createElementBlock("span", {
key: 0,
class: "copy-container",
onClick: ($event) => Vue.unref(onCopy)(item.content)
}, [
Vue.createVNode(SvgIcon.default, {
class: "copy",
icon: CopyIcon.default
})
], 8, _hoisted_4)) : Vue.createCommentVNode("", true),
item.isShowStatus ? (Vue.openBlock(), Vue.createElementBlock("div", {
key: 1,
class: Vue.normalizeClass([
"detail-status",
getStatusTextAndClass(item.status).className
])
}, Vue.toDisplayString(Vue.unref(t)(getStatusTextAndClass(item.status).text)), 3)) : Vue.createCommentVNode("", true)
])
])) : Vue.createCommentVNode("", true)
], 64);
}), 256))
], 2);
};
}
});
exports.default = _sfc_main;