import { useActivities } from "#/features/activities/activity-state"; import { useWorkspaceState } from "#/features/workspace/workspace-state"; export function DailyBrief({ onOpenContact }: { onOpenContact: (id: string) => void }) { const { entries } = useWorkspaceState(); const { activities, loading, error } = useActivities(); const tasks = activities .filter((activity) => activity.userState === "available" || activity.userState === "inProgress") .map((activity) => activity.effective); const focus = tasks.find((task) => task.section === "focus"); const optional = tasks.find((task) => task.section === "optional"); const contacts = tasks.filter((activity) => activity.kind === "reply"); const firstContact = contacts[0]; const resume = entries.find( (entry) => entry.kind === "再開地点" && !entries.some((other) => other.correctionOf === entry.id), ); if (loading || error) return null; return (

{focus ? `Start with “${focus.title}” today.` : "There are no priority activities right now."} {firstContact ? ( <> {" "} {contacts.length > 1 ? ` — one of ${contacts.length} reply actions to review.` : " when you’re ready."} ) : ( " No other reply activities are currently registered." )}

{resume ? (

Your resume note: “ {resume.text.length > 100 ? `${resume.text.slice(0, 100)}…` : resume.text}”

) : optional ? (

“{optional.title}” can wait until you have room.

) : null}
); }