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ış
  • hasDirectScope vs canLoadTeacherScope — 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