Skip to main content
Version: 1.0.1

handleDelete

Açıklama: Bu fonksiyon, tablo satırını silmek için API'ye bir silme isteği gönderir. Silme işlemi tamamlandıktan sonra tablo yeniden yüklenir.

Kod

handleDelete(row: Row<unknown>, callback?: () => void) {
if (!this.CRUDUrl || !this.deletePropertyName) return;

const deletedRowId = (row?.original as { id: any })?.id as any;

if (deletedRowId === undefined) return;

const params = {
[this.deletePropertyName || "id"]: deletedRowId,
};

this.setTableLoading(true);

axiosInstance
.delete(`${this.CRUDUrl}`, { params })
.then(() => {
this.initialProcess();
callback?.();
this.setTableLoading(false);
})
.catch(() => {
callback?.();
this.setTableLoading(false);
});
}

Ne İşe Yarar?

  • Kullanıcının seçtiği tablo satırını siler.
  • Silme işleminden sonra tablo verilerini yeniler.

Parametreler

ParametreTipiAçıklama
rowRow<unknown>Silinecek satırın verilerini temsil eder.
callback() => voidİşlem tamamlandığında çağrılacak opsiyonel fonksiyon.

Kullanım Alanları

1. ActionsCell

  • Kullanım Amacı: Silme butonuna tıklandığında satır verilerini API'ye göndermek için çağrılır.
  • Kullanıldığı Yer: ActionsCell bileşeninde.
onDeleteClick={(row) => tableService.handleDelete(row)}

2. OpsTableProvider

  • Kullanım Amacı: Tablo silme işlemini desteklemek ve tabloyu güncellemek için çağrılır.
  • Kullanıldığı Fonksiyon: handleDelete
tableService.handleDelete(selectedRow);

İş Mantığı

  1. Satır Kimliği Alma:

    • Silinecek satırın kimliği (id) alınır.
  2. API Silme İsteği:

    • axiosInstance kullanılarak satır silme isteği API'ye gönderilir.
  3. Tablo Yeniden Yükleme:

    • Silme işlemi başarılı olursa initialProcess fonksiyonu çağrılarak tablo yeniden yüklenir.
  4. Callback Yönetimi:

    • İşlem tamamlandığında opsiyonel callback fonksiyonu çağrılır.
  5. Hata Yönetimi:

    • API çağrısında hata oluşursa yükleme durumu sıfırlanır ve kullanıcı bilgilendirilir.

Önemli İpuçları

  • this.CRUDUrl veya this.deletePropertyName boşsa, silme işlemi başlatılamaz. Bu nedenle kontrol edilmelidir.
  • API'den gelen yanıtın başarılı olup olmadığını kontrol edin ve işleme devam edin.
  • Kullanıcı deneyimini artırmak için silme işlemi sırasında bir yükleme animasyonu göstermek önerilir.
  • Tabloyu yeniden yüklerken gereksiz API çağrılarından kaçınmak için önbellek mekanizmaları kullanılabilir.