feat(katalog+tasarim): şehir adları her yerde link; piksel yüzeylere beyaz ton

- ilSayfaHref: üniversite sayfası il hapı, /universiteler listesi, bölüm /
  sonuç / listem / tadımlık satırlarındaki il metası şehir sayfasına gider.
- Şehir kümeleri tüm (üniversite, il) çiftlerinden: DB'deki her il değerinin
  sayfası var (ODTÜ Ankara + KKTC); dev'de eski globalThis önbelleğine dayanıklı.
- PikselZemin ton="acik", CtaBandi/CtaSiraForm ton="beyaz": /universiteler
  altı ve /meraklisina kapanışı beyaz, diğer bantlar mavi (dönüşümlü).
- ilUlkeHaritasi: il değerinden ülke haritası + şehir konumu.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
bilalgursen
2026-09-24 14:56:11 +03:00
parent c27f24e6a6
commit 259534fa9c
13 changed files with 193 additions and 49 deletions

View File

@@ -26,7 +26,8 @@ import {
TableHeader,
TableRow,
} from "@/components/ui/table";
import { bolumSayfaSlug, trBaslikDuzeni, uniSayfaSlug } from "@/lib/slug";
import { bolumSayfaSlug, ilSayfaHref, trBaslikDuzeni, uniSayfaSlug } from "@/lib/slug";
import { cn } from "@/lib/utils";
import { UNITUR_ETIKET } from "@/lib/unitur";
import { RiskEtiketi } from "@/components/risk-etiketi";
import {
@@ -266,7 +267,14 @@ export function RaporListesi({
<span className={SATIR_CIP}>{devlet ? "Devlet" : "Vakıf"}</span>
) : null}
{p?.il ? (
<span className="shrink-0">{trBaslikDuzeni(p.il)}</span>
<Link
href={ilSayfaHref(p.il)}
className={cn("shrink-0", SATIR_IKINCIL_LINK)}
title={`${trBaslikDuzeni(p.il)} üniversiteleri`}
onClick={(e) => e.stopPropagation()}
>
{trBaslikDuzeni(p.il)}
</Link>
) : null}
</span>
</span>

View File

@@ -24,12 +24,14 @@ import {
import { useGorunumOlayi } from "@/components/use-gorunum-olayi";
import { olay, siraKovasi } from "@/lib/analitik";
import { dilimdenRisk, riskHesapla } from "@/lib/risk";
import { trBaslikDuzeni, turkishSlugify } from "@/lib/slug";
import { ilSayfaHref, trBaslikDuzeni, turkishSlugify } from "@/lib/slug";
import { cn } from "@/lib/utils";
import {
SATIR_ALT_AD,
SATIR_AD_DUZ,
SATIR_CIP,
SATIR_ALT_GRUP,
SATIR_IKINCIL_LINK,
SATIR_META,
} from "@/components/liste-satiri";
import { listemUretHref, PROFIL_DEGISTI_EVENT } from "@/features/sihirbaz/sihirbaz-sabitler";
@@ -166,7 +168,13 @@ export function TadimlikSatiri({
<span className={SATIR_CIP}>{devlet ? "Devlet" : "Vakıf"}</span>
) : null}
{p.il ? (
<span className="shrink-0">{trBaslikDuzeni(p.il)}</span>
<Link
href={ilSayfaHref(p.il)}
className={cn("shrink-0", SATIR_IKINCIL_LINK)}
title={`${trBaslikDuzeni(p.il)} üniversiteleri`}
>
{trBaslikDuzeni(p.il)}
</Link>
) : null}
</span>
</span>