Ops Table Guide
Bu rehber, Ops Table kullanmaya yeni başlayanlar için hazırlanmıştır. Ops Table bileşeninin tüm temel ve gelişmiş özelliklerini anlamanıza yardımcı olacak şekilde yapılandırılmıştır. Her bölüm, adım adım ilerleyen örneklerle desteklenmiştir ve zorluk derecesine göre sıralanmıştır.
Ops Table Nedir?
Ops Table, React tabanlı bir tablo bileşenidir. Filtreleme, sıralama, sayfalama ve özelleştirilmiş aksiyonlar gibi dinamik veri yönetim özellikleri sunar. Backend'den gelen veri ile senkronize bir şekilde çalışabilir.
Ops Table Nasıl Kullanılır?
Basit Kullanım Örneği
Aşağıda Ops Table bileşeninin temel bir kullanımı gösterilmektedir:
import React from "react";
import { OpsTable } from "./OpsTable";
import { IOpsTableService } from "./IOpsTableService";
const tableService: IOpsTableService<any> = {
url: "/api/data",
initialProcess: () => {},
setTableLoading: (loading) => console.log(loading),
getdata: (requestData, successCallback) => {
// API çağrısı yapılabilir
successCallback?.({
data: [],
currentPageNumber: 1,
totalPageCount: 1,
totalDataCount: 0,
aggregationResults: [],
});
},
generateColumns: (metadata) => metadata,
generateInitiaTableState: (response) => ({
columnOrder: [],
}),
// Diğer metotlar...
};
const SimpleOpsTable = () => {
const columns = [
{
accessorKey: "name",
header: "Name",
},
{
accessorKey: "age",
header: "Age",
},
];
return (
<OpsTable
opsService={tableService}
data={[]}
columns={columns}
tableProps={{ showEditIcon: true }}
/>
);
};
export default SimpleOpsTable;
Tabloda Özel Aksiyonlar Nasıl Eklenir?
Ops Table, her satıra özel aksiyonlar eklemenize olanak tanır.
Örnek
const actionIcons = [
(row) => <button onClick={() => console.log(row)}>Düzenle</button>,
(row) => <button onClick={() => console.log("Sil")}>Sil</button>,
];
<OpsTable
opsService={tableService}
data={[]}
columns={columns}
actionIcons={actionIcons}
tableProps={{ showEditIcon: false }}
/>;
Tabloda Kolon Özelliği Nasıl Kapatılır?
Tablonun herhangi bir kolonunun görünürlüğünü kontrol edebilirsiniz.
Örnek
const columns = [
{
accessorKey: "name",
header: "Name",
meta: { visible: true },
},
{
accessorKey: "age",
header: "Age",
meta: { visible: false },
},
];
<OpsTable
opsService={tableService}
data={[]}
columns={columns}
tableVisibility={{ columnsVisibility: true }}
/>;
Backend'den Gelen Değerler Nasıl Yönetilir?
Filtre Türleri
Backend'den filtre türleri dinamik olarak yönetilebilir.
const filters = [
{
column: "age",
operator: "GreaterThan",
value: "18",
type: "number",
},
];
tableService.handleFilter(filters);
Sütun Yönetimi
Backend'den gelen metadata ile kolon ayarları yapılabilir:
tableService.generateColumns([
{ accessorKey: "name", header: "Name" },
{ accessorKey: "age", header: "Age" },
]);
Satır Tıklama (Row Click) Özelliği
Satıra tıklama özelliği ile detay sayfasına yönlendirme yapabilirsiniz.
Örnek
<OpsTable
opsService={tableService}
data={[]}
columns={columns}
onRowClick={(row) => console.log("Clicked row:", row)}
/>
Sayfalama (Pagination) Nasıl Yönetilir?
Ops Table, sayfalama işlemleri için backend ile senkronize bir yapı sunar.
Örnek
tableService.onChangePage(2, 10, () => console.log("Sayfa değiştirildi"));
Tablodaki Yoğunluk Modları (Density Modes) Nasıl Değiştirilir?
Tablonun görünüm yoğunluğunu değiştirebilirsiniz.
Örnek
<OpsTable
opsService={tableService}
data={[]}
columns={columns}
tableProps={{ density: "compact" }}
/>
Dışa Aktarma Özellikleri Nasıl Eklenir?
Tablo verilerini CSV veya PDF olarak dışa aktarabilirsiniz.
Örnek
<OpsTable
opsService={tableService}
data={[]}
columns={columns}
tableVisibility={{ exportVisibility: true }}
/>
Filtreleme Nasıl Özelleştirilir?
Tablodaki filtreler için özel seçenekler ekleyebilirsiniz.
Örnek
const customFilters = [
{
column: "name",
operator: "Contains",
value: "Ali",
},
];
tableService.handleFilter(customFilters);
Toplama (Aggregation) Nasıl Yapılır?
Ops Table toplama fonksiyonlarıyla belirli kolonlarda veri toplayabilirsiniz.
Örnek
const aggregations = [
{
column: "age",
type: "SUM",
},
];
tableService.handleAggregation(aggregations);
Özelleştirilmiş Araç Çubuğu (Toolbar) Nasıl Eklenir?
Tablonun üst kısmına özel butonlar ekleyebilirsiniz.
Örnek
const toolBarButtons = [
{
label: "Yenile",
onClick: () => console.log("Yenile tıklandı"),
},
];
<OpsTable
opsService={tableService}
data={[]}
columns={columns}
toolBarButtons={toolBarButtons}
/>;
Silme ve Düzenleme İkonları Nasıl Özelleştirilir?
Her satır için düzenleme ve silme ikonları ekleyebilirsiniz.