fix: update callback handling and user profile management in list components
All checks were successful
Deploy / deploy (push) Successful in 7m23s
All checks were successful
Deploy / deploy (push) Successful in 7m23s
Enhanced the handling of user profiles and callback URLs in various components. Updated the `GirisKarti` to support multiple callback scenarios, ensuring seamless user experience. Improved the `ListeUretici` and `ListemIcerik` components to manage profile data more effectively, including handling cases where the profile is stored in cookies. Additionally, refined the logic for redirecting users based on their profile status, ensuring they are directed to the appropriate pages without losing context. Updated the database file to reflect these changes.
This commit is contained in:
@@ -17,6 +17,7 @@ export type OlayAdi =
|
||||
| "sihirbaz_tamamlandi"
|
||||
| "giris_denendi"
|
||||
| "liste_olusturuldu"
|
||||
| "liste_guncellendi"
|
||||
| "liste_revize"
|
||||
| "program_eklendi"
|
||||
| "netler_goruntulendi"
|
||||
|
||||
@@ -32,8 +32,9 @@ export type YurtdisiPin = {
|
||||
|
||||
/**
|
||||
* Yurtdışı tercihini şehir pinine ekler; şehir çözülemezse false (harita
|
||||
* dışı). Kilitli satırlarda universite null verilir — pin şehir bazlı
|
||||
* olduğundan üniversite kimliği zaten görünmez.
|
||||
* dışı). Kilitli satırlarda da üniversite adı verilebilir: ad yalnızca şehri
|
||||
* çözmek için okunur (KKTC satırlarının çoğunda şehir adın parantez ekinde),
|
||||
* üretilen pin yalnızca ülke/şehir/sayı taşır — üniversite kimliği görünmez.
|
||||
*/
|
||||
export function yurtdisiPinKaydet(
|
||||
gruplar: Map<string, YurtdisiPin>,
|
||||
@@ -92,7 +93,8 @@ export function pinleriTuret(
|
||||
if (kilitli) {
|
||||
const konum = ilKonum(p.il);
|
||||
if (!konum) {
|
||||
if (!yurtdisiPinKaydet(yurtdisi, null, p.il, t.sira, risk))
|
||||
// Şehir çözümü için ad okunur, pine yazılmaz (bkz. yurtdisiPinKaydet)
|
||||
if (!yurtdisiPinKaydet(yurtdisi, p.universite, p.il, t.sira, risk))
|
||||
haritaDisi += 1;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -81,6 +81,23 @@ const UNI_DUZELTME: Record<string, SehirAnahtari | null> = {
|
||||
/** il değeri Türkiye dışını mı gösteriyor? ("KIBRIS" genel değeri dahil) */
|
||||
const YURTDISI_IL = new Set([...Object.keys(SEHIRLER), "KIBRIS"]);
|
||||
|
||||
/**
|
||||
* Ad sonundaki "(KKTC-LEFKOŞA)" ekinden şehir anahtarı. YÖK Atlas'ta 100'den
|
||||
* fazla KKTC satırının il alanı şehir değil genel "KIBRIS"tır (Doğu Akdeniz,
|
||||
* Yakın Doğu, Lefke Avrupa, Uluslararası Final, Kıbrıs Sağlık ve Toplum
|
||||
* Bilimleri); şehir yalnızca üniversite adının parantezinde durur. Bu ek
|
||||
* okunmazsa o programlar hiçbir haritaya düşmez, "haritada gösterilemiyor"
|
||||
* sayısına yazılır.
|
||||
*/
|
||||
function ektenSehir(universite: string): SehirAnahtari | null {
|
||||
const ek = universite.match(/\(([^)]*)\)\s*$/)?.[1];
|
||||
if (!ek) return null;
|
||||
// "KKTC-GAZİMAĞUSA" → "GAZİMAĞUSA"; ülke öneki olmayan "(ANKARA)" gibi
|
||||
// ekler SEHIRLER'de karşılık bulmadığından kendiliğinden elenir.
|
||||
const sehir = ek.split("-").pop()!.trim().toLocaleUpperCase("tr-TR");
|
||||
return sehir in SEHIRLER ? (sehir as SehirAnahtari) : null;
|
||||
}
|
||||
|
||||
/** Üniversite adı + il'den şehir anahtarı; şehri bilinmeyen KKTC'de ülke. */
|
||||
type Cozum = { anahtar: SehirAnahtari } | { ulke: UlkeKodu } | null;
|
||||
|
||||
@@ -96,7 +113,10 @@ function coz(universite: string, il: string | null): Cozum {
|
||||
}
|
||||
if (!il || !YURTDISI_IL.has(il)) return null;
|
||||
if (il in SEHIRLER) return { anahtar: il as SehirAnahtari };
|
||||
return { ulke: "kktc" }; // il "KIBRIS": ülke bilinir, şehir bilinmez
|
||||
// il "KIBRIS": ülke bilinir, şehir adın parantez ekinden okunur;
|
||||
// o da yoksa ülke seviyesinde kalır (şehir pini çizilemez)
|
||||
const ekSehir = ektenSehir(universite);
|
||||
return ekSehir ? { anahtar: ekSehir } : { ulke: "kktc" };
|
||||
}
|
||||
|
||||
export type UlkeKonum = {
|
||||
|
||||
Reference in New Issue
Block a user