import AddressBookOverlayReducer from "@insite/client-framework/Store/Components/AddressBookOverlay/AddressBookOverlayReducer";
import AddressDrawerReducer from "@insite/client-framework/Store/Components/AddressDrawer/AddressDrawerReducer";
import AddressErrorModalReducer from "@insite/client-framework/Store/Components/AddressErrorModal/AddressErrorModalReducer";
import AddToListModalReducer from "@insite/client-framework/Store/Components/AddToListModal/AddToListModalReducer";
import BreadcrumbsReducer from "@insite/client-framework/Store/Components/Breadcrumbs/BreadcrumbsReducer";
import CompareProductsDrawerReducer from "@insite/client-framework/Store/Components/CompareProductsDrawer/CompareProductsDrawerReducer";
import ContactUsFormReducer from "@insite/client-framework/Store/Components/ContactUsForm/ContactUsFormReducer";
import FindLocationModalReducer from "@insite/client-framework/Store/Components/FindLocationModal/FindLocationModalReducer";
import ManageShareListModalReducer from "@insite/client-framework/Store/Components/ManageShareListModal/ManageShareListModalReducer";
import OrderUploadReducer from "@insite/client-framework/Store/Components/OrderUpload/OrderUploadReducer";
import ProductDeliveryScheduleReducer from "@insite/client-framework/Store/Components/ProductDeliverySchedule/ProductDeliveryScheduleReducer";
import ProductInfoListsReducer from "@insite/client-framework/Store/Components/ProductInfoList/ProductInfoListsReducer";
import ProductRecommendationsReducer from "@insite/client-framework/Store/Components/ProductRecommendations/ProductRecommendationsReducer";
import ProductSelectorReducer from "@insite/client-framework/Store/Components/ProductSelector/ProductSelectorReducer";
import ReCaptchaReducer from "@insite/client-framework/Store/Components/ReCaptcha/ReCaptchaReducer";
import ShareListDetailModalReducer from "@insite/client-framework/Store/Components/ShareListDetailModal/ShareListDetailModalReducer";
import ShareListModalReducer from "@insite/client-framework/Store/Components/ShareListModal/ShareListModalReducer";
import SignInOverlayReducer from "@insite/client-framework/Store/Components/SignInOverlay/SignInOverlayReducer";
import StorePickupOverlayReducer from "@insite/client-framework/Store/Components/StorePickupOverlay/StorePickupOverlayReducer";
import VmiBinsImportModalReducer from "@insite/client-framework/Store/Components/VmiBinsImportModal/VmiBinsImportModalReducer";
import VmiCountsImportModalReducer from "@insite/client-framework/Store/Components/VmiCountsImportModal/VmiCountsImportModalReducer";
import VmiLocationsImportModalReducer from "@insite/client-framework/Store/Components/VmiLocationsImportModal/VmiLocationsImportModalReducer";
import VmiUsersImportModalReducer from "@insite/client-framework/Store/Components/VmiUsersImportModal/VmiUsersImportModalReducer";
import { combineReducers } from "redux";

const reducers = {
    addressBookOverlay: AddressBookOverlayReducer,
    addressDrawer: AddressDrawerReducer,
    addToListModal: AddToListModalReducer,
    breadcrumbs: BreadcrumbsReducer,
    compareProductsDrawer: CompareProductsDrawerReducer,
    contactUsForm: ContactUsFormReducer,
    findLocationModal: FindLocationModalReducer,
    manageShareListModal: ManageShareListModalReducer,
    orderUpload: OrderUploadReducer,
    productDeliverySchedule: ProductDeliveryScheduleReducer,
    productInfoLists: ProductInfoListsReducer,
    productRecommendations: ProductRecommendationsReducer,
    productSelector: ProductSelectorReducer,
    reCaptcha: ReCaptchaReducer,
    shareListDetailModal: ShareListDetailModalReducer,
    shareListModal: ShareListModalReducer,
    signInOverlay: SignInOverlayReducer,
    storePickupOverlay: StorePickupOverlayReducer,
    addressErrorModal: AddressErrorModalReducer,
    vmiBinsImportModal: VmiBinsImportModalReducer,
    vmiCountsImportModal: VmiCountsImportModalReducer,
    vmiLocationsImportModal: VmiLocationsImportModalReducer,
    vmiUsersImportModal: VmiUsersImportModalReducer,
};

export type ComponentsReducers = Readonly<typeof reducers>;

const componentsReducer = combineReducers(reducers as any);

export default componentsReducer;
