forked from fedi/mastodon
Switch to compose view when tapping 'mention' in dropdown on mobile
This commit is contained in:
parent
69643338f6
commit
d64c454cfe
|
@ -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 () {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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 () {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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}
|
||||
|
|
5
app/assets/javascripts/components/is_mobile.jsx
Normal file
5
app/assets/javascripts/components/is_mobile.jsx
Normal file
|
@ -0,0 +1,5 @@
|
|||
const LAYOUT_BREAKPOINT = 1024;
|
||||
|
||||
export function isMobile(width) {
|
||||
return width <= LAYOUT_BREAKPOINT;
|
||||
};
|
Loading…
Reference in a new issue