VueTube/NUXT/components/UtilRenderers/slimVideoDescriptionRendere...

51 lines
1.1 KiB
Vue
Raw Normal View History

2022-03-27 04:31:32 +00:00
<template>
2022-03-29 02:30:20 +00:00
<div class="description">
2022-03-27 05:48:27 +00:00
<template v-for="(text, index) in render.description.runs">
<template
v-if="
text.navigationEndpoint && text.navigationEndpoint.webviewEndpoint
"
>
<a
2022-03-29 02:30:20 +00:00
@click="openExternal($rendererUtils.getNavigationEndpoints(text))"
:key="index"
class="link"
>{{ text.text }}</a
>
</template>
2022-03-29 02:30:20 +00:00
<template v-else-if="$rendererUtils.checkInternal(text)">
<a
2022-03-29 02:30:20 +00:00
@click="openInternal($rendererUtils.getNavigationEndpoints(text))"
:key="index"
class="link"
>{{ text.text }}</a
>
2022-03-27 05:48:27 +00:00
</template>
<template v-else> {{ text.text }} </template>
</template>
2022-03-27 04:31:32 +00:00
</div>
</template>
2022-03-29 02:30:20 +00:00
<style scoped>
.description {
white-space: pre-line;
margin-bottom: 16px;
}
</style>
2022-03-27 04:31:32 +00:00
<script>
import { Browser } from "@capacitor/browser";
2022-03-27 04:31:32 +00:00
export default {
props: ["render"],
methods: {
async openExternal(url) {
await Browser.open({ url: url });
},
async openInternal(url) {
await this.$router.push(url);
},
2022-03-27 04:31:32 +00:00
},
};
</script>