/* 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 (
);
})}
)}
>
)}
{/* БЛИЖАЙШИЕ НАПОМИНАНИЯ */}
{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 });