import * as React from 'react'; import { schedule, editor, config } from './models'; interface ScheduleRowProps { config: config, schedule: schedule, editor: editor, window: any } interface ScheduleRowState { hoverId: string } export default class ScheduleRow extends React.Component { constructor(props) { super(props); this.state = { hoverId: null } } setItemHover(id) { this.setState({ hoverId: id }); } openScheduleOnWhenHub(scheduleId: string) { window.open(`${this.props.config.site}studio#/apps/schedules/${scheduleId}/events`, 'Studio'); } addSchedule(schedule) { let shortcode = `[whenhub schedule-id="${schedule.id}" `; if (schedule.scope === 'private') { shortcode += `view-code="${schedule.viewCode}"]`; } else { shortcode += ']' } this.props.editor.execCommand("mceInsertContent", false, shortcode); this.props.editor.windowManager.close(this.props.window); } render() { let availableMedia = this.props.schedule.media ? this.props.schedule.media.filter(x => x.type === 'image') : null; let media; if (availableMedia && availableMedia.length > 0) { media = } else { let imgUrl = this.props.config.cdn + 'img/logo/favicon/favicon-32x32.png'; media = } return
  • {media}
    {this.props.schedule.name} { this.state.hoverId === this.props.schedule.id ? (( click to insert )) : null } {/*
    */}
  • } }