Fix merge default columns (#3748)
mergeDeep also merges columns, but it should be replaced simply. So in the new function, first apply mergeDeep except columns, and set default columns if columns unset.gh/stable
parent
91c71471ab
commit
d8a0ee1956
|
@ -7,12 +7,6 @@ import uuid from '../uuid';
|
|||
const initialState = Immutable.Map({
|
||||
onboarded: false,
|
||||
|
||||
columns: Immutable.fromJS([
|
||||
{ id: 'COMPOSE', uuid: uuid(), params: {} },
|
||||
{ id: 'HOME', uuid: uuid(), params: {} },
|
||||
{ id: 'NOTIFICATIONS', uuid: uuid(), params: {} },
|
||||
]),
|
||||
|
||||
home: Immutable.Map({
|
||||
shows: Immutable.Map({
|
||||
reblog: true,
|
||||
|
@ -60,6 +54,19 @@ const initialState = Immutable.Map({
|
|||
}),
|
||||
});
|
||||
|
||||
const defaultColumns = Immutable.fromJS([
|
||||
{ id: 'COMPOSE', uuid: uuid(), params: {} },
|
||||
{ id: 'HOME', uuid: uuid(), params: {} },
|
||||
{ id: 'NOTIFICATIONS', uuid: uuid(), params: {} },
|
||||
]);
|
||||
|
||||
const hydrate = (settings) => {
|
||||
return initialState.withMutations((state) => {
|
||||
state.mergeDeep(settings);
|
||||
state.update('columns', defaultColumns, val => val);
|
||||
});
|
||||
};
|
||||
|
||||
const moveColumn = (state, uuid, direction) => {
|
||||
const columns = state.get('columns');
|
||||
const index = columns.findIndex(item => item.get('uuid') === uuid);
|
||||
|
@ -76,7 +83,7 @@ const moveColumn = (state, uuid, direction) => {
|
|||
export default function settings(state = initialState, action) {
|
||||
switch(action.type) {
|
||||
case STORE_HYDRATE:
|
||||
return state.mergeDeep(action.state.get('settings'));
|
||||
return hydrate(action.state.get('settings'));
|
||||
case SETTING_CHANGE:
|
||||
return state.setIn(action.key, action.value);
|
||||
case COLUMN_ADD:
|
||||
|
|
Reference in New Issue