Proje: Okul.com.tr CRM · Hub: Okul.com.tr CRM — Incidents
SchoolComment — Store Action Yok, Buton DOM Manipülasyonuyla Gizleniyor
Semptom
/school-comments sayfasında “Yeni Ekle” butonu görünüyor ama API’nin store action’ı yok.
Root Cause
Backend route tanımı:
Route::apiResource('school-comments', SchoolCommentController::class)
->except(['store']);Frontend bunu bilmeden GenericListPage’in standart “Yeni Ekle” butonunu DOM manipülasyonuyla gizliyor:
// page.tsx içinde — KÖTÜ PATTERN
useEffect(() => {
const hideAddButton = () => {
const buttons = document.querySelectorAll('button');
buttons.forEach(btn => {
if (btn.textContent?.includes('Yeni Ekle')) {
btn.style.display = 'none';
}
});
};
hideAddButton();
const timer = setTimeout(hideAddButton, 100);
return () => clearTimeout(timer);
}, [loading]);Doğru Çözüm
GenericListPage’e addRoute prop’u verilmemeli — buton zaten gösterilmez:
<GenericListPage
// addRoute={'/school-comments/create'} ← bu satır olmamalı
...
/>Veya permissions={{ add: 'non-existent-permission' }} ile erişim kapatılabilir.
Ders
API’nin desteklemediği action’lar için DOM manipülasyonu yerine GenericListPage prop’larını kullan.
Related
- okul-yorumlari-modeli — SchoolComment entity
- generic-list-page — addRoute ve permissions prop