Problems with two repeaters loaded on the same page when interacting with each other

Help please: I have 2 repeaters that interact with each other: the first repeater adds items to the second repeater, from both repeaters I can remove the items from the second repeater using buttons. Now I have these problems:
1.- When I delete an item from repeater number 2, and add it from repeater number 1, the button to delete the item added to repeater 2 stops working.
2.- When I click the add button of repeater 1 quickly, repeated items are added, and the filter does not work (only an item of the same name can be added).
Please help Wix community.

import wixData from 'wix-data';
import wixUsers from 'wix-users';
$w.onReady(function () {
$w("#dataset1").onReady(() => {

getfilters();
getfilters2();
makeRepeater();
deleteMyPlace();
deleteMyItinerary();
});

});
function getfilters() {
let user = wixUsers.currentUser;
let userId = user.id;

wixData.query("myPlacesList")
.eq("userId", userId)
.find()
.then((results) => {
let items = results.items;
let firstItem = items[0];
var prod = [];
var i = 0;

var vf = results.length;
while (i < vf) {

prod[i] = items[i].myPlacesListName;

i = i + 1;

}

$w("#dataset1").setFilter(wixData.filter()
.hasSome("myPlacesListName", prod)
);
});
}
function getfilters2() {
let user = wixUsers.currentUser;
let userId = user.id;

wixData.query("myItinerary")
.eq("userId", userId)
.find()
.then((results) => {
let items = results.items;
let firstItem = items[0];
var prod = [];
var i = 0;

var vf = results.length;
while (i < vf) {

prod[i] = items[i].myPlacesListName;

i = i + 1;

}

$w("#dataset2").setFilter(wixData.filter()
.hasSome("myPlacesListName", prod)
);
});
}
let user;
var userID;
var product_name;
var item_name;
user = wixUsers.currentUser;
userID = user.id;
async function makeRepeater(){
await $w("#repeater1").forEachItem(($item, itemData, index)=> {
$item("#addToItinerary").onClick ((event)=>{
let isLoggedIn = user.loggedIn;
if (isLoggedIn === true) {
product_name = itemData.myPlacesListName;
let userId = user.id;
wixData.query("myItinerary")
.eq("userId", userId)
.eq("myPlacesListName", product_name)
.find()
.then((results) => {
let items = results.items;
let firstItem = items[0];
let count = results.totalCount;

if (count === 0) {
wixData.query("places")
.eq("title", product_name)
.find()
.then((results2) => {
let items2 = results2.items;
let firstItem2 = items2[0];
let toSave = {
"myPlacesListName": product_name,
"userId": userId,
"myItineraryListItem": firstItem2._id
};
wixData.save("myItinerary", toSave).then( () => {

$w('#repeater1').onItemReady(()=> {$item('#addToItinerary').label = "Delete from itinerary" })
$w("#dataset2").refresh();
})
});
} else {
wixData.remove("myItinerary", firstItem._id).then( () => {

$w('#repeater1').onItemReady(()=> {$item('#addToItinerary').label = "Add to itinerary" })
$w("#dataset2").refresh();
});
}
});
}else{
wixUsers.promptLogin();
}
});
})
}
function deleteMyPlace () {
$w("#repeater1").forEachItem(($item, itemData, index)=> {
$item("#deletePlace").onClick ((event)=>{
product_name= itemData.myPlacesListName;
let userId = user.id;
wixData.query("myPlacesList")
.eq("userId", userId)
.eq("myPlacesListName", product_name)
.find()
.then((results) => {
let items = results.items;
let firstItem = items[0];

wixData.remove("myPlacesList", firstItem._id).then( () => {
$w("#dataset1").refresh();

});
})
})
})
}
function deleteMyItinerary () {

$w("#repeater3").forEachItem(($item, itemData, index)=> {
$item("#deleteItinerary").onClick ((event)=>{
product_name= itemData.myPlacesListName;
let userId = user.id;
wixData.query("myItinerary")
.eq("userId", userId)
.eq("myPlacesListName", product_name)
.find()
.then((results) => {
let items = results.items;
let firstItem = items[0];

wixData.remove("myItinerary", firstItem._id).then( () => {
$w("#dataset2").refresh();

});
})
})
})
}
export function deleteItinerary_click(event) {
deleteMyItinerary ();
}
//thank you very much for your help