Files
ncd-fe/packages/pl-fe/src/reducers/security.ts
mkljczk 9188fcad95 pl-fe: migrate tokens list
Signed-off-by: mkljczk <git@mkljczk.pl>
2025-03-15 12:30:15 +01:00

50 lines
1.1 KiB
TypeScript

import { create } from 'mutative';
import {
MFA_FETCH_SUCCESS,
MFA_CONFIRM_SUCCESS,
MFA_DISABLE_SUCCESS,
type MfaAction,
} from '../actions/mfa';
interface State {
mfa: {
settings: Record<string, boolean>;
};
}
const initialState: State = {
mfa: {
settings: {
totp: false,
},
},
};
const importMfa = (state: State, data: any) => state.mfa = data;
const enableMfa = (state: State, method: string) => state.mfa.settings = { ...state.mfa.settings, [method]: true };
const disableMfa = (state: State, method: string) => state.mfa.settings = { ...state.mfa.settings, [method]: false };
const security = (state = initialState, action: MfaAction) => {
switch (action.type) {
case MFA_FETCH_SUCCESS:
return create(state, (draft) => {
importMfa(draft, action.data);
});
case MFA_CONFIRM_SUCCESS:
return create(state, (draft) => {
enableMfa(draft, action.method);
});
case MFA_DISABLE_SUCCESS:
return create(state, (draft) => {
disableMfa(draft, action.method);
});
default:
return state;
}
};
export { security as default };