feat: added delete list & list items

This commit is contained in:
2026-08-21 21:52:26 +02:00
parent 7273fe85d3
commit 0007f96c35
17 changed files with 1639 additions and 10 deletions
+32 -1
View File
@@ -4,6 +4,7 @@ import { useListsStore } from '@/stores/lists'
import type { LocalList } from '@/database/db'
import ListCard from '@/components/ListCard.vue'
import ShareListModal from '@/components/ShareListModal.vue'
import DeleteListModal from '@/components/DeleteListModal.vue'
const listsStore = useListsStore()
@@ -11,6 +12,7 @@ const newListName = ref('')
const isCreating = ref(false)
const createError = ref('')
const sharingList = ref<LocalList | null>(null)
const deletingList = ref<LocalList | null>(null)
onMounted(() => {
listsStore.loadLists()
@@ -24,6 +26,25 @@ function handleCloseShare() {
sharingList.value = null
}
function handleOpenDelete(list: LocalList) {
deletingList.value = list
}
function handleCloseDelete() {
deletingList.value = null
}
async function handleConfirmDelete() {
if (!deletingList.value) return
const listId = deletingList.value.id
deletingList.value = null
try {
await listsStore.deleteList(listId)
} catch (err) {
createError.value = err instanceof Error ? err.message : 'Failed to delete list'
}
}
async function handleCreateList() {
const name = newListName.value.trim()
if (!name) return
@@ -67,7 +88,11 @@ async function handleCreateList() {
<ul v-if="listsStore.sortedLists.length > 0" class="lists">
<li v-for="list in listsStore.sortedLists" :key="list.id">
<ListCard :list="list" @share="handleOpenShare(list)" />
<ListCard
:list="list"
@share="handleOpenShare(list)"
@delete="handleOpenDelete(list)"
/>
</li>
</ul>
@@ -77,6 +102,12 @@ async function handleCreateList() {
</div>
<ShareListModal v-if="sharingList" :list="sharingList" @close="handleCloseShare" />
<DeleteListModal
v-if="deletingList"
:list="deletingList"
@close="handleCloseDelete"
@confirm="handleConfirmDelete"
/>
</main>
</template>