@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,
91 lines (90 loc) • 2.55 kB
JavaScript
import { defineComponent, ref, watch, resolveComponent, createElementBlock, openBlock, withDirectives, createElementVNode, vShow, unref, normalizeStyle, createCommentVNode, renderSlot, createVNode, toDisplayString } from "vue";
import { IconArrowDown } from "@tencentcloud/uikit-base-component-vue3";
import vTap from "../../../directives/vTap.mjs";
const _hoisted_1 = { class: "mask" };
const _hoisted_2 = {
key: 0,
class: "container-close"
};
const _hoisted_3 = {
key: 1,
class: "container-header"
};
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "ActionSheep",
props: {
visible: {
type: Boolean,
default: false
},
title: {
type: String,
default: ""
},
showClose: {
type: Boolean,
default: true
},
showMask: {
type: Boolean,
default: true
},
height: {
type: String,
default: ""
}
},
emits: ["input", "close"],
setup(__props, { emit: __emit }) {
const props = __props;
const emit = __emit;
const show = ref(false);
watch(
() => props.visible,
(val) => show.value = val,
{ immediate: true }
);
watch(
show,
(val) => {
emit("input", val);
},
{ immediate: true }
);
const toggleShow = () => {
show.value = !show.value;
if (!show.value) {
emit("close");
}
};
return (_ctx, _cache) => {
const _component_TUIIcon = resolveComponent("TUIIcon");
return openBlock(), createElementBlock("div", null, [
withDirectives(createElementVNode("div", _hoisted_1, null, 512), [
[vShow, show.value && __props.showMask],
[unref(vTap), toggleShow]
]),
withDirectives(createElementVNode("div", {
class: "container",
style: normalizeStyle({ height: props.height })
}, [
__props.showClose ? withDirectives((openBlock(), createElementBlock("div", _hoisted_2, [
createVNode(_component_TUIIcon, {
icon: unref(IconArrowDown),
size: "28"
}, null, 8, ["icon"])
])), [
[unref(vTap), toggleShow]
]) : createCommentVNode("", true),
__props.title ? (openBlock(), createElementBlock("div", _hoisted_3, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
renderSlot(_ctx.$slots, "default", {}, void 0, true)
], 4), [
[vShow, show.value]
])
]);
};
}
});
export {
_sfc_main as default
};