bilalgursen
|
b7e10efd1d
|
perf: TercihHaritasi dinamik + lazy sarmalayıcılara kapı/preload (Faz 3)
- tercih-haritasi-lazy: turkey-map-react il geometrisi (~197 KB) dynamic
ssr:false + viewBox oranlı iskelet (CLS yok); /sonuc 1286->1099 KB,
/listem 1503->1315 KB eager JS
- manuel-harita: liste boşken harita hiç render edilmez (boş haritaya
197 KB iniyordu) — aynı oranlı placeholder alanı korur
- program tablosu section'ına hover/focus preload (niyet anında ısıtma)
- liste-cekmecesi/kaydet-banner/tercih-profili-kapisi lazy sarmalayıcıları
kapı kazandı: koşul sağlanana dek chunk inmez; açan butonlara
(listem-butonu, + butonu, navbar sıralama butonları) hover/focus preload
- liste-cekmecesi: kullanılmayan DrawerDescription importu temizlendi
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-08 13:57:48 +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
|
fbd184e2be
|
refactor: rapor feature'ı — listem, yazdır, sohbet ve actions taşındı (Faz 8)
- app/sonuc/actions.ts → features/rapor/rapor-actions.ts birebir taşındı
(kredi harcama/iade idempotency yolları bayt bayt aynı, yalnızca import
yolları değişti); liste-uretici/revizyon-kutusu action'ı doğrudan import
ediyor
- lib/rapor-kaydi.ts rapor-queries.ts'e emildi: kullanicininRaporu aynı tek
okuma kapısı; listem sayfasındaki inline drizzle sorgusu sohbetGecmisiGetir
oldu; tadimlikSec re-export'u eklendi
- listem-govde, sohbet-client, revizyon-kutusu, liste-uretici, listem-bos-cta,
rapor-listesi, tadimlik-satiri, yazdir-butonu features/rapor/components/'a
- Yeni async ListemIcerik (verifySession + maskeleme + bosDurum dalı içeride;
çift await searchParams kalktı) ve RaporYazdir (3 redirect + yazdırılabilir
belge); skeleton'lar eski loading.tsx geometrileriyle aynı dosyada
- /listem ve /rapor/yazdir senkron: searchParams.then() + sayfada Suspense;
maxDuration=300 ve metadata sayfada kaldı; iki loading.tsx silindi
- Davranış değişikliği yok; /api/soru el değmedi
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-08 01:39:33 +03:00 |
|
bilalgursen
|
820eea7eca
|
refactor: ortak tipler @/types/yokatlas + features/rapor/types'a çıkarıldı, server-only korumaları eklendi (Faz 1)
- Program/PUAN_TURLERI/DilimKey/RankResults/UniturGrubu/ProgramNetSatiri/
SihirbazFacetleri artık src/types/yokatlas.ts'te; lib/db.ts yalnızca sorgu
fonksiyonları barındırıyor
- RaporSonuc/RaporKapsam/RaporParams/MaskeliRapor src/features/rapor/types/
rapor.ts'e taşındı; ölü kalan TercihSchema/RaporSchema silindi
- 11 lib dosyasına import "server-only" eklendi; scripts'in düz node ile
import ettiği dosyalara (db, appdb, rapor-havuzu, tadimlik-havuzu, ai/client,
ai/cagri, credits) bilinçli eklenmedi
- Davranış değişikliği yok; pnpm build yeşil
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-08 01:06:06 +03:00 |
|