Playlist Şarkı Sıra Numarası Sorunu Çözüldü
Admin panelinde playlist'lere şarkı eklerken, şarkı listesinde sıra numaraları yanlış görünüyordu:
Aslında şarkılar veritabanında doğru sırada duruyordu, sadece ekranda yanlış numaralar gösteriliyordu.
Playlist sayfası "sonsuz kaydırma" (infinite scroll) özelliği kullanıyor. Yani sayfa aşağı kaydırıldıkça yeni şarkılar yükleniyor.
İlk 50 şarkı yüklendiğinde sıra numaraları doğru gösteriliyordu (1, 2, 3, ... 50). Ama 51. şarkıdan itibaren JavaScript kodu sıra numarasını yanlış hesaplıyordu.
JavaScript kodunda sıra numarası hesaplama mantığı değiştirildi:
Artık playlist yönetim sayfasında sıra numaraları her durumda doğru görünüyor. İster 10 şarkı olsun, ister 200 şarkı, sıra numaraları düzgün bir şekilde 1'den başlayarak devam ediyor.
playlistSongs.forEach((song, index) => {
if (!existingIds.has(song.id)) {
html += `
<span class="song-index">${startIndex + index + 1}</span>
`;
}
});
index değişkeni tüm playlistSongs array'i üzerinde dönerken, sadece yeni eklenen şarkılar render ediliyordu. Bu durumda 51. şarkı için index=50 oluyordu ve startIndex(50) + index(50) + 1 = 101 sonucunu veriyordu.
let newItemIndex = 0;
playlistSongs.forEach((song, index) => {
if (!existingIds.has(song.id)) {
html += `
<span class="song-index">${startIndex + newItemIndex + 1}</span>
`;
newItemIndex++;
}
});
newItemIndex sayacı kullanıldı. Bu sayaç sadece yeni eklenen şarkılar için artırılıyor, böylece sıra numaraları doğru hesaplanıyor.
startIndex = Mevcut ekrandaki şarkı sayısı (örn: 50)
newItemIndex = 0'dan başla
startIndex + newItemIndex + 1
newItemIndex++ ile artır
✓ Veritabanında position değerleri zaten doğruydu (0, 1, 2, ... 48, 49, 50, 51, 52...)
ℹ Sorun sadece frontend'de (JavaScript) sıra numarası gösterimindeydi
⚡ Herhangi bir migration veya veritabanı değişikliği gerekmedi
Admin playlist şarkı yönetim sayfasında infinite scroll kullanımından kaynaklanan sıra numarası hesaplama hatası düzeltildi. JavaScript kodunda yeni bir sayaç mantığı uygulanarak, sıra numaraları artık tüm durumlarda doğru şekilde gösteriliyor.