1
0

[Glitch] Rewrite actions/app.ts and reducers/missed_updates.ts with createAction

Port 0999cb4601 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
This commit is contained in:
fusagiko / takayamaki 2023-05-03 22:28:39 +09:00 committed by Claire
parent a33d6c946a
commit 3d9e35375c
4 changed files with 11 additions and 10 deletions

View File

@ -1,6 +0,0 @@
export const APP_LAYOUT_CHANGE = 'APP_LAYOUT_CHANGE';
export const changeLayout = layout => ({
type: APP_LAYOUT_CHANGE,
layout,
});

View File

@ -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');

View File

@ -378,7 +378,7 @@ class UI extends React.Component {
if (layout !== this.props.layout) { if (layout !== this.props.layout) {
this.handleLayoutChange.cancel(); this.handleLayoutChange.cancel();
this.props.dispatch(changeLayout(layout)); this.props.dispatch(changeLayout({ layout }));
} else { } else {
this.handleLayoutChange(); this.handleLayoutChange();
} }

View File

@ -1,5 +1,5 @@
import { STORE_HYDRATE } from 'flavours/glitch/actions/store'; 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 { Map as ImmutableMap } from 'immutable';
import { layoutFromWindow } from 'flavours/glitch/is_mobile'; 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')) return state.merge(action.state.get('meta'))
.set('permissions', action.state.getIn(['role', 'permissions'])) .set('permissions', action.state.getIn(['role', 'permissions']))
.set('layout', layoutFromWindow(action.state.getIn(['local_settings', 'layout']))); .set('layout', layoutFromWindow(action.state.getIn(['local_settings', 'layout'])));
case APP_LAYOUT_CHANGE: case changeLayout.type:
return state.set('layout', action.layout); return state.set('layout', action.payload.layout);
default: default:
return state; return state;
} }