@ndscnj/roomkit-web-vue3 25.12.24167 → 25.12.24171

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/es/components/RoomFooter/VoteControl/MoreControlPC.vue.mjs +1 -1
  2. package/es/components/RoomFooter/VoteControl/index.mjs +1 -2
  3. package/es/components/RoomFooter/index/index.d.ts +4 -31
  4. package/es/components/RoomFooter/index/indexH5.vue.d.ts +1 -12
  5. package/es/components/RoomFooter/index/indexH5.vue.mjs +1 -1
  6. package/es/components/RoomFooter/index/indexH5.vue2.mjs +5 -20
  7. package/es/components/RoomSidebar/indexPC.vue.d.ts +0 -1
  8. package/es/components/RoomSidebar/indexPC.vue.mjs +0 -3
  9. package/es/components/RoomVote/index.d.ts +5 -17
  10. package/es/components/RoomVote/indexH5.vue.d.ts +5 -10
  11. package/es/components/RoomVote/indexH5.vue.mjs +2 -9
  12. package/es/components/RoomVote/indexH5.vue2.mjs +51 -0
  13. package/es/components/RoomVote/useRoomMoreHooks.mjs +43 -0
  14. package/es/conference.vue.d.ts +0 -1
  15. package/es/conference.vue.mjs +1 -1
  16. package/es/conference.vue2.mjs +6 -4
  17. package/es/index.mjs +82 -60
  18. package/lib/components/Chat/index/indexH5.vue.js +1 -1
  19. package/lib/components/ManageMember/MemberItem/indexH5.vue.js +1 -1
  20. package/lib/components/ManageMember/indexH5.vue.js +1 -1
  21. package/lib/components/RoomFooter/VoteControl/MoreControlPC.vue.js +1 -1
  22. package/lib/components/RoomFooter/VoteControl/index.js +1 -2
  23. package/lib/components/RoomFooter/index/index.d.ts +4 -31
  24. package/lib/components/RoomFooter/index/indexH5.vue.d.ts +1 -12
  25. package/lib/components/RoomFooter/index/indexH5.vue.js +2 -2
  26. package/lib/components/RoomFooter/index/indexH5.vue2.js +4 -19
  27. package/lib/components/RoomInvite/indexH5.vue.js +1 -1
  28. package/lib/components/RoomMore/indexH5.vue.js +1 -1
  29. package/lib/components/RoomSidebar/indexH5.vue.js +1 -1
  30. package/lib/components/RoomSidebar/indexPC.vue.d.ts +0 -1
  31. package/lib/components/RoomSidebar/indexPC.vue.js +0 -3
  32. package/lib/components/RoomVote/index.d.ts +5 -17
  33. package/lib/components/RoomVote/indexH5.vue.d.ts +5 -10
  34. package/lib/components/RoomVote/indexH5.vue.js +2 -9
  35. package/lib/components/RoomVote/indexH5.vue2.js +51 -0
  36. package/lib/components/RoomVote/useRoomMoreHooks.js +43 -0
  37. package/lib/conference.vue.d.ts +0 -1
  38. package/lib/conference.vue.js +1 -1
  39. package/lib/conference.vue2.js +6 -4
  40. package/lib/index.js +82 -60
  41. package/package.json +1 -1
  42. package/src/TUIRoom/components/RoomFooter/VoteControl/MoreControlH5.vue +108 -26
  43. package/src/TUIRoom/components/RoomFooter/VoteControl/MoreControlPC.vue +1 -1
  44. package/src/TUIRoom/components/RoomFooter/VoteControl/index.ts +1 -1
  45. package/src/TUIRoom/components/RoomFooter/index/indexH5.vue +2 -15
  46. package/src/TUIRoom/components/RoomSidebar/indexPC.vue +0 -3
  47. package/src/TUIRoom/components/RoomVote/indexH5.vue +118 -61
  48. package/src/TUIRoom/conference.vue +3 -3
  49. package/es/components/RoomFooter/VoteControl/MoreControlH5.vue.d.ts +0 -6
  50. package/es/components/RoomFooter/VoteControl/MoreControlH5.vue.mjs +0 -7
  51. package/es/components/RoomFooter/VoteControl/MoreControlH5.vue2.mjs +0 -59
  52. package/lib/components/RoomFooter/VoteControl/MoreControlH5.vue.d.ts +0 -6
  53. package/lib/components/RoomFooter/VoteControl/MoreControlH5.vue.js +0 -7
  54. package/lib/components/RoomFooter/VoteControl/MoreControlH5.vue2.js +0 -59
