All files / src/redux/slices/enterprise enterpriseSettings.tsx

72.72% Statements 8/11
100% Branches 0/0
40% Functions 2/5
72.72% Lines 8/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76                541x                             541x                   541x                                                                 541x   541x 40x   541x 9763x      
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { EnterpriseConfiguration } from "@components/AcquirerEnterprises/CreateEnterprise/types";
import { EnterpriseSettingsState } from "./types";
 
interface AppState {
  enterpriseSettings: EnterpriseSettingsState;
}
 
const defaultConfiguration = {
  modify_merchant: false,
  merchant_underwriting: false,
  merchant_underwriting_statuses: false,
  agreement_signing: false,
  control_mode: false,
  b_profile_linking: false,
  bank_account_linking: false,
  manage_bank_account: false,
  money_transfers: false,
  risk_monitoring: false,
  merchant_triggers: false,
  risk_activity: false,
};
 
const initialState: EnterpriseSettingsState = {
  theme: {
    logos: {
      smallLogoSrc: "",
      wideLogoSrc: "",
    },
  },
  configuration: defaultConfiguration,
};
 
const enterpriseSettingsSlice = createSlice({
  name: "enterpriseSettings",
  initialState,
  reducers: {
    updateTheme: (
      state: EnterpriseSettingsState,
      action: PayloadAction<
        Partial<{ smallLogoSrc: string; wideLogoSrc: string }>
      >,
    ) => {
      state.theme.logos = {
        ...state.theme.logos,
        ...action.payload,
      };
    },
 
    updateEnterpriseConfiguration: (
      state: EnterpriseSettingsState,
      action: PayloadAction<EnterpriseConfiguration>,
    ) => {
      state.configuration = action.payload;
    },
 
    resetConfigurationToDefault: (state: EnterpriseSettingsState) => {
      state.configuration = defaultConfiguration;
    },
  },
});
 
export const {
  updateTheme,
  updateEnterpriseConfiguration,
  resetConfigurationToDefault,
} = enterpriseSettingsSlice.actions;
 
export const selectThemeLogos = (state: AppState) =>
  state.enterpriseSettings.theme.logos;
 
export const selectEnterpriseConfiguration = (state: AppState) =>
  state.enterpriseSettings.configuration;
 
export default enterpriseSettingsSlice.reducer;