stadtratmonitor-vue/src/views/TheTopics.vue

31 lines
861 B
Vue
Raw Normal View History

2023-06-26 21:41:56 +02:00
<script setup lang="ts">
import type { Topic, Paper, Search, Filter } from '@/types'
import { papers } from '@/store'
import { computed } from 'vue';
import FilterSidebar from '@/components/papers/FilterSidebar.vue'
2023-06-21 22:29:53 +02:00
import TopicList from '@/components/papers/TopicList.vue'
2023-06-21 18:51:54 +02:00
2023-06-26 21:41:56 +02:00
const props = defineProps<{
search: Search,
filter: Filter,
}>()
const topics = computed(() => {
const topicReferences = [...new Set(papers.papers?.map((paper: Paper) => paper.reference))]
return topicReferences.map( (reference: string) => {
return {
'reference': reference,
'papers': papers.papers?.filter( (paper: Paper) => paper.reference === reference),
}
}) as Array<Topic>
})
2023-06-21 18:51:54 +02:00
</script>
<template>
2023-06-26 21:41:56 +02:00
<FilterSidebar
@filter="(filter: Filter) => filter = filter"
/>
2023-06-21 22:29:53 +02:00
<TopicList
2023-06-26 21:41:56 +02:00
:searchProp="search"
:filterProp="filter"
/>
2023-06-21 18:51:54 +02:00
</template>