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.
aggregationsstate'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
handleAggregationChangefonksiyonu çağrılır. - Yeni değer
aggregationsstate'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
aggregationsstate'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.handleAggregationile 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
aggregationsstate'i güncellenir.
2. handleAddAggregation
- Yeni bir toplama işlemi eklemek için kullanılır.
- Varsayılan bir toplama işlemi (
AggeretionsDefaultItem)aggregationslistesine eklenir.
3. handleRemoveAggregation
- Kullanıcının bir toplama işlemini kaldırmasına olanak tanır.
- İlgili toplama işlemi
aggregationslistesinden kaldırılır.
4. handleSubmitAggregations
- Tüm toplama işlemlerini uygulamak için çağrılır.
opsService.handleAggregationile toplama işlemleri backend'e gönderilir.
5. handleResetAggregations
- Tüm toplama işlemlerini sıfırlamak için kullanılır.
aggregationsstate'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,
handleAggregationChangeile 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ı
handleAddAggregationvehandleRemoveAggregationile yönetilir. - Toplama Türü ve Sütun Yönetimi: Kullanıcı seçimleri
handleAggregationChangeile 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}
/>
);
}