Sonner/vaul yerine kendi bildirim yığını ve alt sayfa; çip grubu, kart destesi, kaydırma eylemi, yazı dönüşümü, bölme tutamacı; landing'e program duvarı, süzülen haplar ve veri akışı; yaylar tek dosyada (lib/hareket.ts). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import Link from "next/link";
|
||
import type { ReactNode } from "react";
|
||
|
||
/**
|
||
* Üniversite ve bölüm sayfasının özet kartlarının ortak metin ve link
|
||
* yardımcıları (DESIGN.md §4.8). Yıl yıl ayrıntı çekmecesi ("Yıllara göre
|
||
* taban") ve orta taban kartı 6 Eki 2026'da Bilal'in isteğiyle kaldırıldı;
|
||
* geri gelirse git geçmişinde `taban-yillari.tsx`, `siranla-kapilar.tsx` ve
|
||
* `ortaTabanAciklamasi` olarak duruyor.
|
||
*/
|
||
|
||
/** Özet kartı açıklamasındaki ad linki (üniversite ↔ bölüm çapraz bağ). */
|
||
export function KartBaglantisi({
|
||
href,
|
||
children,
|
||
}: {
|
||
href: string | null;
|
||
children: ReactNode;
|
||
}) {
|
||
if (!href) return <>{children}</>;
|
||
return (
|
||
<Link
|
||
href={href}
|
||
className="font-medium text-primary transition-colors hover:text-orange-500 hover:underline"
|
||
>
|
||
{children}
|
||
</Link>
|
||
);
|
||
}
|
||
|
||
/** "Koç Üniversitesi" → "Koç Üni.", "… Meslek Yüksekokulu" → "… MYO" — kart açıklaması kısa kalsın. */
|
||
export function kisaUniAdi(ad: string): string {
|
||
// \b kullanılmaz: JS'te ASCII sınırıdır, "Ü" önünde sözcük sınırı saymaz.
|
||
return ad.replace("Üniversitesi", "Üni.").replace("Meslek Yüksekokulu", "MYO");
|
||
}
|