{rem.on
? t('We\u2019ll nudge you if your daily plan isn\u2019t done yet.','سنذكّرك إذا لم تُكمل خطتك اليومية بعد.','Günlük planın bitmediyse sana hatırlatırız.')
: t('Turn it on so you never miss a study day.','فعّله حتى لا يفوتك يوم دراسة.','Aç ki hiçbir çalışma gününü kaçırma.')}
{rem.on && (
{t('How should we remind you?','كيف نذكّرك؟','Nasıl hatırlatalım?')}
{rem.channel === 'site' && ('Notification' in window) && (
)}
{rem.channel === 'email' && member && (
✓ {t('Email reminders are set. You\u2019ll get one at','تم ضبط تذكير البريد. سيصلك عند الساعة','E-posta hatırlatıcısı ayarlandı. Saat')} {rem.time} {t('every day you haven\u2019t studied yet.','كل يوم لم تدرس فيه بعد.','henüz çalışmadığın her gün.')}
)}
)}
);
}
/* ── Due banner (shown on every tab) ── */
function DueReminderBanner({ state, setState, t, setMode }) {
const rem = { ...remDefaults(), ...(state.reminder || {}) };
const tk = window.todayKey ? window.todayKey() : '';
const left = remTasksLeft(state);
const due = rem.channel === 'site' && remIsDue(rem) && left > 0 && rem.dismissedOn !== tk;
// one browser notification per day, if enabled
React.useEffect(() => {
if (!due || !rem.browserNotif || rem.notifiedOn === tk) return;
if (!('Notification' in window) || Notification.permission !== 'granted') return;
try {
new Notification('The Fluent Engineer', { body: t('Time to study — your daily plan is waiting!','حان وقت الدراسة — خطتك اليومية بانتظارك!','Çalışma zamanı — günlük planın seni bekliyor!') });
setState(s => ({ ...s, reminder: { ...remDefaults(), ...(s.reminder || {}), notifiedOn: tk } }));
} catch {}
}, [due]);
if (!due) return null;
return (
⏰
{t('Study reminder — ','تذكير بالدراسة — ','Çalışma hatırlatması — ')}
{state.plan
? left + ' ' + t('tasks left on today\u2019s plan.','مهام متبقية في خطة اليوم.','görev bugünkü planında kaldı.')
: t('you haven\u2019t studied yet today.','لم تدرس اليوم بعد.','bugün henüz çalışmadın.')}