var SelectedFriends = [];
chrome.storage.sync.get(['PolyPlus_Settings'], function (result) {
Settings = result.PolyPlus_Settings;
if (Settings.ImprovedFrListsOn === true) {
var Tab = 'requests';
var FriendsContainer = document.getElementById('friends-container');
var Container = document.createElement('div');
Container.classList = 'row mb-3';
Container.innerHTML = `
`;
FriendsContainer.parentElement.insertBefore(Container, FriendsContainer);
var AccAllFrBtn = document.getElementById('AccAllFrBtn');
var DelAllFrBtn = document.getElementById('DelAllFrBtn');
var AccBtns = document.querySelectorAll('[onclick="acceptFriendRequest(this)"]');
var DelBtns = document.querySelectorAll('[onclick="declineFriendRequest(this)"]');
if (!(AccBtns.length === 0)) {
AccAllFrBtn.addEventListener('click', function () {
AccBtns.forEach((element) => {
setTimeout(function () {}, 145);
fetch('https://polytoria.com/api/friends/send', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-CSRF-Token': document.querySelector('input[name="_csrf"]').value
},
body: JSON.stringify({userID: parseInt(element.getAttribute('data-user-id'))})
}).catch((error) => {
// Handle any errors
console.error('Error:', error);
Success = false;
});
/*
let NewAcceptBtn = document.createElement('a')
NewAcceptBtn.style.display = 'none'
sNewAcceptBtn.classList = 'btn btn-success'
NewAcceptBtn.setAttribute('data-user-id', element.getAttribute('data-user-id'))
NewAcceptBtn.setAttribute('onclick', 'acceptFriendRequest(this)')
FriendsContainer.appendChild(NewAcceptBtn)
NewAcceptBtn.click();
*/
});
});
} else {
AccAllFrBtn.setAttribute('disabled', 'true');
}
if (!(DelBtns.length === 0)) {
DelAllFrBtn.addEventListener('click', function () {
DelBtns.forEach((element) => {
setTimeout(function () {}, 110);
fetch('https://polytoria.com/api/friends/remove', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-CSRF-Token': document.querySelector('input[name="_csrf"]').value
},
body: JSON.stringify({userID: parseInt(element.getAttribute('data-user-id'))})
}).catch((error) => {
// Handle any errors
console.error('Error:', error, document.querySelector('input[name="_csrf"]').value);
Success = false;
});
/*
let NewDeclineBtn = document.createElement('a')
NewDeclineBtn.style.display = 'none'
NewDeclineBtn.classList = 'btn btn-danger'
NewDeclineBtn.setAttribute('data-user-id', element.getAttribute('data-user-id'))
NewDeclineBtn.setAttribute('onclick', 'declineFriendRequest(this)')
FriendsContainer.appendChild(NewDeclineBtn)
NewDeclineBtn.click();
*/
});
});
} else {
DelAllFrBtn.setAttribute('disabled', 'true');
}
let Text = document.createElement('p');
Text.classList = 'mx-auto';
Text.style.textAlign = 'center';
Text.style.fontSize = '1.3rem';
Text.style.display = 'none';
Text.innerHTML = `
0 friends selected!
`;
FriendsContainer.parentElement.insertBefore(Text, FriendsContainer);
let Text_Span = Text.querySelector('span');
let Text_View = document.getElementById('viewSelectionBtn');
let Text_Clear = document.getElementById('clearSelectionBtn');
let Text_Remove = document.getElementById('removeSelectionBtn');
document.querySelector('[data-friends-tab="requests"]').addEventListener('click', function () {
Tab = 'requests';
Container.style.display = '';
Text.style.display = 'none';
document.querySelectorAll('input[type="check"]').forEach((element) => {
element.remove();
});
});
document.querySelector('[data-friends-tab="friends"]').addEventListener('click', function () {
Tab = 'friends';
Container.style.display = 'none';
Text.style.display = '';
});
var ConfirmRemove = 0;
Text_View.addEventListener('click', function () {});
Text_Clear.addEventListener('click', function () {
SelectedFriends = [];
UpdateCheckboxes();
Text_Span.innerText = SelectedFriends.length;
});
Text_Remove.addEventListener('click', function () {
ConfirmRemove = ConfirmRemove + 1;
switch (ConfirmRemove) {
case 0:
Text_Remove.innerText = 'Remove Selected Friends';
break;
case 1:
Text_Remove.innerText = 'Are you sure?';
break;
case 2:
for (let i = 0; i < SelectedFriends.length; i++) {
setTimeout(function () {}, 110);
let NewDeclineBtn = document.createElement('a');
NewDeclineBtn.style.display = 'none';
NewDeclineBtn.classList = 'btn btn-danger';
NewDeclineBtn.setAttribute('data-user-id', SelectedFriends[i]);
NewDeclineBtn.setAttribute('onclick', 'declineFriendRequest(this)');
FriendsContainer.appendChild(NewDeclineBtn);
NewDeclineBtn.click();
}
SelectedFriends = [];
UpdateCheckboxes();
Text_Remove.innerText = 'Remove Selected Friends';
ConfirmRemove = 0;
break;
}
});
const observer = new MutationObserver(function () {
if (FriendsContainer.children.length > 0 && Tab === 'friends') {
LoadCheckBoxes();
}
});
observer.observe(FriendsContainer, {childList: true, subtree: false});
function LoadCheckBoxes() {
Array.from(FriendsContainer.children).forEach((element) => {
let DeclineBtn = element.querySelector('a.btn.btn-danger');
let UserID = DeclineBtn.getAttribute('data-user-id');
let Column = document.createElement('div');
let EditColumn = element.querySelector('.col-9');
Column.classList = 'col-auto';
var NewCheckBox = document.createElement('button');
NewCheckBox.classList = 'polyplus-multiremovefr-checkbox';
NewCheckBox.setAttribute('style', 'padding: 20px; background-color: #191919; border: 1px solid #393939; border-radius: 1rem;');
var Index = SelectedFriends.indexOf(UserID);
if (Index !== -1) {
DeclineBtn.classList.add('disabled');
NewCheckBox.style.borderColor = 'lime';
}
EditColumn.classList.remove('col-9');
EditColumn.classList.add('col');
Column.appendChild(NewCheckBox);
EditColumn.parentElement.appendChild(Column);
NewCheckBox.addEventListener('click', function () {
var Index = SelectedFriends.indexOf(UserID);
if (Index === -1) {
DeclineBtn.classList.add('disabled');
SelectedFriends.push(UserID);
NewCheckBox.style.borderColor = 'lime';
} else {
SelectedFriends.splice(Index, 1);
NewCheckBox.style.borderColor = '#393939';
DeclineBtn.classList.remove('disabled');
}
Text_Span.innerText = SelectedFriends.length;
UpdateCheckboxes();
});
});
}
function UpdateCheckboxes() {
document.querySelectorAll('.polyplus-multiremovefr-checkbox').forEach((element) => {
let Parent = element.parentElement.parentElement.parentElement.parentElement.parentElement;
let DeclineBtn = Parent.querySelector('a.btn.btn-danger');
if (element.getAttribute('disabled')) {
element.removeAttribute('disabled');
}
if (SelectedFriends.IndexOf(DeclineBtn.getAttribute('data-user-id')) === -1) {
element.style.borderColor = '#393939';
DeclineBtn.classList.remove('disabled');
if (SelectedFriends.length >= 25) {
element.setAttribute('disabled', true);
}
} else {
DeclineBtn.classList.add('disabled');
element.style.borderColor = 'lime';
}
});
}
}
});