Skip to main content
Version: 1.0.1

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

ParametreTipiAçıklama
rowRow<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ığı

  1. Satır Kimliği Alma:

    • Düzenlenmek istenen satırın kimliği (id) alınır.
  2. API Çağrısı:

    • axiosInstance kullanılarak ilgili satırın detayları API'den alınır.
  3. Redux Store Güncelleme:

    • Alınan veri setOpsModalData ile Redux Store'a kaydedilir.
    • Modal görünürlüğü setOpsModalVisible ile etkinleştirilir.
  4. 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 nedenle CRUDUrl 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.