0
0
Fork 0
mirror of https://github.com/VueTubeApp/VueTube synced 2024-11-09 04:55:07 +00:00
VueTube/NUXT/components/UtilRenderers/YtTextFormatter.vue

60 lines
1.4 KiB
Vue
Raw Normal View History

<template>
2022-04-22 04:38:21 +00:00
<div class="yt-text-formatter">
<template v-for="(text, index) in textRuns">
<template v-if="$rendererUtils.checkInternal(text)">
<a
@click="openInternal($rendererUtils.getNavigationEndpoints(text))"
:key="index"
>{{ text.text }}</a
>
</template>
<template
v-else-if="
text.navigationEndpoint && text.navigationEndpoint.urlEndpoint
"
>
<a
@click="openExternal($rendererUtils.getNavigationEndpoints(text))"
:key="index"
>{{ text.text }}</a
>
</template>
<template v-else-if="text.emoji && text.emoji.isCustomEmoji">
<img
:src="
text.emoji.image.thumbnails[text.emoji.image.thumbnails.length - 1]
.url
"
:alt="text.text"
:key="index"
class="emoji"
draggable="false"
/>
</template>
2022-04-22 04:38:21 +00:00
<template v-else>
<span :key="index" v-emoji>{{ text.text }}</span>
</template>
</template>
</div>
</template>
<script>
2022-04-22 04:38:21 +00:00
import { Browser } from "@capacitor/browser";
export default {
props: {
textRuns: {
type: Array,
default: () => [],
},
},
2022-04-22 04:38:21 +00:00
methods: {
async openExternal(url) {
await Browser.open({ url: url });
},
async openInternal(url) {
await this.$router.push(url);
},
},
};
</script>