Ana içeriğe geç
Version: 1.0.1

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ığı

  1. Toplama Durumu Alma:
    • Redux Store'daki TableReducer üzerinden mevcut toplama durumu alınır.
  2. 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ğerTipiAçıklama
aggregationsITableAggregations[]Mevcut toplama ayarlarını içerir.
setAggregations(aggregations: ITableAggregations[]) => voidToplama 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.