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.
This commit is contained in:
parent
c883e96d95
commit
167ba4c5f7
1 changed files with 14 additions and 7 deletions
|
@ -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:
|
||||
|
|
Loading…
Reference in a new issue