Move left pane entirely to React

This commit is contained in:
Scott Nonnenberg 2019-01-14 13:49:58 -08:00
parent bf904ddd12
commit b3ac1373fa
142 changed files with 5016 additions and 3428 deletions

67
ts/state/ducks/user.ts Normal file
View file

@ -0,0 +1,67 @@
import { LocalizerType } from '../../types/Util';
// State
export type UserStateType = {
ourNumber: string;
regionCode: string;
i18n: LocalizerType;
};
// Actions
type UserChangedActionType = {
type: 'USER_CHANGED';
payload: {
ourNumber: string;
regionCode: string;
};
};
export type UserActionType = UserChangedActionType;
// Action Creators
export const actions = {
userChanged,
};
function userChanged(attributes: {
ourNumber: string;
regionCode: string;
}): UserChangedActionType {
return {
type: 'USER_CHANGED',
payload: attributes,
};
}
// Reducer
function getEmptyState(): UserStateType {
return {
ourNumber: 'missing',
regionCode: 'missing',
i18n: () => 'missing',
};
}
export function reducer(
state: UserStateType,
action: UserActionType
): UserStateType {
if (!state) {
return getEmptyState();
}
if (action.type === 'USER_CHANGED') {
const { payload } = action;
return {
...state,
...payload,
};
}
return state;
}