D app/javascript/flavours/glitch/actions/app.js => app/javascript/flavours/glitch/actions/app.js +0 -6
@@ 1,6 0,0 @@
-export const APP_LAYOUT_CHANGE = 'APP_LAYOUT_CHANGE';
-
-export const changeLayout = layout => ({
- type: APP_LAYOUT_CHANGE,
- layout,
-});
A app/javascript/flavours/glitch/actions/app.ts => app/javascript/flavours/glitch/actions/app.ts +7 -0
@@ 0,0 1,7 @@
+import { createAction } from '@reduxjs/toolkit';
+
+type ChangeLayoutPayload = {
+ layout: 'mobile' | 'single-column' | 'multi-column';
+};
+export const changeLayout =
+ createAction<ChangeLayoutPayload>('APP_LAYOUT_CHANGE');
M app/javascript/flavours/glitch/features/ui/index.jsx => app/javascript/flavours/glitch/features/ui/index.jsx +1 -1
@@ 378,7 378,7 @@ class UI extends React.Component {
if (layout !== this.props.layout) {
this.handleLayoutChange.cancel();
- this.props.dispatch(changeLayout(layout));
+ this.props.dispatch(changeLayout({ layout }));
} else {
this.handleLayoutChange();
}
M app/javascript/flavours/glitch/reducers/meta.js => app/javascript/flavours/glitch/reducers/meta.js +3 -3
@@ 1,5 1,5 @@
import { STORE_HYDRATE } from 'flavours/glitch/actions/store';
-import { APP_LAYOUT_CHANGE } from 'flavours/glitch/actions/app';
+import { changeLayout } from 'flavours/glitch/actions/app';
import { Map as ImmutableMap } from 'immutable';
import { layoutFromWindow } from 'flavours/glitch/is_mobile';
@@ 16,8 16,8 @@ export default function meta(state = initialState, action) {
return state.merge(action.state.get('meta'))
.set('permissions', action.state.getIn(['role', 'permissions']))
.set('layout', layoutFromWindow(action.state.getIn(['local_settings', 'layout'])));
- case APP_LAYOUT_CHANGE:
- return state.set('layout', action.layout);
+ case changeLayout.type:
+ return state.set('layout', action.payload.layout);
default:
return state;
}