perf: deterministik dekor memo'ları ve küçük render süpürmeleri (Faz 7)
Some checks failed
Deploy / deploy (push) Has been cancelled
Some checks failed
Deploy / deploy (push) Has been cancelled
- pixel-decor: PixelField/PixelDivider piksel üretimi useMemo([seed]) — 504 iterasyon + ~150 element çekmece reorder'ının her karesinde yeniden üretiliyordu - rapor-listesi: acikSira effect'i önceki-prop desenine döndü (çift render ve eslint-disable kalktı), Set lazy init, tekIl useMemo - program-tablosu: 3 dilimin spread'i useMemo - typing-animation: displayedText state yerine türetme; kaynak reset'i render sırasında — tick başına state yazımı ve effect bağımlılığı azaldı - site-top-banner: saniyelik geri sayım tiki startTransition'da - program-liste-verileri: sparkline 6 dizi geçişi tek döngüde - secimlerim-paneli: SecimSatiri profili prop'tan alır + memo (24 ayrı store aboneliği kalktı) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
"use client";
|
||||
|
||||
import { useEffect, useState } from "react";
|
||||
import { startTransition, useEffect, useState } from "react";
|
||||
import NumberFlow, { NumberFlowGroup } from "@number-flow/react";
|
||||
import { CalendarDays, Clock3 } from "lucide-react";
|
||||
|
||||
@@ -47,7 +47,9 @@ export function SiteTopBanner() {
|
||||
const [geriSayim, setGeriSayim] = useState<GeriSayim | null>(null);
|
||||
|
||||
useEffect(() => {
|
||||
const guncelle = () => setGeriSayim(geriSayimiHesapla(Date.now()));
|
||||
// Saniyelik tik acil değil — layout'ta her sayfada monte; urgent şeritten çık
|
||||
const guncelle = () =>
|
||||
startTransition(() => setGeriSayim(geriSayimiHesapla(Date.now())));
|
||||
|
||||
guncelle();
|
||||
const zamanlayici = window.setInterval(guncelle, 1_000);
|
||||
|
||||
Reference in New Issue
Block a user