Ana içeriğe geç
Versiyon: 1.0.1

Sort By Pinned

sortByPinned yardımcı fonksiyonu, bir veri dizisini pinned özelliğine göre sıralar. Bu fonksiyon, Ops Table bileşeninde sabitlenmiş (pinned) verilerin üst sıralarda görüntülenmesini sağlar.

Ne İşe Yarar?​

Sort By Pinned:

  • Verileri pinned özelliğine göre sıralar.
  • Sabitlenmiş verileri (pinned: true) dizinin başına yerleştirir.
  • Veri sıralaması sırasında sabitlenmeyen öğelerin sırasını bozmadan tutar.

İş Mantığı​

  1. Pinned Kontrolü:

    • Veriler, pinned özelliğine bakılarak sıralanır.
    • Eğer bir veri sabitlenmişse (pinned: true), üst sıralara taşınır.
  2. Orijinal Sıralama Koruması:

    • Sabitlenmeyen veriler, dizideki orijinal sıralarını korur.

Fonksiyon Tanımı​

export function sortByPinned(data: any[]) {
const dataCopy = [...data];

return dataCopy?.sort((a, b) => {
if (a.pinned && !b.pinned) {
return -1; // a üstte olsun
} else if (!a.pinned && b.pinned) {
return 1; // b üstte olsun
} else {
return 0; // sıralama değişmesin
}
});
}

Parametreler​

ParametreTipiAçıklama
dataany[]Sıralanacak veri dizisi.

Dönüş Değeri​

  • any[]: pinned özelliğine göre sıralanmış bir veri dizisi.

Kullanım Örneği​

Girdi Verisi​

const data = [
{ id: 1, name: "Item 1", pinned: false },
{ id: 2, name: "Item 2", pinned: true },
{ id: 3, name: "Item 3", pinned: false },
{ id: 4, name: "Item 4", pinned: true },
];

Çağrı​

const sortedData = sortByPinned(data);
console.log(sortedData);

Çıktı​

[
{ id: 2, name: "Item 2", pinned: true },
{ id: 4, name: "Item 4", pinned: true },
{ id: 1, name: "Item 1", pinned: false },
{ id: 3, name: "Item 3", pinned: false },
];

Kullanım Alanları​

Sort By Pinned, Ops Table ekosisteminde aşağıdaki alanlarda ve fonksiyonlarda kullanılır:

  • Ops Table Service (TableService.ts):

    • Kullanım Yeri: generateColumns fonksiyonunda çağrılır.
    • Amaç: Sütunların sabitlenmiş olanlarını (pinned: true) üst sıralarda göstermek.
  • Custom Table Headers:

    • Kullanım Yeri: Tablo başlıklarının sırasını belirlerken çağrılır.
    • Amaç: Kullanıcının sabitlediği başlıkları öne çıkarmak.

Burada Yapılan Ana İşlemler​

Sort By Pinned fonksiyonu, aşağıdaki işlemleri gerçekleştirir ve bu noktalarda özelleştirilebilir:

  • Pinned Durumu Kontrolü: Veriler, pinned özelliğine göre sıralanır.
  • Sıralama Koruması: Sabitlenmeyen öğelerin orijinal sırası korunur.
  • Performans Optimizasyonu: Dizinin bir kopyası oluşturularak orijinal veri değiştirilmez.