diff --git a/internal_packages/composer-scheduler/lib/composer/new-event-preview.jsx b/internal_packages/composer-scheduler/lib/composer/new-event-preview.jsx
new file mode 100644
index 000000000..437dc45a3
--- /dev/null
+++ b/internal_packages/composer-scheduler/lib/composer/new-event-preview.jsx
@@ -0,0 +1,85 @@
+import moment from 'moment-timezone'
+import React from 'react'
+import {Utils, DateUtils} from 'nylas-exports'
+import b64Imgs from './email-b64-images'
+
+const TZ = moment.tz(Utils.timeZone).format("z");
+
+export default class NewEventPreview extends React.Component {
+ static propTypes = {
+ event: React.PropTypes.object,
+ }
+
+ static defaultProps = {
+ draft: {},
+ }
+
+ static displyName = "NewEventPreview";
+
+ _renderB64Img(name, styles = {}) {
+ let imgStyles = {
+ width: "16px",
+ height: "16px",
+ display: "inline-block",
+ marginRight: "10px",
+ backgroundRepeat: "no-repeat",
+ backgroundImage: `url('${b64Imgs[name]}')`,
+ }
+ imgStyles = Object.assign(imgStyles, styles);
+ return
+ }
+
+ _renderEventInfo() {
+ const styles = {
+ fontSize: "20px",
+ fontWeight: 400,
+ margin: "0 10px 15px 10px",
+ }
+ const noteStyles = {
+ marginTop: "12px",
+ paddingLeft: "40px",
+ }
+ return (
+
+
+ {this._renderB64Img("description", {verticalAlign: "middle"})}
+ {this.props.event.title}
+
+
+ {this._renderB64Img("time", {verticalAlign: "super"})}
+ {this._renderEventTime()}
+
+
You will receive a calendar invite for this event shortly.
+
+ )
+ }
+
+ _renderEventTime() {
+ const start = moment.unix(this.props.event._start)
+ const end = moment.unix(this.props.event._end).add(1, 'second')
+ const dayTxt = start.format(DateUtils.DATE_FORMAT_LLLL_NO_TIME)
+ const tz = ({TZ});
+ const styles = {
+ display: "inline-block",
+ }
+ return {dayTxt}
{`${start.format("LT")} – ${end.format("LT")}`} {tz}
+ }
+
+ _sEventPreviewWrap() {
+ return {
+ borderRadius: "4px",
+ border: "1px solid rgba(0,0,0,0.15)",
+ padding: "15px",
+ margin: "10px 0",
+ position: "relative",
+ }
+ }
+
+ render() {
+ return (
+
+ {this._renderEventInfo()}
+
+ )
+ }
+}
diff --git a/internal_packages/composer-scheduler/lib/composer/scheduler-composer-extension.es6 b/internal_packages/composer-scheduler/lib/composer/scheduler-composer-extension.es6
index 51c39e883..9a5ba1b9c 100644
--- a/internal_packages/composer-scheduler/lib/composer/scheduler-composer-extension.es6
+++ b/internal_packages/composer-scheduler/lib/composer/scheduler-composer-extension.es6
@@ -1,5 +1,6 @@
import React from 'react'
import {PLUGIN_ID} from '../scheduler-constants'
+import NewEventPreview from './new-event-preview'
import ProposedTimeList from './proposed-time-list'
import {Event, Actions, RegExpUtils, ComposerExtension} from 'nylas-exports'
@@ -82,7 +83,7 @@ export default class SchedulerComposerExtension extends ComposerExtension {
static _insertProposalsIntoBody(draft, metadata) {
const nextDraft = draft;
- if (metadata && metadata.proposals) {
+ if (metadata.proposals && metadata.proposals.length > 0) {
const el = React.createElement(ProposedTimeList,
{
draft: nextDraft,
@@ -93,6 +94,14 @@ export default class SchedulerComposerExtension extends ComposerExtension {
const markup = React.renderToStaticMarkup(el);
const nextBody = SchedulerComposerExtension._insertInBody(nextDraft.body, markup)
nextDraft.body = nextBody;
+ } else {
+ const el = React.createElement(NewEventPreview,
+ {
+ event: metadata.pendingEvent,
+ });
+ const markup = React.renderToStaticMarkup(el);
+ const nextBody = SchedulerComposerExtension._insertInBody(nextDraft.body, markup)
+ nextDraft.body = nextBody;
}
return nextDraft
}
diff --git a/src/date-utils.es6 b/src/date-utils.es6
index fb22a26bb..da0628ed1 100644
--- a/src/date-utils.es6
+++ b/src/date-utils.es6
@@ -84,6 +84,8 @@ const DateUtils = {
DATE_FORMAT_llll_NO_TIME: moment.localeData().longDateFormat("llll").replace(/h:mm/, "").replace(" A", ""),
+ DATE_FORMAT_LLLL_NO_TIME: moment.localeData().longDateFormat("LLLL").replace(/h:mm/, "").replace(" A", ""),
+
format(momentDate, formatString) {
if (!momentDate) return null;
return momentDate.format(formatString);