mirror of
https://github.com/kennethnym/aris.git
synced 2026-03-20 09:01:19 +00:00
25 lines
729 B
TypeScript
25 lines
729 B
TypeScript
|
|
import type { ContextKey } from "@aris/core"
|
||
|
|
|
||
|
|
import { contextKey } from "@aris/core"
|
||
|
|
|
||
|
|
import type { CalendarEventData } from "./types.ts"
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Calendar context for downstream sources.
|
||
|
|
*
|
||
|
|
* Provides a snapshot of the user's upcoming events so other sources
|
||
|
|
* can adapt (e.g. a commute source checking if there's a meeting soon).
|
||
|
|
*/
|
||
|
|
export interface CalendarContext {
|
||
|
|
/** Events happening right now */
|
||
|
|
inProgress: CalendarEventData[]
|
||
|
|
/** Next upcoming event, if any */
|
||
|
|
nextEvent: CalendarEventData | null
|
||
|
|
/** Whether the user has any events today */
|
||
|
|
hasTodayEvents: boolean
|
||
|
|
/** Total number of events today */
|
||
|
|
todayEventCount: number
|
||
|
|
}
|
||
|
|
|
||
|
|
export const CalendarKey: ContextKey<CalendarContext> = contextKey("calendar")
|