12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- <template>
- <div
- v-if="isCallMessage && conversationType === TYPES.CONV_GROUP"
- :class="{ 'blink-text': isBlink }"
- >
- {{ custom }}
- </div>
- </template>
- <script setup lang="ts">
- import { computed } from '../../../adapter-vue';
- import TUIChatEngine, { IMessageModel } from '@tencentcloud/chat-uikit-engine';
- interface IProps {
- message: IMessageModel;
- signalingInfo: any;
- customContent: any;
- blinkMessageIDList?: string[];
- }
- const props = withDefaults(defineProps<IProps>(), {
- message: () => ({}) as IMessageModel,
- signalingInfo: () => ({}),
- customContent: () => ({}),
- blinkMessageIDList: () => [],
- });
- const TYPES = TUIChatEngine.TYPES;
- const isCallMessage = computed(() => !!props.signalingInfo);
- const conversationType = computed(() => props.message?.conversationType);
- const custom = computed(() => props.customContent?.custom);
- const isBlink = computed(() => {
- if (props.message?.ID) {
- return props.blinkMessageIDList?.includes(props.message.ID);
- }
- return false;
- });
- </script>
- <style scoped lang="scss">
- @keyframes blink-text {
- 50% {
- color: #ff9c19;
- }
- }
- .blink-text {
- animation: blinkText 1s linear 3;
- }
- </style>
|