Proje: Okul B2B App · Hub: Okul B2B App — Architecture
Ortak Bileşenler (Shared Components)
components/ klasöründeki bileşenler ve sorumlulukları.
Temel Bileşenler
| Bileşen | Konum | Açıklama |
|---|---|---|
AppHeader | components/ui/ | Tüm ekranlarda gradient header, okul seçici, bildirim bell |
LoadingScreen | components/ | Uygulama yükleme ekranı |
UpdateLoadingScreen | components/ | OTA update progress ekranı |
OnboardingScreen | components/ | 3-slayt onboarding |
ErrorBoundary | components/ | React error boundary |
DevInfoBanner | components/ | Development build bilgi banner’ı |
Auth Bileşenleri
| Bileşen | Açıklama |
|---|---|
AuthFlow | Login + OTP akışı coordinator |
LoginScreen | Email+şifre / telefon seçimi |
OTPVerificationScreen | SMS kodu doğrulama |
CompanySelectionScreen | Çok firma → seçim ekranı |
NoCompaniesScreen | Firma yok → uyarı ekranı |
TermsGuard | Şartlar kabul gate |
TermsAcceptanceModal | Zorunlu şartlar modal’ı |
AppHeader Özellikleri
- Her ekranda görünür (
headerShown: falseile Stack devre dışı, AppHeader bileşen ile kullanılır) - Gradient:
['#C2C2C2', '#005779', '#C2C2C2'](light) / dark mode karşılığı - İçerik: Kullanıcı adı, seçili okul adı (tıklanabilir), bildirim bell (unread badge)
- Okul değiştirme:
SchoolSelectionModal - Bildirim:
NotificationModal
UI Bileşenleri
| Bileşen | Açıklama |
|---|---|
LeadDetailModal | Lead detay ve not/durum güncelleme |
NotesManager | Lead not CRUD UI |
LeadsListSkeleton | Lead listesi yükleme iskelet |
StatsCardSkeleton | İstatistik kartı iskelet |
FloatingLabelInput | Floating label input (form) |
OTPInput | 4-hane OTP giriş bileşeni |
LottieSpinner | Lottie animasyonlu yükleme |
NetworkStatusBanner | İnternet bağlantı durumu banner |
Toast (react-native-toast-message) | Global toast notifications |
Font Scaling Babel Plugin
babel-plugin-disable-font-scaling.js — Tüm Text ve TextInput elemanlarına otomatik allowFontScaling={false} ekler. Kullanıcının sistem font boyutu UI’ı etkilemez.
Haptic Feedback
expo-haptics → önemli buton tıklamalarında (galeri sıralama, lead aksiyon vs.)
Related
- sistem-genel-bakis — genel mimari
- tema-ve-renk-sistemi — AppHeader gradient renkleri
- navigation-yapisi — AppHeader’ın routelardaki kullanımı