traxxx/assets/components/tags/tags.vue

121 lines
2.2 KiB
Vue
Raw Normal View History

<template>
<div class="tags">
<div class="tiles">
<Tag
2020-03-23 03:58:23 +00:00
v-for="tag in popularTags"
:key="`tag-${tag.id}`"
:tag="tag"
/>
</div>
</div>
</template>
<script>
import Tag from '../tile/tag.vue';
async function mounted() {
const tags = await this.$store.dispatch('fetchTags', {
slugs: [
'airtight',
'anal',
'asian',
2020-03-23 03:58:23 +00:00
'blonde',
'blowjob',
2020-03-23 03:58:23 +00:00
'brunette',
'caucasian',
'creampie',
'deepthroat',
'double-penetration',
'ebony',
'facefucking',
'facial',
'gangbang',
'interracial',
'latina',
2020-03-23 03:58:23 +00:00
'lesbian',
'maid',
'mff',
'mfm',
'orgy',
2020-03-23 03:58:23 +00:00
'redhead',
'schoolgirl',
'teen',
],
});
2020-03-23 03:58:23 +00:00
const tagsBySlug = tags.reduce((acc, tag) => ({ ...acc, [tag.slug]: tag }), {});
this.popularTags = [
'anal',
'teen',
'lesbian',
'mff',
'mfm',
'orgy',
'double-penetration',
'gangbang',
'airtight',
'creampie',
'facial',
'interracial',
'blowjob',
'deepthroat',
'facefucking',
'asian',
'ebony',
'latina',
'caucasian',
'blonde',
'brunette',
'redhead',
'schoolgirl',
'maid',
].map(tagSlug => tagsBySlug[tagSlug]);
this.pageTitle = 'Tags';
}
export default {
components: {
Tag,
},
data() {
return {
2020-03-23 03:58:23 +00:00
popularTags: [],
pageTitle: null,
};
},
mounted,
};
</script>
<style lang="scss" scoped>
2019-12-09 04:00:49 +00:00
@import 'theme';
.tags {
padding: 1rem;
}
.tiles {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(20rem, .25fr));
2020-03-23 03:58:23 +00:00
grid-gap: 2rem;
2020-03-23 00:43:49 +00:00
}
.heading {
font-size: 1.3rem;
}
@media(max-width: $breakpoint3) {
.tiles {
grid-template-columns: repeat(auto-fit, minmax(20rem, .5fr));
}
}
@media(max-width: $breakpoint) {
.tiles {
grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
}
}
</style>