Proje: OkulUp · Hub: OkulUp — Conventions
Complex Screen Hook Pattern’i
Bazı ekranlar birden fazla API çağrısı, permission kontrolü ve state yönetimi gerektiriyor. Bunlar için “screen hook” pattern’i kullanılıyor.
Pattern
// use{Feature}Screen.ts
export function useTrackingScreen(options?) {
// Tüm state ve logic burada
// Role-based behavior
// API calls
// Event handlers
return { /* sadece view'ın ihtiyacı olan şeyler */ };
}Mevcut Screen Hook’ları
useTrackingScreen
Günlük takip ekranı için:
- Role’e göre öğrenci seçimi (parent: kendi çocukları, teacher: sınıf öğrencileri)
- Tarih navigasyonu
- Tracking + attendance entegrasyonu
- Kategori ve statü yönetimi
useStudentScreenData
Öğrenci profil/detay ekranı:
canAccessStudentScope()kontrolü — teacher, parent, admin farklı davranışhasDirectScopevscanLoadTeacherScope— erişim belirleme- User refresh if scope missing (teacher sınıf bilgisi eksikse)
- Akademik özet + payment bilgisi birleştirme
useDailyOverviewScreen
Sınıf günlük özeti — attendance + tracking birleştirme
Neden Bu Pattern?
- Screen component’lerini ince tutmak (max 150 satır CLAUDE.md kuralı)
- Logic test edilebilir
- Rol-bazlı karmaşık mantığı component’ten ayırma
Related
- component-architecture — dosya boyutu limitleri
- permission-system — canAccess, canAccessStudentScope