30 lines
538 B
Vue
30 lines
538 B
Vue
<template>
|
|
<button
|
|
v-if="link.type !== 'loading'"
|
|
:class="['toggle-button', 'toggle-preview', {opened: link.shown}]"
|
|
:aria-label="ariaLabel"
|
|
@click="onClick"
|
|
/>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
name: "LinkPreviewToggle",
|
|
props: {
|
|
link: Object,
|
|
},
|
|
computed: {
|
|
ariaLabel() {
|
|
return this.link.shown ? "Collapse preview" : "Expand preview";
|
|
},
|
|
},
|
|
methods: {
|
|
onClick() {
|
|
this.link.shown = !this.link.shown;
|
|
|
|
this.$parent.$emit("linkPreviewToggle", this.link, this.$parent.message);
|
|
},
|
|
},
|
|
};
|
|
</script>
|