mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-09-22 08:16:09 +08:00
fix(scheduler): can remove proposed times
This commit is contained in:
parent
3fa0ce249f
commit
f1a8b6929f
|
@ -8,13 +8,25 @@ import {CALENDAR_ID} from '../scheduler-constants'
|
||||||
export default class ProposedTimeEvent extends React.Component {
|
export default class ProposedTimeEvent extends React.Component {
|
||||||
static displayName = "ProposedTimeEvent";
|
static displayName = "ProposedTimeEvent";
|
||||||
|
|
||||||
|
// Since ProposedTimeEvent is part of an Injected Component set, by
|
||||||
|
// default it's placed in its own container that's rendered separately.
|
||||||
|
//
|
||||||
|
// This makes two separate React trees which cause the react event
|
||||||
|
// propagations to be separate. See:
|
||||||
|
// https://github.com/facebook/react/issues/1691
|
||||||
|
//
|
||||||
|
// Unfortunately, this means that `stopPropagation` doesn't work from
|
||||||
|
// within injected component sets unless the `containerRequired` is set
|
||||||
|
// to `false`
|
||||||
|
static containerRequired = false;
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
event: React.PropTypes.object,
|
event: React.PropTypes.object,
|
||||||
}
|
}
|
||||||
|
|
||||||
_onMouseDown(event) {
|
_onMouseDown(event) {
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
SchedulerActions.removeProposedTime(event.target.dataset)
|
SchedulerActions.removeProposedTime(event.target.dataset);
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
|
|
@ -86,7 +86,7 @@ export default class ProposedTimePicker extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
_onChangeDuration = (event) => {
|
_onChangeDuration = (event) => {
|
||||||
SchedulerActions.changeDuration(event.target.value.split(","))
|
SchedulerActions.changeDuration(event.target.value.split("|"))
|
||||||
}
|
}
|
||||||
|
|
||||||
_onDone = () => {
|
_onDone = () => {
|
||||||
|
|
|
@ -17,9 +17,7 @@ require('moment-round')
|
||||||
*/
|
*/
|
||||||
class ProposedTimeCalendarStore extends NylasStore {
|
class ProposedTimeCalendarStore extends NylasStore {
|
||||||
DURATIONS = [
|
DURATIONS = [
|
||||||
[15, 'minutes', '15 min'],
|
|
||||||
[30, 'minutes', '30 min'],
|
[30, 'minutes', '30 min'],
|
||||||
[50, 'minutes', '50 min'],
|
|
||||||
[1, 'hour', '1 hr'],
|
[1, 'hour', '1 hr'],
|
||||||
[1.5, 'hours', '1½ hr'],
|
[1.5, 'hours', '1½ hr'],
|
||||||
[2, 'hours', '2 hr'],
|
[2, 'hours', '2 hr'],
|
||||||
|
@ -30,8 +28,7 @@ class ProposedTimeCalendarStore extends NylasStore {
|
||||||
activate() {
|
activate() {
|
||||||
this._proposedTimes = []
|
this._proposedTimes = []
|
||||||
this._pendingSave = false;
|
this._pendingSave = false;
|
||||||
// this.triggerLater = _.throttle(this.trigger, 32)
|
this._duration = this.DURATIONS[1] // 1 hr
|
||||||
this._duration = this.DURATIONS[3] // 1 hr
|
|
||||||
this.unsubscribers = [
|
this.unsubscribers = [
|
||||||
SchedulerActions.changeDuration.listen(this._onChangeDuration),
|
SchedulerActions.changeDuration.listen(this._onChangeDuration),
|
||||||
SchedulerActions.addProposedTime.listen(this._onAddProposedTime),
|
SchedulerActions.addProposedTime.listen(this._onAddProposedTime),
|
||||||
|
@ -88,8 +85,10 @@ class ProposedTimeCalendarStore extends NylasStore {
|
||||||
}
|
}
|
||||||
|
|
||||||
_onRemoveProposedTime = ({start, end}) => {
|
_onRemoveProposedTime = ({start, end}) => {
|
||||||
|
const startInt = parseInt(start, 10);
|
||||||
|
const endInt = parseInt(end, 10);
|
||||||
this._proposedTimes = _.filter(this._proposedTimes, (p) =>
|
this._proposedTimes = _.filter(this._proposedTimes, (p) =>
|
||||||
p.unix() < start || p.unix() > end
|
p.unix() < startInt || p.unix() > endInt
|
||||||
)
|
)
|
||||||
this.trigger()
|
this.trigger()
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,9 @@ export default class CalendarEventContainer extends React.Component {
|
||||||
|
|
||||||
_onCalendarMouseUp = (event) => {
|
_onCalendarMouseUp = (event) => {
|
||||||
this._DOMCache = {};
|
this._DOMCache = {};
|
||||||
|
if (!this._mouseIsDown) {
|
||||||
|
return
|
||||||
|
}
|
||||||
this._mouseIsDown = false;
|
this._mouseIsDown = false;
|
||||||
this._runPropsHandler("onCalendarMouseUp", event)
|
this._runPropsHandler("onCalendarMouseUp", event)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue