update
This commit is contained in:
@@ -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}`)
|
||||
|
||||
Reference in New Issue
Block a user