Skip to content
Snippets Groups Projects
Commit 05001d54 authored by Eugen Rochko's avatar Eugen Rochko
Browse files

Make compose form also use normalized data

parent 926eea89
No related branches found
No related tags found
No related merge requests found
......@@ -15,10 +15,10 @@ export function changeCompose(text) {
};
}
export function replyCompose(payload) {
export function replyCompose(status) {
return {
type: COMPOSE_REPLY,
payload: payload
status: status
};
}
......
......@@ -2,11 +2,24 @@ import { connect } from 'react-redux';
import ComposeForm from '../components/compose_form';
import { changeCompose, submitCompose, cancelReplyCompose } from '../actions/compose';
function selectStatus(state) {
let statusId = state.getIn(['compose', 'in_reply_to'], null);
if (statusId === null) {
return null;
}
let status = state.getIn(['timelines', 'statuses', statusId]);
status = status.set('account', state.getIn(['timelines', 'accounts', status.get('account')]));
return status;
};
const mapStateToProps = function (state, props) {
return {
text: state.getIn(['compose', 'text']),
is_submitting: state.getIn(['compose', 'is_submitting']),
in_reply_to: state.getIn(['compose', 'in_reply_to'])
in_reply_to: selectStatus(state)
};
};
......
import * as constants from '../actions/compose';
import Immutable from 'immutable';
import * as constants from '../actions/compose';
import { TIMELINE_DELETE } from '../actions/timelines';
import Immutable from 'immutable';
const initialState = Immutable.Map({
text: '',
......@@ -13,7 +14,8 @@ export default function compose(state = initialState, action) {
return state.set('text', action.text);
case constants.COMPOSE_REPLY:
return state.withMutations(map => {
map.set('in_reply_to', action.payload).set('text', `@${action.payload.getIn(['account', 'acct'])} `);
map.set('in_reply_to', action.status.get('id'));
map.set('text', `@${action.status.getIn(['account', 'acct'])} `);
});
case constants.COMPOSE_REPLY_CANCEL:
return state.withMutations(map => {
......@@ -27,6 +29,12 @@ export default function compose(state = initialState, action) {
});
case constants.COMPOSE_SUBMIT_FAIL:
return state.set('is_submitting', false);
case TIMELINE_DELETE:
if (action.id === state.get('in_reply_to')) {
return state.set('in_reply_to', null);
} else {
return state;
}
default:
return state;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment