Update routing in next.config.ts to redirect "/tercih-robotu" to the hero form, add simple-icons dependency in package.json, and enhance database indexing for improved query performance. Remove unused SVG files and update metadata across various pages for better SEO and clarity.
All checks were successful
Deploy / deploy (push) Successful in 14m14s
All checks were successful
Deploy / deploy (push) Successful in 14m14s
This commit is contained in:
@@ -1,9 +1,17 @@
|
||||
import { NextResponse, type NextRequest } from "next/server";
|
||||
import { PUAN_TURLERI, rankWindowFacets, type PuanTuruKey } from "@/lib/db";
|
||||
import {
|
||||
PUAN_TURLERI,
|
||||
dilimAra,
|
||||
rankWindowFacets,
|
||||
type DilimKey,
|
||||
type PuanTuruKey,
|
||||
} from "@/lib/db";
|
||||
import { KATEGORILER } from "@/lib/kategoriler";
|
||||
|
||||
// Ana sayfadaki sihirbaz modalı için: sıralamaya uygun kategori/il/üniversite
|
||||
// tipi facet'leri. /sonuc bu veriyi server component'te doğrudan alır; burada
|
||||
// client'tan sıra girildikten sonra çekilir.
|
||||
// Sihirbaz modalı için: sıralamaya uygun kategori/il/üniversite tipi
|
||||
// facet'leri. Kademeli filtre: `kategori` (tekrarlı) il adımını,
|
||||
// `kategori` + `il` (tekrarlı) üniversite tipi adımını süzer — bir önceki
|
||||
// adımın seçimi bir sonrakinin seçeneklerini daraltır (bkz. rankWindowFacets).
|
||||
export function GET(request: NextRequest) {
|
||||
const { searchParams } = request.nextUrl;
|
||||
const sira = Number.parseInt(searchParams.get("sira") ?? "", 10);
|
||||
@@ -18,5 +26,31 @@ export function GET(request: NextRequest) {
|
||||
);
|
||||
}
|
||||
|
||||
return NextResponse.json({ facetler: rankWindowFacets(sira, tur) });
|
||||
const kategoriler = [
|
||||
...new Set(
|
||||
searchParams
|
||||
.getAll("kategori")
|
||||
.filter((k) => (KATEGORILER as readonly string[]).includes(k)),
|
||||
),
|
||||
];
|
||||
const iller = [
|
||||
...new Set(searchParams.getAll("il").filter((i) => i.trim().length > 0)),
|
||||
].slice(0, 5);
|
||||
|
||||
// ?dilimler=1: /meraklisina'daki canlı dilim şeridi için dilim başına
|
||||
// toplam sayılar da eklenir (limit 0 → yalnızca COUNT çalışır)
|
||||
const dilimToplam =
|
||||
searchParams.get("dilimler") === "1"
|
||||
? Object.fromEntries(
|
||||
(["hayal", "dengeli", "garanti"] as DilimKey[]).map((d) => [
|
||||
d,
|
||||
dilimAra(sira, tur, d, { limit: 0 }).toplam,
|
||||
]),
|
||||
)
|
||||
: undefined;
|
||||
|
||||
return NextResponse.json({
|
||||
facetler: rankWindowFacets(sira, tur, { kategoriler, iller }),
|
||||
...(dilimToplam ? { dilimToplam } : {}),
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user