Skip to content
Extraits de code Groupes Projets
Valider 05001d54 rédigé par Eugen Rochko's avatar Eugen Rochko
Parcourir les fichiers

Make compose form also use normalized data

parent 926eea89
Branches
Étiquettes
Aucune requête de fusion associée trouvée
...@@ -15,10 +15,10 @@ export function changeCompose(text) { ...@@ -15,10 +15,10 @@ export function changeCompose(text) {
}; };
} }
export function replyCompose(payload) { export function replyCompose(status) {
return { return {
type: COMPOSE_REPLY, type: COMPOSE_REPLY,
payload: payload status: status
}; };
} }
......
...@@ -2,11 +2,24 @@ import { connect } from 'react-redux'; ...@@ -2,11 +2,24 @@ import { connect } from 'react-redux';
import ComposeForm from '../components/compose_form'; import ComposeForm from '../components/compose_form';
import { changeCompose, submitCompose, cancelReplyCompose } from '../actions/compose'; 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) { const mapStateToProps = function (state, props) {
return { return {
text: state.getIn(['compose', 'text']), text: state.getIn(['compose', 'text']),
is_submitting: state.getIn(['compose', 'is_submitting']), 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 * as constants from '../actions/compose';
import Immutable from 'immutable'; import { TIMELINE_DELETE } from '../actions/timelines';
import Immutable from 'immutable';
const initialState = Immutable.Map({ const initialState = Immutable.Map({
text: '', text: '',
...@@ -13,7 +14,8 @@ export default function compose(state = initialState, action) { ...@@ -13,7 +14,8 @@ export default function compose(state = initialState, action) {
return state.set('text', action.text); return state.set('text', action.text);
case constants.COMPOSE_REPLY: case constants.COMPOSE_REPLY:
return state.withMutations(map => { 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: case constants.COMPOSE_REPLY_CANCEL:
return state.withMutations(map => { return state.withMutations(map => {
...@@ -27,6 +29,12 @@ export default function compose(state = initialState, action) { ...@@ -27,6 +29,12 @@ export default function compose(state = initialState, action) {
}); });
case constants.COMPOSE_SUBMIT_FAIL: case constants.COMPOSE_SUBMIT_FAIL:
return state.set('is_submitting', false); 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: default:
return state; return state;
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter