This commit is contained in:
team3
2026-09-16 12:09:38 +02:00
parent aa5c64ae23
commit 90fffbe077
15 changed files with 326 additions and 40 deletions

View File

@@ -8,6 +8,7 @@ const props = defineProps({
filter: { type: Object, default: () => ({}) },
ansicht: { type: String, default: 'kompakt' },
gesehenIds: { type: Set, default: () => new Set() },
ohneGesehene: { type: Boolean, default: true },
})
const emit = defineEmits(['open'])
@@ -44,6 +45,11 @@ function passt(movie) {
)
}
// Schon gelaufene Filme fallen weg, solange der Schalter in der Leiste steht
function nichtGesehen(movie) {
return !props.ohneGesehene || !props.gesehenIds.has(movie.id)
}
async function run(term) {
const meine = ++laufende
loading.value = true
@@ -58,7 +64,7 @@ async function run(term) {
const data = await resp.json()
// Eine ältere Anfrage darf ein neueres Ergebnis nicht überschreiben
if (meine !== laufende) return
results.value = stoebern ? data : data.filter(passt)
results.value = (stoebern ? data : data.filter(passt)).filter(nichtGesehen)
gestoebert.value = stoebern
} catch (err) {
if (meine === laufende) error.value = err.message
@@ -85,6 +91,7 @@ function leeren() {
watch(query, spaeterSuchen)
watch(() => props.filter, spaeterSuchen, { deep: true, immediate: true })
watch(() => props.ohneGesehene, spaeterSuchen)
async function open(movie) {
const resp = await fetch(`/api/search/${movie.id}`)