feat(veri): bileşenler yılsız Program'a ve veri-yillari sözlüğüne geçti (P-B b)

- SiraSerisi = { siraGecmisi, ilkYil? }; yardımcılar dizinin kendi son iki
  elemanıyla çalışır, yıl ilkYil + indeks. raporSiraSerisi diziyi doldurmaz:
  5 elemanlı eski raporlar 2024→2025 trendini göstermeye devam eder.
- Tablo başlıkları "Son ${VERI_YIL_SAYISI} yıl"; rapor listesi başlığı kaydın
  kendi pencere uzunluğunu söyler (eski rapor: 5).
- siraYiliEtiketi SON_YIL/ONCEKI_YIL'dan; bölüm/üniversite sayfa metinleri ve
  metadata SON_YIL, TERCIH_YILI, BASLIK_YILI sözlüğünden.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
bilalgursen
2026-09-21 17:00:39 +03:00
parent ce40b7c5b3
commit ceeb70375d
10 changed files with 127 additions and 89 deletions

View File

@@ -1,6 +1,7 @@
import type { ReactNode } from "react";
import Link from "next/link";
import { ChevronLeft, ChevronRight } from "lucide-react";
import { ONCEKI_YIL, SON_YIL } from "@/lib/veri-yillari";
/** Programatik tablo sayfaları için satır dilimi boyutu. */
export const SAYFA_BOYU = 50;
@@ -13,10 +14,19 @@ export function sayfaDilimi<T>(liste: readonly T[], sayfa: number): T[] {
return liste.slice((sayfa - 1) * SAYFA_BOYU, sayfa * SAYFA_BOYU);
}
/** Aralıktaki sıraların hangi yıldan geldiği: hepsi 2025 / hepsi 2024 / karışık. */
export function siraYiliEtiketi(yalniz2024: number, siraliSayi: number): string {
if (yalniz2024 === 0) return "2025";
return yalniz2024 === siraliSayi ? "2024" : "2024–2025";
/**
* Aralıktaki sıraların hangi yıldan geldiği: hepsi son yıl / hepsi bir önceki
* yıl / karışık. `yalnizOnceki`: sırası son yılda olmayıp bir önceki yıldan
* gelen satır sayısı; `siraliSayi`: sırası olan toplam satır.
*/
export function siraYiliEtiketi(
yalnizOnceki: number,
siraliSayi: number,
): string {
if (yalnizOnceki === 0) return String(SON_YIL);
return yalnizOnceki === siraliSayi
? String(ONCEKI_YIL)
: `${ONCEKI_YIL}–${SON_YIL}`;
}
/**