diff --git a/src/features/liste/components/kaydet-banner.tsx b/src/features/liste/components/kaydet-banner.tsx index 8c78cc0..3526d7a 100644 --- a/src/features/liste/components/kaydet-banner.tsx +++ b/src/features/liste/components/kaydet-banner.tsx @@ -58,18 +58,20 @@ export function KaydetBanner() {
{/* Kullanıcının o anki işletim sisteminin logosu: "bu tarayıcıda" mesajını somutlaştırır */}
-
-

+

+

Listen yalnızca bu tarayıcıda

-

+

Giriş yap; {liste.length} seçimin hesabında saklansın, her cihazdan aç{" "} @@ -77,8 +79,7 @@ export function KaydetBanner() {

diff --git a/src/features/rapor/components/liste-uretici.tsx b/src/features/rapor/components/liste-uretici.tsx index b673d7a..8f62125 100644 --- a/src/features/rapor/components/liste-uretici.tsx +++ b/src/features/rapor/components/liste-uretici.tsx @@ -434,7 +434,7 @@ function UretimGovdesi({ uzunSurdu }: { uzunSurdu: boolean }) { {/* Nihai sayfanın (listem-govde) grid'iyle aynı düzen: liste solda, danışman sağda — üretim biter bitmez ekran aynı yerlere oturur. */} -
+
{/* Gelmekte olan tercih listesinin iskeleti */}
diff --git a/src/features/rapor/components/listem-govde.tsx b/src/features/rapor/components/listem-govde.tsx index e5b7de8..f2a6076 100644 --- a/src/features/rapor/components/listem-govde.tsx +++ b/src/features/rapor/components/listem-govde.tsx @@ -39,6 +39,11 @@ import { } from "@/features/liste/hooks/use-tercih-profili"; import { UNIVERSITE_TIPI_ETIKET } from "@/features/sihirbaz/sihirbaz-sabitler"; import { PUAN_TURLERI } from "@/types/yokatlas"; +import { DILIM_ETIKET } from "@/lib/risk"; + +// Başlık satırındaki ikincil düğmeler: 44 px, hover tek turuncu (§4.1, §2.1) +const IKINCIL_BUTON = + "h-11 cursor-pointer px-4 transition-[background-color,border-color,color,transform] duration-150 hover:border-orange-500 hover:bg-orange-50/60 hover:text-orange-500 active:scale-[0.97]"; export function ListemGovde({ rapor, @@ -94,6 +99,10 @@ export function ListemGovde({ ); const acikSatir = kilitliBaslangic ?? rapor.tercihler.length; + const dilimOzeti = useMemo(() => { + const say = (d: string) => rapor.tercihler.filter((t) => t.dilim === d).length; + return `${rapor.tercihler.length} tercih: ${say("hayal")} ${DILIM_ETIKET.hayal.toLocaleLowerCase("tr-TR")} · ${say("dengeli")} ${DILIM_ETIKET.dengeli.toLocaleLowerCase("tr-TR")} · ${say("garanti")} ${DILIM_ETIKET.garanti.toLocaleLowerCase("tr-TR")}`; + }, [rapor]); // Profil client'ta (localStorage) çözülür: ilk render'da null döner, yani // SSR ile aynı "Tercihlerimi düzenle" hâli basılır — hidrasyon uyuşmazlığı @@ -148,7 +157,7 @@ export function ListemGovde({ ); return ( -
+
{/* Harita: listenin coğrafyası — ile dokun, üniversiteleri gör */}
-

- {hasPaket - ? "Yapay Zeka tercih listen" - : "Veriyi ücretsiz incele. Kararı Yapay Zeka ile netleştir."} -

+ {/* Sayfa nerede olduğunu söyler (DESIGN.md §10.1): başlık yer, + altındaki satır listenin sayılarla özeti. */} +
+

+ Tercih listen +

+

+ {dilimOzeti} + {hasPaket ? null : ( + + Veriyi ücretsiz incele, kararı Yapay Zeka ile netleştir. + + )} +

+
{/* Tercih düzenleme her kullanıcıya açık: kapı (layout'ta monte TercihProfiliKapisi) profili günceller, /listem'e döner. @@ -200,9 +219,8 @@ export function ListemGovde({ {farkVar ? (