@@ -1,40 +1,122 @@
1
1
  <template>
2
- <div v-if="moreControlConfig.visible" class="more-control-container">
3
- <icon-button
4
- :is-active="sidebarName === 'vote'"
5
- :title="t('Vote')"
6
- @click-icon="toggleMoreSidebar"
7
- >
8
- <img class="ndsc-img-box" src="../../../assets/imgs/vote-icon.png" alt=""/>
9
- </icon-button>
2
+ <div>
3
+ <div v-if="moreControlConfig.visible" class="more-control-container">
4
+ <icon-button
5
+ v-tap="showMore"
6
+ :is-active="sidebarName === 'more'"
7
+ :title="t('More')"
8
+ >
9
+ <IconExtension size="24" />
10
+ </icon-button>
11
+ </div>
12
+ <div v-if="showMoreContent" ref="moreContentRef" class="show-more-content">
13
+ <div class="control-compent">
14
+ <chat-control
15
+ v-if="roomStore.isSpeakAfterTakingSeatMode"
16
+ @click="handleControlClick('chatControl')"
17
+ />
18
+ <contact-control @click="handleControlClick('contactControl')" />
19
+ <invite-control
20
+ @show-overlay="handleShowOverlay"
21
+ @click="handleControlClick('inviteControl')"
22
+ />
23
+ </div>
24
+ <div v-tap="handleCancelControl" class="close">{{ t('Cancel') }}</div>
25
+ </div>
10
26
  </div>
11
27
  </template>
12
28
  <script setup lang="ts">
13
- import { IconMore } from '@tencentcloud/uikit-base-component-vue3';
29
+ import { ref, onMounted, onUnmounted, defineEmits } from 'vue';
30
+ import { IconExtension } from '@tencentcloud/uikit-base-component-vue3';
14
31
  import IconButton from '../../common/base/IconButton.vue';
15
32
  import userMoreControl from './useMoreControlHooks';
33
+ import ChatControl from '../ChatControl.vue';
34
+ import InviteControl from '../InviteControl.vue';
35
+ import ContactControl from '../ContactControl.vue';
36
+ import { useRoomStore } from '../../../stores/room';
37
+ import bus from '../../../hooks/useMitt';
38
+ import vTap from '../../../directives/vTap';
16
39
  import { roomService } from '../../../services';
17
- import { defineEmits} from 'vue';
40
+
18
41
  const moreControlConfig = roomService.getComponentConfig('MoreControl');
