bilalgursen
7dff241eb6
feat(tasarim): ana sayfa ve her sayfadaki ortak parçalar dile göre
...
- Landing kartlarının hover'ı tek turuncu (§4.4)
- Güven bandında sayı üstte ve iri, etiket altında (§1.1)
- "Dürüstlük notu", alt bilgi başlıkları, arama penceresi başlıkları
büyük harften çıktı; 10-11 px yazılar 12 px'e
- Alt bilgi linklerinin hover'ı turuncu
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-24 01:05:56 +03:00
bilalgursen
668568b5b5
perf: istemci istek cache'i (dedup+TTL) ve profil cache (Faz 5)
...
- lib/istek-cache: modül seviyesi in-flight dedup + 5dk TTL cache (SWR
bağımlılığı olmadan); caller iptali paylaşılan fetch'i düşürmez
- /api/facetler'in 5 çağrı yeri (hero, cta, kapı, sihirbaz adımları, demo)
ve /api/katalog-ara cache'e bağlandı — sihirbazda 2↔3 adım geçişi ve
tekrarlanan aramalar artık ağa çıkmıyor; /api/soru GET dedup-only (ttl 0)
- katalog-arama: elle yukleniyor state'i kalktı, "cevaplanmamış sorgu"
türetmesi + startTransition; rehber puanlaması Schwartzian; ⌘K listener'ı
useEffectEvent ile tek sefer bağlanıyor
- sihirbaz-adimlar: il sort/filter useMemo (çip başına 81 eleman kopyalanıp
sıralanıyordu, harita dizisi referansı sabitlendi)
- sohbet-client: stream chunk güncellemeleri startTransition'da — cevap
akarken input yazımı bloklanmıyor
- sihirbaz-profil: modül cache + event/storage geçersizlemesi (tek "+"
tıklamasında 3 localStorage okuma + JSON.parse vardı)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-08 14:11:05 +03:00
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
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
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
bilalgursen
e3cf141f55
refactor: rehber feature'ı — makale ve liste feature bileşenlerine çıktı (Faz 3)
...
- rehber-kapak + el-cizimi-sema features/rehber/components/ altına taşındı
(el-cizimi-sema'nın göreli font yolu yeni konuma göre düzeltildi)
- /rehber'in kart gridi RehberListesi'ne, /rehber/[slug]'ın makale gövdesi
(JsonLd + içerik + ilgili yazılar + notFound) RehberMakale'ye çıkarıldı;
metadata/staticParams yardımcıları bileşen dosyasından export ediliyor
- İki sayfa senkron: params.then() + sayfada Suspense, skeleton'lar colocated
- rehber-queries.ts (server-only) lib/rehber'in feature kapısı
- Davranış değişikliği yok; içerik build-time statik
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-08 01:18:22 +03:00
bilalgursen
8d26e375ff
refactor: katalog feature'ı — sayfalar senkron kompozisyona geçti (Faz 2)
...
- 8 katalog bileşeni src/features/katalog/components/ altına taşındı;
katalog-queries.ts (server-only) lib/katalog'un feature kapısı oldu
- /bolumler ve /universiteler'in sayfa içi fetch+inline bileşenleri
BolumKatalogu/UniversiteKatalogu feature bileşenlerine çıkarıldı
- 6 sayfa async'ten senkron'a: params.then() + sayfada Suspense,
skeleton'lar feature bileşeninin yanında (BolumIcerikSkeleton vb.)
- generateStaticParams artık *-queries yerine bileşen dosyasının
helper'larını kullanıyor (bolumStaticSlugs, uniSayfaStaticParams)
- Davranış değişikliği yok; route durumları aynı (◐), 1917 statik sayfa
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-08 01:14:00 +03:00