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.