useTableAggregations
useTableAggregations
, Ops Table bileşeninde tablolar için toplama işlemlerini yönetmek ve güncellemek için kullanılan özel bir React hook'udur. Bu hook, Redux ile entegre çalışarak toplama durumlarını merkezi bir şekilde kontrol eder.
Ne İşe Yarar?
useTableAggregations:
- Toplama ayarlarını (
aggregations
) kontrol eder. - Kullanıcının tablo toplama türlerini yönetmesine olanak tanır.
- Redux ile senkronize bir şekilde çalışarak bu ayarları uygulama genelinde tutarlı hale getirir.
İş Mantığı
- Toplama Durumu Alma:
- Redux Store'daki
TableReducer
üzerinden mevcut toplama durumu alınır.
- Redux Store'daki
- Toplama Durumu Güncelleme:
setAggregations
fonksiyonu çağrılarak toplama ayarları güncellenir ve Redux Store'a kaydedilir.
Hook Tanımı
import { useAppDispatch, useAppSelector } from "@/redux/hooks";
import { setAggregations } from "../redux/opsTableSlice";
import { ITableAggregations } from "../types/ITableAggregations";
export const useTableAggregations = () => {
const dispatch = useAppDispatch();
const aggregations = useAppSelector(
(state) => state.TableReducer.aggregations
);
const setValue = (aggregations: ITableAggregations[]) => {
dispatch(setAggregations(aggregations));
};
return {
aggregations,
setAggregations: setValue,
};
};
Dönüş Değerleri
Değer | Tipi | Açıklama |
---|---|---|
aggregations | ITableAggregations[] | Mevcut toplama ayarlarını içerir. |
setAggregations | (aggregations: ITableAggregations[]) => void | Toplama ayarlarını güncellemek için kullanılan fonksiyon. |
Kullanım Örneği
Çağrı
import { useTableAggregations } from "../hooks/useTableAggregations";
export default function ExampleComponent() {
const { aggregations, setAggregations } = useTableAggregations();
const handleAddAggregation = () => {
const newAggregation = { column: "price", type: "SUM" };
setAggregations([...aggregations, newAggregation]);
};
return (
<div>
<p>Current Aggregations: {JSON.stringify(aggregations)}</p>
<button onClick={handleAddAggregation}>Add Aggregation</button>
</div>
);
}
Kullanım Alanları
useTableAggregations
, Ops Table ekosisteminde aşağıdaki alanlarda kullanılır:
-
Aggregation Popover (
AggregationPopover.tsx
):- Kullanım Yeri: Kullanıcının tablo toplama ayarlarını yönetebileceği arayüz.
- Amaç: Kullanıcının seçtiği toplama ayarlarını dinamik bir şekilde güncellemek.
-
Table Reducer (
opsTableSlice.ts
):- Kullanım Yeri: Redux Store'daki toplama durumunu yönetir ve diğer bileşenlerle senkronize eder.
Burada Yapılan Ana İşlemler
useTableAggregations
hook'u aşağıdaki işlemleri gerçekleştirir ve bu noktalarda özelleştirilebilir:
- Redux Entegrasyonu: Redux Store'daki toplama durumunu alır ve günceller.
- Kullanıcı Etkileşimi: Kullanıcının toplama ayarlarını ekleme, güncelleme veya kaldırma işlemlerini yönetir.
- Modüler Yapı: Toplama durumunu uygulamanın farklı bölümlerinde kolayca kullanılabilir hale getirir.