diff --git a/app/soapbox/features/compose/components/schedule_form.js b/app/soapbox/features/compose/components/schedule_form.js index ad444ec95..2228946eb 100644 --- a/app/soapbox/features/compose/components/schedule_form.js +++ b/app/soapbox/features/compose/components/schedule_form.js @@ -3,20 +3,30 @@ import React from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; -import { defineMessages, injectIntl } from 'react-intl'; +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import DatePicker from 'react-datepicker'; import 'react-datepicker/dist/react-datepicker.css'; +import IconButton from 'soapbox/components/icon_button'; +import { removeSchedule } from 'soapbox/actions/compose'; const messages = defineMessages({ schedule: { id: 'schedule.post_time', defaultMessage: 'Post Date/Time' }, + remove: { id: 'schedule.remove', defaultMessage: 'Remove schedule' }, }); +const mapStateToProps = (state, ownProps) => ({ + schedule: state.getIn(['compose', 'schedule']), +}); + +export default @connect(mapStateToProps) +@injectIntl class ScheduleForm extends React.Component { static propTypes = { schedule: PropTypes.instanceOf(Date), intl: PropTypes.object.isRequired, onSchedule: PropTypes.func.isRequired, + dispatch: PropTypes.func, active: PropTypes.bool, }; @@ -54,33 +64,43 @@ class ScheduleForm extends React.Component { return fiveMinutesFromNow.getTime() < selectedDate.getTime(); }; + handleRemove = e => { + this.props.dispatch(removeSchedule()); + e.preventDefault(); + } + render() { if (!this.props.active || !this.state) { return null; } + const { intl } = this.props; const { schedule } = this.state; return ( - +
+
+ +
+
+ +
+ +
+
+
); } } - -const mapStateToProps = (state, ownProps) => ({ - schedule: state.getIn(['compose', 'schedule']), -}); - -export default injectIntl(connect(mapStateToProps)(ScheduleForm)); diff --git a/app/soapbox/features/compose/containers/schedule_button_container.js b/app/soapbox/features/compose/containers/schedule_button_container.js index 472155284..61c4ca99f 100644 --- a/app/soapbox/features/compose/containers/schedule_button_container.js +++ b/app/soapbox/features/compose/containers/schedule_button_container.js @@ -9,7 +9,7 @@ const mapStateToProps = state => ({ const mapDispatchToProps = dispatch => ({ onClick() { - dispatch((_, getState) => { + dispatch((dispatch, getState) => { if (getState().getIn(['compose', 'schedule'])) { dispatch(removeSchedule()); } else { diff --git a/app/soapbox/features/scheduled_statuses/index.js b/app/soapbox/features/scheduled_statuses/index.js index a14022711..ea6816057 100644 --- a/app/soapbox/features/scheduled_statuses/index.js +++ b/app/soapbox/features/scheduled_statuses/index.js @@ -51,7 +51,7 @@ class ScheduledStatuses extends ImmutablePureComponent { const emptyMessage = ; return ( - +