moving logic to _category to reduce duplication

This commit is contained in:
Erin Rivas
2019-08-12 19:43:39 -05:00
parent 8eddd395a9
commit d96db19dd5
3 changed files with 65 additions and 75 deletions

View File

@@ -2,12 +2,14 @@
div
h1 {{ category.title }}
.cards(v-if="cardsShown")
template(v-for='resource in category.resources')
Card(:title='resource.title' :desc='resource.desc' :url='resource.url')
template
div(v-for='resource in category.resources' :key='resource.title')
Card(:resource='resource' :isActive='activeCard === resource.title' v-on:toggle='onToggle(resource.title)')
table(v-if="!cardsShown")
TableHead(:title="'Welcome'" :desc="'Description'" :url="'URL'")
template(v-for='resource in category.resources')
TableRow(:title='resource.title' :desc='resource.desc' :url='resource.url')
template
div(v-for='resource in category.resources' :key='resource.title')
TableRow(:resource='resource' :isActive='activeCard === resource.title' v-on:toggle='onToggle(resource.title)')
</template>
<script>
@@ -20,7 +22,9 @@ export default {
data() {
return {
categoryRouteTitle: this.$route.params.category,
categories: store
categories: store,
index: '',
activeCard: ''
};
},
computed: {
@@ -28,10 +32,27 @@ export default {
return this.$store.state.Sidebar.cardsShown;
},
category() {
return this.categories.find(
const category = this.categories.find(
category =>
category.title.toLowerCase() === this.categoryRouteTitle.toLowerCase()
);
const pagePath = this.$router.history.current.path
const query = this.$route.query.card
for (const resource of category.resources) {
resource.cleanTitle = resource.title.replace(/ /g, '').toLowerCase()
resource.path = `${pagePath}?card=${resource.cleanTitle}`
resource.active = (resource.cleanTitle === query) ? 'card--active' : ''
}
return category
},
},
methods: {
onToggle(index) {
if (this.activeCard === index) {
this.activeCard = null;
} else {
this.activeCard = index;
}
}
},
components: { Card, TableHead, TableRow }