bilalgursen
53edb2b307
perf: sunucu waterfall'ları ve blocking analitik düzeltildi (Faz 1)
...
Vercel React Best Practices denetimi, sunucu tarafı:
- odeme: analitik olayı after() ile yanıt sonrasına alındı; ucuz ürün
doğrulaması oturum turundan öne çekildi; sonuç kartında oturum+sipariş
paralel okunuyor
- /api/soru POST: gövde+oturum ve 3 bağımsız sorgu Promise.all'a bağlandı
- rehber: prod'da globalThis cache + özetler için frontmatter fast-path
(24 dosya okuma + marked.parse her render'da tekrarlanıyordu); arama
kutusuna giden payload RehberAramaKaydi'ya kırpıldı (tarih serileşmiyor)
- /sonuc hattı: ProgramListeSatiri (fakulte/puan2025 client'a serileşmiyor)
- katalog: universite/bolum listelerinde O(n²) filtreler tek geçişe indi
- sira-gerekli + katalog-arama: effect'te setState kalktı (lint yeşil)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-08 13:48:27 +03:00
bilalgursen
22e2fde058
refactor: /sonuc senkron kompozisyona geçti (Faz 9)
...
- liste-queries.ts (siraylaProgramAra) ve sihirbaz-queries.ts
(getSihirbazFacetleri) eklendi — /sonuc'un SQLite okumaları feature
sorgularına indi
- Yeni sunucu sarmalayıcıları: SonucProgramTablosu (+skeleton),
TadimlikBolumu (girişliyse null — gruplu sınırda skeleton bilerek yok),
SonucSihirbazi (session + rapor-varlığı + facetler içeride; client
orkestratöre çözülmüş değerler iner)
- Sayfa senkron: searchParams.then() içinde sıra doğrulaması; geçersiz sıra
SiraGerekli'ye düşer; geçerli akışta tablo+tadımlık+sihirbaz+dipnot+footer
tek gruplu Suspense'te (bugünkü tek await'li akışla aynı anda belirir)
- sonuc/loading.tsx silindi; geometrisi sayfadaki fallback'te yaşıyor
- Davranış değişikliği yok (getSession React cache ile tek okuma)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-08 01:42:32 +03:00
bilalgursen
7d2b2ddd71
refactor: liste feature'ı — manuel-liste toptan taşındı (Faz 7)
...
- src/components/manuel-liste/ → src/features/liste/: kayitli-liste-actions →
liste-actions, store → liste-store, dogrula → liste-dogrula, giris-url →
liste-giris-url, oturum-sinyali → liste-oturum-sinyali,
profil-kapisi-store → hooks/use-tercih-profili; 12 tsx → components/
- program-tablosu.tsx ve tercih-haritasi.tsx da features/liste/components'a
geldi (rapor ve katalog cross-import ediyor)
- app/layout.tsx'in 3 global mount'u (ListeCekmecesiLazy, KaydetBannerLazy,
TercihProfiliKapisiLazy) yeni feature yollarından import ediliyor
- liste-queries.ts /sonuc dönüşümüyle Faz 9'da gelecek
- Davranış değişikliği yok; store/localStorage anahtarları aynı
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-08 01:34:50 +03:00
bilalgursen
792e8c7346
refactor: sihirbaz feature'ı — lib/sihirbaz bölündü, bileşenler taşındı (Faz 6)
...
- lib/sihirbaz.ts ikiye ayrıldı: sihirbaz-sabitler.ts (şema + doğrulayıcılar +
event/storage sabitleri + sonucHref/secimOzeti, izomorfik) ve
sihirbaz-profil.ts (localStorage oku/yaz/sil); 25 tüketicinin importu
sembol bazında bölünerek güncellendi, localStorage anahtar/event değerleri
birebir aynı
- sihirbaz-adimlar(+lazy), hero-form, cta-sira-form, il-secim-haritasi ve
/sonuc'un sihirbaz-modal/sihirbaz-cagri-karti/sira-gerekli bileşenleri
features/sihirbaz/components/ altına taşındı
- sihirbaz-queries.ts ve async SihirbazBolumu sarmalayıcısı /sonuc sayfa
dönüşümüyle birlikte Faz 9'da gelecek (o zamana dek ölü kod olurlardı)
- Davranış değişikliği yok
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-08 01:31:32 +03:00