1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-08-07 14:50:56 +00:00
FrankerFaceZ/src/modules/main_menu/components/menu-container.vue

58 lines
1.1 KiB
Vue
Raw Normal View History

2017-11-13 01:23:39 -05:00
<template lang="html">
<div v-if="item.contents" :class="classes">
<header v-if="! item.no_header">
{{ t(item.i18n_key, item.title, item) }}
</header>
<section
v-if="item.description"
class="tw-pd-b-1"
>
<markdown :source="t(item.desc_i18n_key, item.description, item)" />
</section>
<div
v-for="i in item.contents"
:key="i.full_key"
:class="{'ffz-unmatched-item': showing && ! shouldShow(i)}"
>
<component
:is="i.component"
:context="context"
:item="i"
:filter="filter"
@navigate="navigate"
/>
</div>
</div>
2017-11-13 01:23:39 -05:00
</template>
<script>
export default {
props: ['item', 'context', 'filter'],
2017-11-13 01:23:39 -05:00
computed: {
showing() {
return this.shouldShow(this.item);
},
2017-11-13 01:23:39 -05:00
classes() {
return [
'ffz--menu-container',
this.item.full_box ? 'tw-border' : 'tw-border-t'
2017-11-13 01:23:39 -05:00
]
}
},
methods: {
navigate(...args) {
this.$emit('navigate', ...args);
},
shouldShow(item) {
if ( ! this.filter || ! this.filter.length || ! item.search_terms )
return true;
return item.search_terms.includes(this.filter);
}
2017-11-13 01:23:39 -05:00
}
}
</script>