handleFilter
Açıklama: Bu fonksiyon, kullanıcı tarafından seçilen filtreleme kriterlerini işleyerek API'ye gönderir ve gelen sonuçlarla tabloyu günceller.
Kod
handleFilter(filters: ITableFilters[], callback?: () => void) {
const formats = [
"YYYY-MM-DDTHH:mm:ss",
"YYYY-MM-DD hh:mm:ss A",
"YYYY-MM-DDTHH:mm",
"YYYY-MM-DD",
];
const convertValue = (filter: ITableFilters) => {
if (filter?.type === TypeGroupEnum.Number) return Number(filter?.value);
if (
filter?.type === TypeGroupEnum.Date &&
filter?.operator === FilterTypeEnum.DateEqualTo
)
return moment(filter?.value, formats, true).startOf("day").format();
if (filter?.type === TypeGroupEnum.Date)
return moment(filter?.value, formats, true).format();
return filter?.value;
};
const convertOtherValue = (filter: ITableFilters) => {
if (filter?.type === TypeGroupEnum.Number)
return Number(filter?.otherValue);
if (filter?.type === TypeGroupEnum.Date)
return moment(filter?.otherValue, formats, true).format();
return filter?.otherValue;
};
const filtering = filters?.map((filter) => {
return filter.operator === FilterTypeEnum.Between
? {
filterBy: filter.column,
filterType: filter.type,
value: convertValue(filter),
otherValue: convertOtherValue(filter),
type: filter.operator,
}
: {
filterBy: filter.column,
filterType: filter.type,
value: convertValue(filter),
type: filter.operator,
};
});
const requestData: IListRequest = {
...defaultParams,
filtering: {
criterias: filtering,
},
};
this.getdata(requestData, callback, callback);
}
Ne İşe Yarar?
- Kullanıcının seçtiği filtreleme kriterlerini işler ve API'ye gönderir.
- API'den alınan sonuçlarla tabloyu günceller.
Parametreler
Parametre | Tipi | Açıklama |
---|---|---|
filters | ITableFilters[] | Kullanıcının seçtiği filtreleme kriterleri. |
callback | () => void | İşlem tamamlandığında çağrılacak opsiyonel fonksiyon. |
Kullanım Alanları
1. FiltersPopover
- Kullanım Amacı: Kullanıcı tarafından belirlenen filtreleme kriterlerini API'ye göndermek için çağrılır.
- Kullanıldığı Yer:
FiltersPopover
bileşeninde.
handleFilter(currentFilters, () => setLoading(false));
2. OpsTableProvider
- Kullanım Amacı: Tablonun filtreleme işlemini desteklemek için çağrılır.
- Kullanıldığı Fonksiyon:
getdata
this.handleFilter(activeFilters);
İş Mantığı
-
Değer Dönüştürme:
- Filtreleme kriterlerindeki
value
veotherValue
alanları filtre türüne göre dönüştürülür. - Tarih ve sayısal değerler uygun formatlara çevrilir.
- Filtreleme kriterlerindeki
-
Filtreleme Nesnesi Oluşturma:
- Kriterler, API'ye uygun bir formatta filtreleme nesnesine dönüştürülür.
-
API Çağrısı:
getdata
fonksiyonu kullanılarak filtreleme sonuçları alınır ve tablo güncellenir.
-
Callback Yönetimi:
- İşlem tamamlandığında
callback
fonksiyonu çağrılır.
- İşlem tamamlandığında