import { createElement, Fragment } from '../preact.js' import { BaseComponent } from '../vdom-util.js' import { buildSegTimeText, EventContentArg, getSegAnchorAttrs } from '../component/event-rendering.js' import { DateFormatter } from '../datelib/DateFormatter.js' import { EventContainer } from './EventContainer.js' import { Seg } from '../component/DateComponent.js' import { ElRef } from '../content-inject/ContentInjector.js' export interface StandardEventProps { elRef?: ElRef elClasses?: string[] seg: Seg isDragging: boolean // rename to isMirrorDragging? make optional? isResizing: boolean // rename to isMirrorResizing? make optional? isDateSelecting: boolean // rename to isMirrorDateSelecting? make optional? isSelected: boolean isPast: boolean isFuture: boolean isToday: boolean disableDragging?: boolean // defaults false disableResizing?: boolean // defaults false defaultTimeFormat: DateFormatter defaultDisplayEventTime?: boolean // default true defaultDisplayEventEnd?: boolean // default true } // should not be a purecomponent export class StandardEvent extends BaseComponent { render() { let { props, context } = this let { options } = context let { seg } = props let { ui } = seg.eventRange let timeFormat = options.eventTimeFormat || props.defaultTimeFormat let timeText = buildSegTimeText( seg, timeFormat, context, props.defaultDisplayEventTime, props.defaultDisplayEventEnd, ) return ( {(InnerContent, eventContentArg) => ( {Boolean(eventContentArg.isStartResizable) && (
)} {Boolean(eventContentArg.isEndResizable) && (
)} )} ) } } function renderInnerContent(innerProps: EventContentArg) { return (
{innerProps.timeText && (
{innerProps.timeText}
)}
{innerProps.event.title ||  }
) }