19
- const { t, basicStore, sidebarName } = userMoreControl();
20
- const emit = defineEmits(['on-vote']);
21
- function toggleMoreSidebar() {
22
- if (basicStore.setSidebarOpenStatus && basicStore.sidebarName === 'vote') {
23
- basicStore.setSidebarOpenStatus(false);
24
- basicStore.setSidebarName('');
25
- return;
42
+ const showMoreContent = ref(false);
43
+ const moreContentRef = ref();
44
+
45
+ const { t, sidebarName } = userMoreControl();
46
+ const roomStore = useRoomStore();
47
+ const emit = defineEmits(['show-overlay']);
48
+ function showMore() {
49
+ showMoreContent.value = true;
50
+ }
51
+
52
+ function handleCancelControl() {
53
+ showMoreContent.value = false;
54
+ }
55
+ function handleControlClick(name: string) {
56
+ bus.emit('experience-communication', name);
57
+ }
58
+
59
+ function handleShowOverlay(data: { name: string; visible: boolean }) {
60
+ showMoreContent.value = false;
61
+ emit('show-overlay', data);
62
+ }
63
+
64
+ function handleDocumentClick(event: MouseEvent) {
65
+ if (showMoreContent.value && !moreContentRef.value.contains(event.target)) {
66
+ showMoreContent.value = false;
26
67
  }
27
- basicStore.setSidebarOpenStatus(true);
28
- basicStore.setSidebarName('vote');
29
- emit('on-vote', {
30
- name: 'onVote',
31
- visible:basicStore.isSidebarOpen,
32
- });
33
68
  }
69
+
70
+ onMounted(() => {
71
+ document?.addEventListener('click', handleDocumentClick, true);
72
+ });
73
+
74
+ onUnmounted(() => {
75
+ document?.removeEventListener('click', handleDocumentClick, true);
76
+ });
34
77
  </script>
35
78
  <style lang="scss" scoped>
36
- .ndsc-img-box{
37
- width: 24px;
38
- height: 24px
79
+ .show-more-content {
80
+ position: absolute;
81
+ bottom: 15px;
82
+ left: 5%;
83
+ width: 90%;
84
+ height: 17vh;
85
+ padding: 10px;
86
+ border-radius: 13px;
87
+ animation-name: popup;
88
+ animation-duration: 200ms;
89
+ background-color: var(--bg-color-operate);
90
+ }
91
+
92
+ @keyframes popup {
93
+ from {
94
+ bottom: 0;
95
+ }
96
+
97
+ to {
98
+ bottom: 15px;
99
+ }
100
+ }
101
+
102
+ .control-compent {
103
+ display: flex;
104
+ }
105
+
106
+ .close {
107
+ position: relative;
108
+ top: 10%;
109
+ display: flex;
110
+ align-items: center;
111
+ justify-content: center;
112
+ width: 100%;
113
+ padding: 10px;
114
+ font-style: normal;
115
+ font-weight: 400;
116
+ line-height: 24px;
117
+ text-align: center;
118
+ border-radius: 8px;
119
+ color: var(--text-color-primary);
120
+ background-color: var(--button-color-secondary-default);
39
121
  }
40
122
  </style>
@@ -34,7 +34,7 @@ function toggleMoreSidebar() {
34
34
  </script>
35
35
  <style lang="scss" scoped>
36
36
  .ndsc-img-box{
37
- width: 24px;
37
+ width:24px;
38
38
  height: 24px
39
39
  }
40
40
  </style>
@@ -1,4 +1,4 @@
1
- import MoreControlH5 from './MoreControlH5.vue';
1
+ import MoreControlH5 from './MoreControlPC.vue';
2
2
  import MoreControlPc from './MoreControlPC.vue';
3
3
 
4
4
  import { isMobile } from '../../../utils/environment';
@@ -10,15 +10,6 @@
10
10
  :display-mode="MediaSettingDisplayMode.Icon"
11
11
  v-tap="() => handleControlClick('videoControl')"
12
12
  />
13
- <voteControl
14
- class="center-container-item"
15
- @click="handleControlClick('voteControl')"
16
- @on-vote="onVote"
17
- >
18
- <template #contentH5>
19
- <slot name="contentH5"></slot>
20
- </template>
21
- </voteControl>
22
13
  <chat-control
23
14
  v-if="!roomStore.isSpeakAfterTakingSeatMode"
24
15
  v-tap="() => handleControlClick('chatControl')"
@@ -56,7 +47,6 @@ import MasterApplyControl from '../ManageStageControl.vue';
56
47
  import MemberApplyControl from '../ApplyControl/MemberApplyControl.vue';
57
48
  import MoreControl from '../MoreControl/index';
58
49
  import AIControl from '../AIControl.vue';
59
- import voteControl from '../VoteControl';
60
50
  import bus from '../../../hooks/useMitt';
61
51
  import vTap from '../../../directives/vTap';
62
52
 
@@ -64,11 +54,8 @@ import useRoomFooter from './useRoomFooterHooks';
64
54
 
65
55
  const { roomStore, isMaster, isAdmin, isAudience } = useRoomFooter();
66
56
 
67
- const emit = defineEmits(['show-overlay','on-vote']);
68
- const onVote = (data: { name: string; visible: boolean }) => {
69
- console.log(data,"data111")
70
- emit('on-vote', { code: data.visible, message: 'vote' });
71
- };
57
+ const emit = defineEmits(['show-overlay']);
58
+
72
59
  function handleControlClick(name: string) {
73
60
  bus.emit('experience-communication', name);
74
61
  }
@@ -12,9 +12,6 @@
12
12
  <template #content>
13
13
  <slot name="content"></slot>
14
14
  </template>
15
- <template #contentH5>
16
- <slot name="contentH5"></slot>
17
- </template>
18
15
  </room-vote>
19
16
  <room-more v-if="sidebarName == 'more'" />
20
17
  <manage-member v-if="sidebarName == 'manage-member'" />
@@ -1,84 +1,141 @@
1
1
  <template>
2
- <div class="more-container">
3
- <slot name="contentH5"></slot>
2
+ <div class="contact-container-main">
3
+ <div class="contact-title-main">
4
+ <div>{{ t('Contact us') }}</div>
5
+ <span v-tap="handleCloseContact" class="cancel">{{ t('Cancel') }}</span>
6
+ </div>
7
+ <div
8
+ v-for="item in contactContentList"
9
+ :key="item.id"
10
+ class="contact-content-main"
11
+ >
12
+ <span class="contact-title">{{ t(item.title) }}</span>
13
+ <span class="contact-content">{{ item.content }}</span>
14
+ <IconCopy v-tap="() => onCopy(item.copyLink)" class="copy" />
15
+ </div>
16
+ <span class="contact-bottom">
17
+ {{
18
+ t(
19
+ 'If you have any questions, please feel free to join our QQ group or send an email'
20
+ )
21
+ }}
22
+ </span>
4
23
  </div>
5
24
  </template>
6
25
 
7
26
  <script setup lang="ts">
27
+ import useRoomMoreControl from './useRoomMoreHooks';
28
+ import { IconCopy } from '@tencentcloud/uikit-base-component-vue3';
29
+ import vTap from '../../directives/vTap';
30
+
31
+ const { t, onCopy, contactContentList } = useRoomMoreControl();
32
+
33
+ const emit = defineEmits(['on-close-contact']);
34
+
35
+ function handleCloseContact() {
36
+ emit('on-close-contact');
37
+ }
8
38
  </script>
9
39
 
10
40
  <style lang="scss" scoped>
11
- .more-container {
12
- padding: 20px;
41
+ span {
42
+ padding-right: 5px;
43
+ font-size: 12px;
44
+ font-weight: 500;
45
+ line-height: 17px;
46
+ }
13
47
 
14
- .more-title {
15
- display: flex;
16
- align-items: center;
48
+ .contact-container-main {
49
+ position: fixed;
50
+ bottom: 0;
51
+ display: flex;
52
+ flex-direction: column;
53
+ width: 100%;
54
+ padding-bottom: 4vh;
55
+ border-radius: 15px 15px 0 0;
56
+ animation-name: popup;
57
+ animation-duration: 200ms;
58
+ background-color: var(--bg-color-operate);
17
59
 
18
- .email-icon {
19
- color: var(--uikit-color-gray-7);
60
+ @keyframes popup {
61
+ from {
62
+ transform: scaleY(0);
63
+ transform-origin: bottom;
20
64
  }
21
65
 
22
- .more-notice {
23
- width: 100%;
24
- height: 22px;
25
- padding-left: 8px;
26
- font-size: 14px;
27
- font-weight: 400;
28
- line-height: 22px;
29
- color: var(--text-color-primary);
66
+ to {
67
+ transform: scaleY(1);
68
+ transform-origin: bottom;
30
69
  }
31
70
  }
32
71
 
33
- .more-item {
34
- position: relative;
72
+ .contact-title-main {
35
73
  display: flex;
36
- flex-direction: column;
74
+ flex-direction: row;
75
+ align-items: center;
76
+ padding: 30px 0 20px 25px;
77
+ font-family: 'PingFang SC';
78
+ font-size: 20px;
79
+ font-style: normal;
80
+ font-weight: 500;
81
+ line-height: 24px;
82
+ color: var(--text-color-primary);
83
+ }
37
84
 
38
- &:not(:first-child) {
39
- margin-top: 20px;
85
+ .contact-content-main {
86
+ display: flex;
87
+ flex-direction: row;
88
+ align-items: center;
89
+ width: 90%;
90
+ height: 15%;
91
+ padding: 0 0 0 25px;
92
+ margin-bottom: 10px;
93
+ }
40
94
 
41
- .item-title {
42
- width: 100%;
43
- padding-bottom: 8px;
44
- font-size: 14px;
45
- font-weight: 400;
46
- line-height: 22px;
47
- color: var(--text-color-primary);
48
- }
95
+ .contact-title,
96
+ .contact-content {
97
+ width: 28%;
98
+ font-family: 'PingFang SC';
99
+ font-size: 14px;
100
+ font-style: normal;
101
+ font-weight: 400;
102
+ line-height: 20px;
103
+ white-space: nowrap;
104
+ color: var(--text-color-primary);
105
+ }
49
106
 
50
- .more-content {
51
- position: relative;
52
- box-sizing: border-box;
53
- display: inline-block;
54
- flex: 1;
55
- height: 42px;
56
- padding: 10px 30px 10px 16px;
57
- overflow: hidden;
58
- font-size: 14px;
59
- font-weight: 500;
60
- line-height: 22px;
61
- text-overflow: ellipsis;
62
- white-space: nowrap;
63
- border-radius: 8px;
64
- outline: none;
65
- transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
66
- color: var(--text-color-primary);
67
- background-color: var(--bg-color-input);
68
- border: 1px solid var(--stroke-color-module);
69
- }
107
+ .contact-content {
108
+ width: 62%;
109
+ overflow: hidden;
110
+ font-size: 14px;
111
+ text-overflow: ellipsis;
112
+ white-space: nowrap;
113
+ color: var(--text-color-secondary);
114
+ }
70
115
 
71
- .copy-icon {
72
- position: absolute;
73
- top: 45px;
74
- right: 10px;
75
- display: flex;
76
- align-items: center;
77
- justify-content: center;
78
- cursor: pointer;
79
- color: var(--text-color-link);
80
- }
81
- }
116
+ .contact-bottom {
117
+ width: 90%;
118
+ padding-left: 40px;
119
+ font-family: 'PingFang SC';
120
+ font-size: 12px;
121
+ font-style: normal;
122
+ font-weight: 400;
123
+ line-height: 17px;
124
+ text-align: center;
125
+ color: var(--text-color-secondary);
82
126
  }
127
+
128
+ .copy {
129
+ margin-left: 30px;
130
+ color: var(--text-color-link);
131
+ }
132
+ }
133
+
134
+ .cancel {
135
+ flex: 1;
136
+ padding-right: 30px;
137
+ font-size: 16px;
138
+ font-weight: 400;
139
+ text-align: end;
83
140
  }
84
141
  </style>
@@ -18,14 +18,14 @@
18
18
  @show-overlay="handleShowOverlay"
19
19
  @on-vote="onVote"
20
20
  >
21
+ <template #content>
22
+ <slot name="content"></slot>
23
+ </template>
21
24
  </room-footer>
22
25
  <room-sidebar @on-vote="onVote">
23
26
  <template #content>
24
27
  <slot name="content"></slot>
25
28
  </template>
26
- <template #contentH5>
27
- <slot name="contentH5"></slot>
28
- </template>
29
29
  </room-sidebar>
30
30
  <room-setting />
31
31
  <room-overlay />
@@ -1,6 +0,0 @@
1
- declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
2
- "on-vote": (...args: any[]) => void;
3
- }, string, import('vue').PublicProps, Readonly<{}> & Readonly<{
4
- "onOn-vote"?: ((...args: any[]) => any) | undefined;
5
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
6
- export default _default;
@@ -1,7 +0,0 @@
1
- import _sfc_main from "./MoreControlH5.vue2.mjs";
2
- /* empty css */
3
- import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
4
- const MoreControlH5 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2a47be79"]]);
5
- export {
6
- MoreControlH5 as default
7
- };
@@ -1,59 +0,0 @@
1
- import { defineComponent, createElementBlock, createCommentVNode, unref, openBlock, createVNode, withCtx, createElementVNode } from "vue";
2
- import _imports_0 from "../../../assets/imgs/vote-icon.png.mjs";
3
- import IconButton from "../../common/base/IconButton.vue.mjs";
4
- import useControl from "./useMoreControlHooks.mjs";
5
- import "../../../services/main.mjs";
6
- import { roomService } from "../../../services/roomService.mjs";
7
- import "../../../locales/index.mjs";
8
- import "@tencentcloud/tuiroom-engine-js";
9
- import "../../../utils/environment.mjs";
10
- import "mitt";
11
- import "../../../services/manager/roomActionManager.mjs";
12
- import "@tencentcloud/tui-core";
13
- const _hoisted_1 = {
14
- key: 0,
15
- class: "more-control-container"
16
- };
17
- const _sfc_main = /* @__PURE__ */ defineComponent({
18
- __name: "MoreControlH5",
19
- emits: ["on-vote"],
20
- setup(__props, { emit: __emit }) {
21
- const moreControlConfig = roomService.getComponentConfig("MoreControl");
22
- const { t, basicStore, sidebarName } = useControl();
23
- const emit = __emit;
24
- function toggleMoreSidebar() {
25
- if (basicStore.setSidebarOpenStatus && basicStore.sidebarName === "vote") {
26
- basicStore.setSidebarOpenStatus(false);
27
- basicStore.setSidebarName("");
28
- return;
29
- }
30
- basicStore.setSidebarOpenStatus(true);
31
- basicStore.setSidebarName("vote");
32
- emit("on-vote", {
33
- name: "onVote",
34
- visible: basicStore.isSidebarOpen
35
- });
36
- }
37
- return (_ctx, _cache) => {
38
- return unref(moreControlConfig).visible ? (openBlock(), createElementBlock("div", _hoisted_1, [
39
- createVNode(IconButton, {
40
- "is-active": unref(sidebarName) === "vote",
41
- title: unref(t)("Vote"),
42
- onClickIcon: toggleMoreSidebar
43
- }, {
44
- default: withCtx(() => [..._cache[0] || (_cache[0] = [
45
- createElementVNode("img", {
46
- class: "ndsc-img-box",
47
- src: _imports_0,
48
- alt: ""
49
- }, null, -1)
50
- ])]),
51
- _: 1
52
- }, 8, ["is-active", "title"])
53
- ])) : createCommentVNode("", true);
54
- };
55
- }
56
- });
57
- export {
58
- _sfc_main as default
59
- };
@@ -1,6 +0,0 @@
1
- declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
2
- "on-vote": (...args: any[]) => void;
3
- }, string, import('vue').PublicProps, Readonly<{}> & Readonly<{
4
- "onOn-vote"?: ((...args: any[]) => any) | undefined;
5
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
6
- export default _default;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const MoreControlH5_vue_vue_type_script_setup_true_lang = require("./MoreControlH5.vue2.js");
4
- ;/* empty css */
5
- const _pluginVue_exportHelper = require("../../../_virtual/_plugin-vue_export-helper.js");
6
- const MoreControlH5 = /* @__PURE__ */ _pluginVue_exportHelper.default(MoreControlH5_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-2a47be79"]]);
7
- exports.default = MoreControlH5;
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const Vue = require("vue");
4
- const voteIcon = require("../../../assets/imgs/vote-icon.png.js");
5
- const IconButton = require("../../common/base/IconButton.vue.js");
6
- const useMoreControlHooks = require("./useMoreControlHooks.js");
7
- require("../../../services/main.js");
8
- const roomService = require("../../../services/roomService.js");
9
- require("../../../locales/index.js");
10
- require("@tencentcloud/tuiroom-engine-js");
11
- require("../../../utils/environment.js");
12
- require("mitt");
13
- require("../../../services/manager/roomActionManager.js");
14
- require("@tencentcloud/tui-core");
15
- const _hoisted_1 = {
16
- key: 0,
17
- class: "more-control-container"
18
- };
19
- const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
20
- __name: "MoreControlH5",
21
- emits: ["on-vote"],
22
- setup(__props, { emit: __emit }) {
23
- const moreControlConfig = roomService.roomService.getComponentConfig("MoreControl");
24
- const { t, basicStore, sidebarName } = useMoreControlHooks.default();
25
- const emit = __emit;
26
- function toggleMoreSidebar() {
27
- if (basicStore.setSidebarOpenStatus && basicStore.sidebarName === "vote") {
28
- basicStore.setSidebarOpenStatus(false);
29
- basicStore.setSidebarName("");
30
- return;
31
- }
32
- basicStore.setSidebarOpenStatus(true);
33
- basicStore.setSidebarName("vote");
34
- emit("on-vote", {
35
- name: "onVote",
36
- visible: basicStore.isSidebarOpen
37
- });
38
- }
39
- return (_ctx, _cache) => {
40
- return Vue.unref(moreControlConfig).visible ? (Vue.openBlock(), Vue.createElementBlock("div", _hoisted_1, [
41
- Vue.createVNode(IconButton.default, {
42
- "is-active": Vue.unref(sidebarName) === "vote",
43
- title: Vue.unref(t)("Vote"),
44
- onClickIcon: toggleMoreSidebar
45
- }, {
46
- default: Vue.withCtx(() => [..._cache[0] || (_cache[0] = [
47
- Vue.createElementVNode("img", {
48
- class: "ndsc-img-box",
49
- src: voteIcon.default,
50
- alt: ""
51
- }, null, -1)
52
- ])]),
53
- _: 1
54
- }, 8, ["is-active", "title"])
55
- ])) : Vue.createCommentVNode("", true);
56
- };
57
- }
58
- });
59
- exports.default = _sfc_main;