diff --git a/app/internal_packages/main-calendar/lib/core/calendar-constants.ts b/app/internal_packages/main-calendar/lib/core/calendar-constants.ts
index 91e66815e..01427ec41 100644
--- a/app/internal_packages/main-calendar/lib/core/calendar-constants.ts
+++ b/app/internal_packages/main-calendar/lib/core/calendar-constants.ts
@@ -1,5 +1,5 @@
export enum CalendarView {
- DAY = 'day',
- WEEK = 'week',
- MONTH = 'month',
+ DAY = 'Day',
+ WEEK = 'Week',
+ MONTH = 'Month',
}
diff --git a/app/internal_packages/main-calendar/lib/core/header-controls.tsx b/app/internal_packages/main-calendar/lib/core/header-controls.tsx
index 8e87c20bd..342b76ca8 100644
--- a/app/internal_packages/main-calendar/lib/core/header-controls.tsx
+++ b/app/internal_packages/main-calendar/lib/core/header-controls.tsx
@@ -1,11 +1,14 @@
import React from 'react';
import { Utils } from 'mailspring-exports';
import { RetinaImg } from 'mailspring-component-kit';
+import { CalendarView } from './calendar-constants';
export class HeaderControls extends React.Component<{
title: string;
nextAction: () => void;
prevAction: () => void;
+ onChangeView: (view: CalendarView) => void;
+ disabledViewButton: string;
}> {
static displayName = 'HeaderControls';
@@ -35,6 +38,10 @@ export class HeaderControls extends React.Component<{
);
}
+ _changeView = newView => {
+ this.props.onChangeView(newView);
+ };
+
render() {
return (
@@ -43,6 +50,28 @@ export class HeaderControls extends React.Component<{
{this.props.title}
{this._renderNextAction()}
+
+ {[
+ //{view: CalendarView.DAY, isDisabled: CalendarView.DAY === this.props.disabledViewButton,},
+ {
+ view: CalendarView.WEEK,
+ isDisabled: CalendarView.WEEK === this.props.disabledViewButton,
+ },
+ {
+ view: CalendarView.MONTH,
+ isDisabled: CalendarView.MONTH === this.props.disabledViewButton,
+ },
+ ].map(buttonOptions => (
+
+ ))}
+
{this.props.children}
);
diff --git a/app/internal_packages/main-calendar/lib/core/mailspring-calendar.tsx b/app/internal_packages/main-calendar/lib/core/mailspring-calendar.tsx
index 31b344e41..19b7c670d 100644
--- a/app/internal_packages/main-calendar/lib/core/mailspring-calendar.tsx
+++ b/app/internal_packages/main-calendar/lib/core/mailspring-calendar.tsx
@@ -26,7 +26,6 @@ import { Disposable } from 'rx-core';
import { CalendarEventArgs } from './calendar-event-container';
import { CalendarEventPopover } from './calendar-event-popover';
-
const DISABLED_CALENDARS = 'mailspring.disabledCalendars';
const VIEWS = {
@@ -56,7 +55,7 @@ export interface MailspringCalendarViewProps extends EventRendererProps {
/*
* Mailspring Calendar
*/
-interface MailspringCalendarProps { }
+interface MailspringCalendarProps {}
interface MailspringCalendarState {
view: CalendarView;
@@ -197,9 +196,9 @@ export class MailspringCalendar extends React.Component<
}
};
- _onCalendarMouseDown = () => { };
- _onCalendarMouseMove = () => { };
- _onCalendarMouseUp = () => { };
+ _onCalendarMouseDown = () => {};
+ _onCalendarMouseMove = () => {};
+ _onCalendarMouseUp = () => {};
render() {
const CurrentView = VIEWS[this.state.view];
diff --git a/app/internal_packages/main-calendar/lib/core/month-view.tsx b/app/internal_packages/main-calendar/lib/core/month-view.tsx
index d63554e7a..94033b295 100644
--- a/app/internal_packages/main-calendar/lib/core/month-view.tsx
+++ b/app/internal_packages/main-calendar/lib/core/month-view.tsx
@@ -1,6 +1,9 @@
import React from 'react';
import { MailspringCalendarViewProps } from './mailspring-calendar';
+import { CalendarEventContainer } from './calendar-event-container';
+import { ScrollRegion, InjectedComponentSet } from 'mailspring-component-kit';
import { CalendarView } from './calendar-constants';
+import { HeaderControls } from './header-controls';
export class MonthView extends React.Component {
static displayName = 'MonthView';
@@ -10,6 +13,35 @@ export class MonthView extends React.Component {
};
render() {
- return ;
+ return (
+
+
+
+
+
+
+ console.log('Next Month')}
+ prevAction={() => console.log('Previous Month')}
+ onChangeView={this.props.onChangeView}
+ disabledViewButton={CalendarView.MONTH}
+ >
+
+
+
+
+ );
}
}
diff --git a/app/internal_packages/main-calendar/lib/core/week-view.tsx b/app/internal_packages/main-calendar/lib/core/week-view.tsx
index fe3efd0ef..a12173f4a 100644
--- a/app/internal_packages/main-calendar/lib/core/week-view.tsx
+++ b/app/internal_packages/main-calendar/lib/core/week-view.tsx
@@ -12,6 +12,7 @@ import { WeekViewAllDayEvents } from './week-view-all-day-events';
import { CalendarEventContainer } from './calendar-event-container';
import { CurrentTimeIndicator } from './current-time-indicator';
import { Disposable } from 'rx-core';
+import { CalendarView } from './calendar-constants';
import {
overlapForEvents,
maxConcurrentEvents,
@@ -264,6 +265,8 @@ export class WeekView extends React.Component<
title={headerText}
nextAction={this._onClickNextWeek}
prevAction={this._onClickPrevWeek}
+ onChangeView={this.props.onChangeView}
+ disabledViewButton={CalendarView.WEEK}
>