Proje: Okul B2B App · Hub: Okul B2B App — Conventions

useTermsAcceptance Hook

hooks/useTermsAcceptance.ts — Kullanım şartları kabul durumu yönetimi.

Return

{
  acceptanceStatus: TermsAcceptanceStatus | null,
  needsAcceptance: boolean,  // Modal gösterilmeli mi?
  isLoading: boolean,
  error: string | null,
  acceptTerms: () => Promise<boolean>,   // Kabul et (her ikisini birden)
  checkAcceptance: () => Promise<void>,  // Durumu yenile
  resetAcceptance: () => Promise<void>,  // Sıfırla (test için)
  hasAcceptedAll: boolean  // Her ikisi de kabul edildi mi?
}

Kullanım

TermsGuard bileşeni useTermsGuard() (bu hook’un TermsGuard-specific version’ı) kullanır.

acceptTerms()termsAcceptanceManager.acceptTerms(true, true) → hem privacy hem terms kabul edilir.

useTermsGuard

TermsGuard bileşeninde kullanılan özel version:

const { isTermsAccepted, showTermsModal, acceptTerms } = useTermsGuard();

Kabul olunca showTermsModal = false → TermsGuard children’ı render eder.