UNPKG

react-schedule-view

Version:

A zero-dependency, fully customizable component for displaying schedules in a daily or week format

58 lines (45 loc) 5.04 kB
# Props ## Component Props ### ScheduleView | Prop | Type | Description | | ------------------ | --------------------------------------------- | ------------------------------------------ | | `daySchedules` | `Array<DaySchedule>` | Data that describes daily events | | `viewStartTime` | `number \| undefined` | View start time (24 hr) | | `viewEndTime` | `number \| undefined` | View end time (24 hr) | | `handleEventClick` | `(event: CalendarEvent) => void \| undefined` | Callback for when an event is clicked | | `theme` | `ScheduleTheme \| ThemeName \| undefined` | `ScheduleTheme` or `"apple"` or `"google"` | ## Types ### DaySchedule | Property | Type | Description | | -------- | -------------------------------- | --------------------------- | | `name` | `string` | Day label for top of column | | `events` | `Array<T extends CalendarEvent>` | See `CalendarEvent` | ### CalendarEvent | Property | Type | Description | | ------------- | --------------------- | ----------------------------------------- | | `startTime` | `number` | Event start time (24 hr) | | `endTime` | `number` | Event end time (24 hr) | | `title` | `string` | Event title | | `description` | `string \| undefined` | Optional event description | | `color` | `string \| undefined` | Optional tile color (any CSS color value) | ### ScheduleTheme | Property | Type | Description | | ----------------------- | ------------------------------------------------ | ------------------------------------------------ | | `style` | `ScheduleThemeStyle \| undefined` | See `ScheduleThemeStyle` | | `hourHeight` | `string` | Height of each hour tile as a CSS value | | `minorGridlinesPerHour` | `number` | Number of minor gridlines subdividing each hour | | `timeRangeFormatter` | `(startTime: number, endTime: number) => string` | Formatter for time range labels | | `timeFormatter` | `(time: number) => string` | Formatter for time labels | | `defaultTileColor` | `string \| ((event: CalendarEvent) => string)` | Default tile color as a CSS value | | `customTileComponent` | `FC<{ event: CalendarEvent }> \| undefined` | Overrides component used to render tiles | | `themeTileContent` | `FC<{ event: CalendarEvent }> \| undefined` | Overrides inner contents of included theme tiles | ### ScheduleThemeStyle | Property | Type | Description | | ------------------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | | `root` | `CSSProperties \| undefined` | Root element style | | `dayLabels` | `CSSProperties \| undefined` | Style for day labels at the top of the schedule | | `timeScaleLabels` | `CSSProperties \| undefined` | Style for time markers down the left side of the schedule | | `eventTiles` | `CSSProperties \| ((event: CalendarEvent,theme: ScheduleTheme) => CSSProperties) \| undefined` | Event tile style, or a function that returns a style given the event and theme | | `majorGridlinesBorder` | `CSSProperties["borderStyle"] \| undefined` | Major gridline border style | | `minorGridlinesBorder` | `CSSProperties["borderStyle"] \| undefined` | Minor gridline border style | | `verticalGridlinesBorder` | `CSSProperties["borderStyle"] \| undefined` | Vertical gridline border style |