Files
List_ultimate/app/pages/lists.vue
2026-02-26 21:29:34 +01:00

51 lines
1.1 KiB
Vue

<script setup lang="ts">
definePageMeta({
pageId: 'lists'
})
import type {List} from '~/types/lists'
const listStore = useListStore()
// activeTabId réactif
const activeTabId = ref<number | undefined>(undefined)
onMounted(async () => {
if (!listStore.lists.length) {
await listStore.fetchLists()
}
const defaultOpen = listStore.lists.find((l) => l.is_open === true)
activeTabId.value = defaultOpen?.id ?? listStore.lists[0]?.id
})
// Fonction utilitaire pour parser le contenu chiffré
const parseContent = (list: List) => {
try {
return JSON.parse(list.encrypted_content) as any[]
} catch {
return []
}
}
</script>
<template>
<div v-if="!listStore.loading">
<div v-for="list in listStore.lists" :key="list.id">
<h3>{{ list.list_title }}</h3>
<ul>
<li v-for="item in parseContent(list)" :key="item.id ?? item.name ?? item">
{{ item.name ?? JSON.stringify(item) }}
</li>
</ul>
</div>
</div>
<div v-else>
<UiLoading/>
</div>
</template>
<style>
h3{
font-size: 1.2em;
color:blueviolet
}
</style>