[O] Unique ids

This commit is contained in:
Hykilpikonna
2021-12-26 20:45:00 -05:00
parent f3259dfaef
commit 7fbef840c2
+18 -17
View File
@@ -1,5 +1,5 @@
<template> <template>
<div id="BlogPostPreview" class="card" :class="{'image-top': imageOnTop, 'tag-top': tagOnTop}" ref="el"> <div id="BlogPostPreview" class="card" :class="elClass">
<img class="title-image" :src="image" v-if="image && imageOnTop" alt="Title Image"> <img class="title-image" :src="image" v-if="image && imageOnTop" alt="Title Image">
<div id="titles"> <div id="titles">
@@ -53,30 +53,31 @@ export default class BlogPostPreview extends Vue
@Prop({required: true}) meta!: BlogPost @Prop({required: true}) meta!: BlogPost
@Prop({default: false}) imageOnTop = false @Prop({default: false}) imageOnTop = false
@Prop({default: true}) tagOnTop = true @Prop({default: true}) tagOnTop = true
@Prop({default: false}) active = false
@Ref() readonly el!: HTMLDivElement readonly uid = (Math.random() + 1).toString(36).substring(7)
created(): void
{
if (!this.meta.subtitle)
{
// fetch(`${hosts.content}/${this.meta.file}`).then(it => it.text()).then(it =>
// {
// this.meta.subtitle = marked(it)
// })
}
}
mounted(): void mounted(): void
{ {
$(this.el).accordion({collapsible: true, header: '#titles', heightStyle: 'content', active: false}) // Create accordion
$(`.${this.uid}`).accordion({collapsible: true, header: '#titles', heightStyle: 'content',
active: this.active})
}
/**
* Element classes
*/
get elClass(): string[]
{
let classes = [this.uid]
if (this.imageOnTop) classes.push('image-top')
if (this.tagOnTop) classes.push('tag-top')
return classes
} }
get content(): string { return marked(this.meta.content) } get content(): string { return marked(this.meta.content) }
get date(): moment.Moment { return moment(this.meta.date) } get date(): moment.Moment { return moment(this.meta.date) }
get image(): string | null { return this.meta.title_image ? hosts.content + '/' + this.meta.title_image : null }
get image(): string | null
{ return this.meta.title_image ? hosts.content + '/' + this.meta.title_image : null }
} }
</script> </script>