Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions components/konu/harita-secimi.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ export function SecimPenceresi({
useGeriKatmani(true, onKapat)
const kaydir = useAsagiKaydirKapat(onKapat)
const [bakilan, setBakilan] = useState<HaritaSinifi>(secim.sinif)
const gorunenSiniflar = HARITA_SINIFLARI.filter((s) => !sinifPasifMi(s))
/** Basılan ders; doluyken pencere vurguyu gösterip kapanmayı bekliyor. */
const [secilen, setSecilen] = useState<Secim | null>(null)
const [kapaniyor, setKapaniyor] = useState(false)
Expand Down Expand Up @@ -175,42 +176,41 @@ export function SecimPenceresi({
<h2 className="mt-1 px-0.5 font-display text-[17px] font-extrabold tracking-tight">Ne çalışacaksın?</h2>

<p className="mt-3 mb-2 px-1 text-[10.5px] font-black tracking-[0.14em] text-muted-foreground">SINIF</p>
<div role="group" aria-label="Sınıf" className="grid grid-cols-4 gap-1 rounded-[18px] bg-muted p-1">
{HARITA_SINIFLARI.map((sinif) => {
const pasif = sinifPasifMi(sinif)
{/* İçeriği yazılmamış sınıf (şimdilik 12) hiç listelenmiyor; kartları
yazılınca kendiliğinden görünüyor. "Yakında" rozeti App Store
incelemesinde yarım özellik gibi durduğu için kaldırıldı. */}
<div
role="group"
aria-label="Sınıf"
className="grid gap-1 rounded-[18px] bg-muted p-1"
style={{ gridTemplateColumns: `repeat(${gorunenSiniflar.length}, minmax(0, 1fr))` }}
>
{gorunenSiniflar.map((sinif) => {
const secili = sinif === bakilan
const ortalama = sinifOrtalamasi(sinif, ilerlemeler)
return (
<button
key={sinif}
type="button"
disabled={pasif}
onClick={() => setBakilan(sinif)}
aria-pressed={secili}
aria-label={`${sinif}. sınıf${pasif ? ', yakında' : `, yüzde ${ortalama ?? 0}`}`}
aria-label={`${sinif}. sınıf, yüzde ${ortalama ?? 0}`}
className={cn(
'flex min-h-[52px] flex-col items-center justify-center rounded-[14px] transition',
secili
? 'bg-primary-parlak text-white shadow-[0_2px_8px_rgba(217,98,47,0.3)]'
: 'text-foreground active:bg-card/60',
pasif && 'opacity-60',
)}
>
<span className="rakam font-display text-[16px] leading-tight font-extrabold">{sinif}.</span>
{pasif ? (
<span className="mt-0.5 rounded-full bg-background px-1.5 text-[9.5px] leading-[15px] font-extrabold text-muted-foreground">
Yakında
</span>
) : (
<span
className={cn(
'rakam mt-0.5 text-[11px] leading-[15px] font-bold',
secili ? 'text-white/90' : 'text-muted-foreground',
)}
>
%{ortalama ?? 0}
</span>
)}
<span
className={cn(
'rakam mt-0.5 text-[11px] leading-[15px] font-bold',
secili ? 'text-white/90' : 'text-muted-foreground',
)}
>
%{ortalama ?? 0}
</span>
</button>
)
})}
Expand Down
7 changes: 2 additions & 5 deletions docs/kurallar/ios.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,8 @@ reddedildi.
- Ses oturumu `.playback` + `.mixWithOthers` (`AppDelegate.swift`): sessizde de çalar,
arkadaki müziği kesmez. Sayfa ve iç kutularda kaydırma çubuğu yok
(`showsVerticalScrollIndicator`, `globals.css`).
- **1.0.0 yalnız iPhone** (`TARGETED_DEVICE_FAMILY = 1`, ana hedef ve uzantılar;
kullanıcı kararı, 2026-10): iPad desteği sonra eklenebilir (tersi App Store'da yasak:
iPad'i bir kez destekleyen uygulama geri çekemez). iPhone yalnız dikey. iPad'e özgü
kalıntılar (`--olcek` zoom, Info.plist'te `~ipad` yönleri) zararsız, iPad açılırsa
oradan devam edilir.
- iPhone + iPad (`TARGETED_DEVICE_FAMILY = "1,2"`); iPad'de `--olcek` zoom,
`UIRequiresFullScreen` yok, dört yön açık; iPhone yalnız dikey.
- **Windows'ta derlenmez:** CI `.github/workflows/ios.yml`. `npm run sync:ios` (Windows
yollarını `scripts/ios-yol-duzelt.mjs` düzeltir), çıplak `cap sync ios` değil.
- **Yayın:** `v*` etiketi Play'e (varsayılan kapalı test) otomatik yükler (kurulum ve
Expand Down
5 changes: 3 additions & 2 deletions docs/kurallar/konu-anlatimi.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,9 @@ Rabi proje kurallarının bir parçası — dizin ve genel kurallar: [AGENTS.md]
listeyi değiştirir, seçim derse basınca biter; bakılan sınıfta seçili ders yoksa
`pencereBilgisi` satırı. **"sen" işareti yok** (kullanıcı kaldırttı). Emojiler
`OlcekliEmoji` ile (kullanıcı istedi; hizalı satırda ham emoji telefona göre kayar).
- **Pasif sınıf** (`sinifPasifMi`: hiçbir dersi yazılmamış sınıf) pencerede "Yakında"
rozetli, boş ekrana götürmez. 12, 8 dersle (2018 programı) `KONU_SINIFLARI`na girdi ve
- **Pasif sınıf** (`sinifPasifMi`: hiçbir dersi yazılmamış sınıf) pencerede **hiç
listelenmez** (kullanıcı istedi, 2026-10: "Yakında" rozeti App Store incelemesinde
yarım özellik gibi duruyordu); dersi yazılınca kendiliğinden görünür. 12, 8 dersle (2018 programı) `KONU_SINIFLARI`na girdi ve
hücre kendiliğinden açıldı; `HaritaSinifi` artık `KonuSinifi`nin eşi. Kilitli "yapım
aşamasında" kartı yalnız içeriği boşalan sınıf ya da eski kayıt için duruyor.
- **Konu Takibi yönlendirmesi şerit bırakır:** "Haritaya git" sınıfı değiştirir; kendi
Expand Down
4 changes: 2 additions & 2 deletions ios/App/App.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -689,7 +689,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
Expand All @@ -711,7 +711,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
Expand Down
2 changes: 1 addition & 1 deletion lib/konu/sinif-sekmesi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export type SinifSekmesi = {
* yoksa ya da sınıfın içeriği yazılmadıysa `null`.
*/
yuzde: number | null
/** İçeriği olmayan sınıf (12): seçilemiyor, "Yakında" rozetli. */
/** İçeriği olmayan sınıf (12): seçimde listelenmiyor. */
pasif: boolean
/** Kullanıcının kendi sınıfı — küçük "sen" işareti. */
sen: boolean
Expand Down
Loading