Aggregation Popover
Aggregation Popover, Ops Table bileşeninde kullanıcıların belirli sütunlarda toplama işlemlerini yapılandırmasını sağlar. Kullanıcılar toplam, ortalama, minimum, maksimum gibi toplama türleri ekleyebilir.
Ne İşe Yarar?
Aggregation Popover:
- Kullanıcıların sütun bazlı toplama işlemleri eklemesine olanak tanır.
- Birden fazla toplama türünü aynı anda uygulamayı destekler.
- Uygulanan toplamaları dinamik olarak tabloda görüntüler.
İş Mantığı
- Toplama Ekleme:
- Kullanıcı "Add Aggregation" butonuna tıkladığında varsayılan bir toplama eklenir.
aggregations
state'i güncellenerek yeni bir toplama işlemi tabloya eklenir.
- Toplama Değerlerini Güncelleme:
- Kullanıcı, toplama sütunu veya türünü değiştirdiğinde
handleAggregationChange
fonksiyonu çağrılır. - Yeni değer
aggregations
state'ine yansıtılır.
- Kullanıcı, toplama sütunu veya türünü değiştirdiğinde
- Toplama Silme:
- Kullanıcı bir toplamanın yanındaki "delete" ikonuna tıkladığında, ilgili toplama işlemi
aggregations
state'inden kaldırılır.
- Kullanıcı bir toplamanın yanındaki "delete" ikonuna tıkladığında, ilgili toplama işlemi
- Toplamaları Uygulama:
- "Apply" butonuna tıklandığında,
opsService.handleAggregation
ile toplama işlemleri backend'e iletilir.
- "Apply" butonuna tıklandığında,
- Varsayılan Toplamalara Dönme:
- Kullanıcı "Reset" butonuna tıkladığında tüm toplama işlemleri sıfırlanır ve varsayılan duruma döner.
Alt Bileşenler ve Fonksiyonlar
1. handleAggregationChange
- Kullanıcının sütun veya toplama türü seçimlerini yönetir.
- Seçilen sütun ve tür, ilgili toplama işlemine uygulanır ve
aggregations
state'i güncellenir.
2. handleAddAggregation
- Yeni bir toplama işlemi eklemek için kullanılır.
- Varsayılan bir toplama işlemi (
AggeretionsDefaultItem
)aggregations
listesine eklenir.
3. handleRemoveAggregation
- Kullanıcının bir toplama işlemini kaldırmasına olanak tanır.
- İlgili toplama işlemi
aggregations
listesinden kaldırılır.
4. handleSubmitAggregations
- Tüm toplama işlemlerini uygulamak için çağrılır.
opsService.handleAggregation
ile toplama işlemleri backend'e gönderilir.
5. handleResetAggregations
- Tüm toplama işlemlerini sıfırlamak için kullanılır.
aggregations
state'i temizlenir ve popover kapatılır.
Aldığı Propslar
IAggregationPopoverProps
arayüzünden alınan propslar şunlardır:
Prop | Tipi | Açıklama |
---|---|---|
table | Table<unknown> | Tablonun genel durumunu ve modellerini içerir. |
opsService | IOpsTableService<any> | Tablonun veri işlemlerini yöneten servis sınıfı. |
handlePopoverClose | () => void | Popover kapatma olayını yönetmek için bir callback fonksiyonu. |
Yönetilen Olaylar
- Toplama Ekleme:
- Kullanıcı "Add Aggregation" butonuna tıkladığında
handleAddAggregation
çağrılır ve varsayılan bir toplama eklenir.
- Kullanıcı "Add Aggregation" butonuna tıkladığında
- Toplama Değiştirme:
- Kullanıcı sütun veya toplama türünü değiştirdiğinde,
handleAggregationChange
ile seçimler güncellenir.
- Kullanıcı sütun veya toplama türünü değiştirdiğinde,
- Toplama Silme:
- "Delete" ikonuna tıklandığında
handleRemoveAggregation
çağrılır ve ilgili toplama kaldırılır.
- "Delete" ikonuna tıklandığında
- Toplamaları Uygulama:
- "Apply" butonuna tıklandığında
handleSubmitAggregations
çalışır ve toplamalar backend'e gönderilir.
- "Apply" butonuna tıklandığında
- Toplamaları Sıfırlama:
- Kullanıcı "Reset" butonuna tıkladığında
handleResetAggregations
çağrılır ve tüm toplamalar varsayılan duruma döner.
- Kullanıcı "Reset" butonuna tıkladığında
İlgili Bileşenler
- OpsTablePopovers: AggregationPopover bileşenini tetikleyen ana popover.
- OpsTable: Toplama sonuçlarının gösterildiği ana tablo bileşeni.
Burada Yapılan Ana İşlemler
Aggregation Popover bileşeninde aşağıdaki işlemler anahtar rol oynar ve bu olaylara müdahale etmek için ilgili bölümlere odaklanabilirsiniz:
- Toplama Ekleme ve Silme: Kullanıcıların yeni toplama işlemleri eklemesi veya mevcutları kaldırması
handleAddAggregation
vehandleRemoveAggregation
ile yönetilir. - Toplama Türü ve Sütun Yönetimi: Kullanıcı seçimleri
handleAggregationChange
ile işlenir ve toplama işlemleri güncellenir. - Uygulama ve Sıfırlama: "Apply" ve "Reset" butonları ile toplamalar backend'e senkronize edilir veya sıfırlanır.
Örnek Kullanım
import React from "react";
import AggregationPopover from "./AggregationPopover";
export default function ExampleAggregationPopover({
table,
opsService,
handlePopoverClose,
}) {
return (
<AggregationPopover
table={table}
opsService={opsService}
handlePopoverClose={handlePopoverClose}
/>
);
}