/* home.jsx — Главная: дайджест недели + статистика + быстрые действия. */ function HomeScreen({ user, onNav, onNew, onOpenNote }) { const cats = Store.useCategories(); const [digest, setDigest] = React.useState(null); React.useEffect(() => { api.getDigest().then(setDigest); }, []); const hour = new Date().getHours(); const greet = hour < 5 ? "Доброй ночи" : hour < 12 ? "Доброе утро" : hour < 18 ? "Добрый день" : "Добрый вечер"; const catLabel = (k) => (cats.find((c) => c.key === k) || { label: k }).label; const catColor = (k) => (cats.find((c) => c.key === k) || { color: "gray" }).color; return (

{greet}, {user.name || "друг"} 👋

Коротко о том, что происходит в блокноте

{/* ДАЙДЖЕСТ НЕДЕЛИ */}
Дайджест недели
{!digest ? (
) : ( <>

{digest.headline}

{Object.keys(digest.by_category).length > 0 && (
{Object.entries(digest.by_category).sort((a, b) => b[1] - a[1]).map(([k, v]) => { const max = Math.max(...Object.values(digest.by_category)); return (
{catLabel(k)}
{v}
); })}
)} )}
{/* БЛИЖАЙШИЕ НАПОМИНАНИЯ */} {digest && digest.next_reminders && digest.next_reminders.length > 0 && ( onNav("reminders") }}>
{digest.next_reminders.map((r) => { const f = formatRemind(r.remind_at); return (
{r.text} {f.text}
); })}
)} {/* БЫСТРЫЕ ДЕЙСТВИЯ */}
onNav("search")} /> onNav("reminders")} /> onNav("passwords")} />
); } function Block({ title, action, children }) { return (

{title}

{action && }
{children}
); } function QuickAction({ icon, label, onClick, primary }) { return ( ); } Object.assign(window, { HomeScreen });