Proje: Okul B2B App · Hub: Okul B2B App — Conventions
Firma Değiştirme Mekanizması
CompanyContext.setSelectedCompanyId(companyId) — Firma değiştirirken yapılan işlemler.
Akış
setSelectedCompanyId = async (companyId: number) => {
// 1. CompaniesService'ten firma verisi al
const company = await CompaniesService.getCompanyById(companyId);
// 2. AsyncStorage'a kaydet (session persistence)
await AsyncStorage.setItem('selectedCompanyId', companyId.toString());
// 3. State güncelle
setSelectedCompanyIdState(companyId);
setCompany(companyData);
// 4. API client güncelle
apiClient.setCustomerId(companyId);
// 5. Cache temizle (eski firma datası geçersiz)
apiClient.clearCache();
// 6. Ready sinyali ver
setIsReady(true);
setNeedsCompanySelection(false);
}Analytics Event
Firma değiştirme ayrıca trackOrganizationEvent('company_select', ...) tetikler.
Cache Temizleme Önemi
apiClient.clearCache() çağrılmadan firma değiştirilirse:
- Eski firmaya ait lead/galeri verisi cache’de kalabilir
- Yeni firmada yanlış veri görünür
Önceki Seçim Kurtarma
App açılışında AsyncStorage['selectedCompanyId'] okunarak önceki firma seçimi restore edilir.
Related
- context-state-yonetimi — CompanyContext
- api-client-header-yonetimi — x-cid header yönetimi
- firma-okul-hiyerarsisi — firma yapısı