Using searchbar and filters on a repeater

I want to add a search bar, filter & sort functionality for a dataset repeater. I used a tutorial to code it. It works, despite the part that I added on my own (as I wanted to add a third filter). So when I use the third filter (“studienabschluss”) it won’t filter anything. Can someone please help me find the mistake.

import wixData from 'wix-data';

$w.onReady(function () {

});

export function listRepeater_itemReady($item, itemData, index) {

}

export async function studiengang_keyPress(event) {
 defaultSort = await false;
 if (debounceTimer) {
 clearTimeout(debounceTimer);
 debounceTimer = undefined;
 }
 debounceTimer = setTimeout(() => {
 filter($w("#studiengang").value, studienbereichIdName, studienabschlussName);
 }, 200);
}

export async function studienbereichId_change(event) {
 defaultSort = await false;
 filter(filterStudiengang, $w("#studienbereichId").value, studienabschlussName);
}

export async function studienabschluss_change(event) {
 defaultSort = await false;
 filter(filterStudiengang, studienbereichIdName, $w("#studienabschluss").value);
}

export async function sortBy_change(event) {
 defaultSort = await false;
 if($w("#sortBy").value === 'A-Z') {
 $w("#dataset1").setSort(wixData.sort()
 .ascending("studiengang")
 );
 } else if($w("#sortBy").value === 'Z-A') {
 $w("#dataset1").setSort(wixData.sort()
 .descending("studiengang")
 );
 } else if($w("#sortBy").value === 'Neu-Alt') {
 $w("#dataset1").setSort(wixData.sort()
 .ascending("_updatedDate")
 );
 } else if($w("#sortBy").value === 'Alt-Neu') {
 $w("#dataset1").setSort(wixData.sort()
 .descending("_updatedDate")
 );
 }
}

let defaultSort = false;

export async function reset_click(event) {
 $w("#studiengang").value = await undefined;
 $w("#studienbereichId").value = await undefined;
 $w("#studienabschluss").value = await undefined;
 $w("#sortBy").value = await undefined;
 defaultSort = await true;
 filter();
}

export function dataset1_ready() {
 let count = $w("#dataset1").getTotalCount();
 $w("#count").text = 'Gefundene Studiengänge: ' + count + '';
}

let filterStudiengang;
let studienbereichIdName;
let studienabschlussName;

let debounceTimer;

async function filter(studiengang, studienbereichId, studienabschluss) {
 if(filterStudiengang !== studiengang || studienbereichIdName !== studienbereichId || studienabschlussName !== studienabschluss) {
 let newFilter = wixData.filter();
 if(studiengang)
 newFilter = newFilter.contains('studiengang', studiengang);
 if(studienbereichId)
 newFilter = newFilter.hasSome('studienbereichId', [studienbereichId]);
 if(studienabschluss)
 newFilter = newFilter.hasSome('studienabschluss', [studienabschluss]);
 await $w("#dataset1").setFilter(newFilter);
 if(defaultSort === true) {
 $w("#dataset1").setSort(wixData.sort()
 .ascending("studiengang")
 );
 }
 let count = $w("#dataset1").getTotalCount();
 $w("#count").text = 'Gefundene Studiengänge: ' + count + '';
 filterStudiengang = studiengang;
 studienbereichIdName = studienbereichId;
 studienabschlussName = studienabschluss;
 }
}