perf: harita/tablo re-render'ları + content-visibility (Faz 6)
- tercih-haritasi: viewBox animasyonu transient — kare başına setState (380ms × ~23 render × 81 path) yerine svg.setAttribute; il path ref callback'leri key başına stabil; il özetleri/şerit/pin grupları useMemo; reduce×3+baskinRisk tek geçiş; çift lookup ve çift uniLogoYoluFromAd kalktı - liste-store: O(1) idSet + useListedeMi/useListeDoluMu primitive selector'ları; program-ekle-butonu artık tüm listeye abone değil — 50 satırlık tabloda mutasyon başına 50 yerine yalnız değişen buton render olur - bolum-program-listesi: decorate-sort-undecorate yerine stable toSorted; sıralama/sayfalama startTransition'da - il-secim-haritasi: normalizeIlAdi modül seviyesinde precompute (render başına ~1000 string normalizasyonu vardı); Map/Set/sort useMemo - kt-cv-satir utility: uzun tablo satırlarında content-visibility:auto + contain-intrinsic-size (program/bolum/universite/rapor tabloları) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -194,6 +194,15 @@
|
||||
}
|
||||
}
|
||||
|
||||
/* Uzun tablo satırları: viewport dışı satırların layout/paint'i atlanır
|
||||
(rendering-content-visibility). contain-intrinsic-size satır yüksekliği
|
||||
tahminidir — scrollbar zıplamasını önler. Sorun çıkarsa satır bazında
|
||||
class kaldırılarak geri alınabilir. */
|
||||
@utility kt-cv-satir {
|
||||
content-visibility: auto;
|
||||
contain-intrinsic-size: auto 57px;
|
||||
}
|
||||
|
||||
@layer base {
|
||||
* {
|
||||
@apply border-border outline-ring/50;
|
||||
|
||||
Reference in New Issue
Block a user