handleEdit
Açıklama: Bu fonksiyon, düzenlenmek istenen tablo satırının verilerini API'den alır ve bir modalda görüntüler. Kullanıcı düzenleme işlemlerini burada gerçekleştirir.
Kod
handleEdit(row: Row<unknown>) {
if (!this.CRUDUrl || !this.deletePropertyName) return;
const editedRowId = (row?.original as { id: any })?.id as any;
if (editedRowId === undefined) return;
const params = {
[this.deletePropertyName || "id"]: editedRowId,
};
this.setTableLoading(true);
axiosInstance
.get(`${this.CRUDUrl}`, { params, withoutToast: true })
.then((res) => {
this.setTableLoading(false);
if (!res?.data?.isSuccess) return;
const data = res?.data?.data;
AppDispatch(setOpsModalData(data));
AppDispatch(setOpsModalVisible(true));
})
.catch(() => {
this.setTableLoading(false);
});
}
Ne İşe Yarar?
- Düzenlenmek istenen tablo satırının detaylarını API'den çeker.
- Veriyi Redux Store'da bir modal içinde görüntüler.
Parametreler
Parametre | Tipi | Açıklama |
---|---|---|
row | Row<unknown> | Düzenlenecek satırın verilerini temsil eder. |
Kullanım Alanları
1. ActionsCell
- Kullanım Amacı: Düzenleme butonuna tıklandığında satır verilerini yüklemek için çağrılır.
- Kullanıldığı Yer:
ActionsCell
bileşeninde.
onEditClick={(row) => tableService.handleEdit(row)}
2. OpsTableProvider
- Kullanım Amacı: Tablo düzenleme işlemini desteklemek ve kullanıcıya düzenleme modalı göstermek için çağrılır.
- Kullanıldığı Fonksiyon:
handleEdit
tableService.handleEdit(selectedRow);
İş Mantığı
-
Satır Kimliği Alma:
- Düzenlenmek istenen satırın kimliği (
id
) alınır.
- Düzenlenmek istenen satırın kimliği (
-
API Çağrısı:
axiosInstance
kullanılarak ilgili satırın detayları API'den alınır.
-
Redux Store Güncelleme:
- Alınan veri
setOpsModalData
ile Redux Store'a kaydedilir. - Modal görünürlüğü
setOpsModalVisible
ile etkinleştirilir.
- Alınan veri
-
Hata Yönetimi:
- API çağrısında hata oluşursa yükleme durumu sıfırlanır ve hata kontrol edilir.
Önemli İpuçları
this.CRUDUrl
boşsa, düzenleme işlemi başlatılamaz. Bu nedenleCRUDUrl
kontrol edilmelidir.- API'den gelen verilerin
isSuccess
durumu kontrol edilmeli ve işleme devam edilmelidir. - Kullanıcı deneyimini optimize etmek için modal yüklenmeden önce bir yükleme animasyonu gösterilebilir.