commit: d6a456dc714337a696e206c31d182630a94f89cd
parent: 75f80bef107cfe9e9c0e6ba3dc51ef86c89e40cc
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Mon, 9 Jan 2017 14:12:00 +0100
Merge branch 'blackle-dropdown'
Diffstat:
6 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/app/assets/javascripts/components/components/status_action_bar.jsx b/app/assets/javascripts/components/components/status_action_bar.jsx
@@ -49,7 +49,7 @@ const StatusActionBar = React.createClass({
},
handleMentionClick () {
- this.props.onMention(this.props.status.get('account'));
+ this.props.onMention(this.props.status.get('account'), this.context.router);
},
handleBlockClick () {
diff --git a/app/assets/javascripts/components/containers/status_container.jsx b/app/assets/javascripts/components/containers/status_container.jsx
@@ -15,6 +15,7 @@ import { blockAccount } from '../actions/accounts';
import { deleteStatus } from '../actions/statuses';
import { openMedia } from '../actions/modal';
import { createSelector } from 'reselect'
+import { isMobile } from '../is_mobile'
const mapStateToProps = (state, props) => ({
statusBase: state.getIn(['statuses', props.id]),
@@ -86,8 +87,11 @@ const mapDispatchToProps = (dispatch) => ({
dispatch(deleteStatus(status.get('id')));
},
- onMention (account) {
+ onMention (account, router) {
dispatch(mentionCompose(account));
+ if (isMobile(window.innerWidth)) {
+ router.push('/statuses/new');
+ }
},
onOpenMedia (url) {
diff --git a/app/assets/javascripts/components/features/account/index.jsx b/app/assets/javascripts/components/features/account/index.jsx
@@ -20,6 +20,7 @@ import LoadingIndicator from '../../components/loading_indicator';
import ActionBar from './components/action_bar';
import Column from '../ui/components/column';
import ColumnBackButton from '../../components/column_back_button';
+import { isMobile } from '../../is_mobile'
const makeMapStateToProps = () => {
const getAccount = makeGetAccount();
@@ -34,6 +35,10 @@ const makeMapStateToProps = () => {
const Account = React.createClass({
+ contextTypes: {
+ router: React.PropTypes.object
+ },
+
propTypes: {
params: React.PropTypes.object.isRequired,
dispatch: React.PropTypes.func.isRequired,
@@ -71,6 +76,9 @@ const Account = React.createClass({
handleMention () {
this.props.dispatch(mentionCompose(this.props.account));
+ if (isMobile(window.innerWidth)) {
+ this.context.router.push('/statuses/new');
+ }
},
render () {
diff --git a/app/assets/javascripts/components/features/status/index.jsx b/app/assets/javascripts/components/features/status/index.jsx
@@ -23,6 +23,7 @@ import { ScrollContainer } from 'react-router-scroll';
import ColumnBackButton from '../../components/column_back_button';
import StatusContainer from '../../containers/status_container';
import { openMedia } from '../../actions/modal';
+import { isMobile } from '../../is_mobile'
const makeMapStateToProps = () => {
const getStatus = makeGetStatus();
@@ -80,6 +81,9 @@ const Status = React.createClass({
handleMentionClick (account) {
this.props.dispatch(mentionCompose(account));
+ if (isMobile(window.innerWidth)) {
+ this.context.router.push('/statuses/new');
+ }
},
handleOpenMedia (url) {
diff --git a/app/assets/javascripts/components/features/ui/index.jsx b/app/assets/javascripts/components/features/ui/index.jsx
@@ -11,6 +11,7 @@ import Notifications from '../notifications';
import { debounce } from 'react-decoration';
import { uploadCompose } from '../../actions/compose';
import { connect } from 'react-redux';
+import { isMobile } from '../../is_mobile'
const UI = React.createClass({
@@ -64,11 +65,9 @@ const UI = React.createClass({
},
render () {
- const layoutBreakpoint = 1024;
-
let mountedColumns;
- if (this.state.width <= layoutBreakpoint) {
+ if (isMobile(this.state.width)) {
mountedColumns = (
<ColumnsArea>
{this.props.children}
diff --git a/app/assets/javascripts/components/is_mobile.jsx b/app/assets/javascripts/components/is_mobile.jsx
@@ -0,0 +1,5 @@
+const LAYOUT_BREAKPOINT = 1024;
+
+export function isMobile(width) {
+ return width <= LAYOUT_BREAKPOINT;
+};