poprawka w progressbarze

This commit is contained in:
Mateusz Gruszczyński
2025-07-12 15:31:04 +02:00
parent d1c8970108
commit b590ebc6b6
2 changed files with 49 additions and 7 deletions

View File

@@ -19,7 +19,7 @@ function updateItemState(itemId, isChecked) {
applyHidePurchased();
}
function updateProgressBar() {
/* function updateProgressBar() {
const items = document.querySelectorAll('#items li');
const total = items.length;
const purchased = Array.from(items).filter(li => li.classList.contains('bg-success')).length;
@@ -31,6 +31,48 @@ function updateProgressBar() {
progressBar.setAttribute('aria-valuenow', percent);
progressBar.textContent = `${percent}%`;
}
} */
function updateProgressBar() {
const items = document.querySelectorAll('#items li');
const total = items.length;
const purchased = Array.from(items).filter(li => li.classList.contains('bg-success')).length;
const percent = total > 0 ? Math.round((purchased / total) * 100) : 0;
// Pasek postępu
const progressBar = document.getElementById('progress-bar');
if (progressBar) {
progressBar.style.width = `${percent}%`;
progressBar.setAttribute('aria-valuenow', percent);
progressBar.textContent = percent > 0 ? `${percent}%` : ''; // opcjonalnie
}
// Label na pasku postępu
const progressLabel = document.getElementById('progress-label');
if (progressLabel) {
progressLabel.textContent = `${percent}%`;
if (percent === 0) {
progressLabel.style.display = 'inline';
} else {
progressLabel.style.display = 'none';
}
// Kolor tekstu labela
if (percent < 50) {
progressLabel.classList.remove('text-dark');
progressLabel.classList.add('text-white');
} else {
progressLabel.classList.remove('text-white');
progressLabel.classList.add('text-dark');
}
}
// Nagłówek
const purchasedCount = document.getElementById('purchased-count');
if (purchasedCount) purchasedCount.textContent = purchased;
const totalCount = document.getElementById('total-count');
if (totalCount) totalCount.textContent = total;
const percentValue = document.getElementById('percent-value');
if (percentValue) percentValue.textContent = percent;
}
function addItem(listId) {
@@ -92,16 +134,14 @@ function submitExpense(listId) {
}
function copyLink(link) {
// Najpierw sprawdź Web Share API (działa na większości urządzeń mobilnych)
if (navigator.share) {
navigator.share({
title: 'Udostępnij link',
text: 'Sprawdź ten link:',
text: 'Link do listy::',
url: link
}).then(() => {
showToast('Link udostępniony!');
}).catch((err) => {
// Użytkownik anulował lub wystąpił błąd próbujemy dalej
tryClipboard(link);
});
return;