All files / src/redux/slices merchantPreview.ts

62.5% Statements 5/8
100% Branches 0/0
25% Functions 1/4
62.5% Lines 5/8

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                            540x                           540x                                                       540x   540x 12x      
import { SECTIONS } from "@components/Merchants/MerchantPreview/SECTIONS";
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
 
export interface MerchantPreviewState {
  sectionFocus: {
    section: SECTIONS | "";
    field?: string;
  };
  openingOptions: {
    underwriter?: boolean;
    riskprofile?: boolean;
  };
}
 
const initialState: MerchantPreviewState = {
  sectionFocus: {
    section: "",
    field: "",
  },
  openingOptions: {
    underwriter: false,
    riskprofile: false,
  },
};
 
interface RootState {
  merchantPreview: MerchantPreviewState;
}
const merchantPreviewSlice = createSlice({
  name: "merchantPreview",
  initialState,
  reducers: {
    setMerchantSectionFocus: (
      state: MerchantPreviewState,
      action: PayloadAction<MerchantPreviewState["sectionFocus"]>,
    ) => {
      state.sectionFocus = { ...state.sectionFocus, ...action.payload };
    },
 
    resetMerchantSectionFocus: (state: MerchantPreviewState) => {
      state.sectionFocus = initialState.sectionFocus;
    },
 
    setOpeningOptions: (
      state: MerchantPreviewState,
      action: PayloadAction<MerchantPreviewState["openingOptions"]>,
    ) => {
      state.openingOptions = { ...state.openingOptions, ...action.payload };
    },
  },
});
 
export const {
  setMerchantSectionFocus,
  resetMerchantSectionFocus,
  setOpeningOptions,
} = merchantPreviewSlice.actions;
 
export const selectMerchantPreview = (state: RootState) =>
  state.merchantPreview;
 
export default merchantPreviewSlice.reducer;