Proje: Okul.com.tr CRM · Hub: Okul.com.tr CRM — Decisions
useListFilters Merkezi Hook Kararı
Karar
useUrlFilters’ı direkt kullanan liste sayfaları pattern’i yerine useListFilters wrapper hook ile standartlaştırma.
Seçim
useListFilters aşağıdakileri kapsüller:
- URL senkronizasyonu (useUrlFilters)
- Filter state yönetimi
- Hierarchical filter cascading
buildApiParams()— API param oluşturucudisplayFilters— badge gösterimi- Handlers objesi (spread edilebilir)
Gerekçe
useUrlFilters direkt kullanımı her sayfada:
- Ayrı
setFiltersstate - Ayrı
useEffectsync - Manuel
buildApiParams
Bu boilerplate kod tekrarı ve tutarsızlığa yol açıyordu.
Alternatifler
- Reducer pattern — daha karmaşık, kısmi kapsama
- Context — global state, gereksiz re-render riski
- Mevcut durum (useUrlFilters direkt) — zaten bu
Not
Eski sayfalar (örn. users/page.tsx) hâlâ useUrlFilters direkt kullanıyor — migration tamamlanmamış. Yeni sayfalarda her zaman useListFilters kullan.
Related
- liste-sayfasi-pattern — useListFilters kullanım şablonu
- eski-vs-yeni-pattern — Geçiş dönemi karşılaştırması