/home/bdqbpbxa/demo-subdomains/ping-proxies.goodface.com.ua/src/store/slices/UI-Slice.js
import { createSelector, createSlice } from '@reduxjs/toolkit';
const uislice = createSlice({
name: 'uislice',
initialState: {
isCookieOpen: false,
isContactFormOpen: false,
firstLoading: true,
header: {
isMobileMenuOpen: false,
isHeaderBannerClosed: true,
isFirstHeaderBanner: true,
isScrolled: false,
activeNavigationIndex: null,
}
},
reducers: {
setMobileMenuOpen: (state, action) => {
state.header.isMobileMenuOpen = action.payload;
},
setHeaderScroll: (state, action) => {
state.header.isScrolled = action.payload;
},
setFirstLoading: (state, action) => {
state.firstLoading = action.payload;
},
setAgreeCookieOpen: (state, action) => {
state.isCookieOpen = action.payload;
},
setHeaderBanner: (state, action) => {
state.header.isHeaderBannerClosed = action.payload;
},
setFirstHeaderBanner: (state, action) => {
state.header.isFirstHeaderBanner = action.payload;
},
setActiveNavigationIndex: (state, action) => {
state.header.activeNavigationIndex = action.payload;
},
setContactFormOpenOpen: (state, action) => {
state.isContactFormOpen = action.payload;
},
},
});
export const selectHeaderOptions = createSelector(
[state => state.ui],
data => data.header,
);
export const selectActiveNavigationIndex = createSelector([selectHeaderOptions], data => data?.activeNavigationIndex);
export const selectisMobileMenuOpen = createSelector([selectHeaderOptions], data => data.isMobileMenuOpen);
export const selectIsHeaderBannerClosed = createSelector([selectHeaderOptions], data => data.isHeaderBannerClosed);
export const selectFirstHeaderBanner = createSelector([selectHeaderOptions], data => data.isFirstHeaderBanner);
export const selectIsScrolled = createSelector([selectHeaderOptions], data => data.isScrolled);
export const selectIsCookieAgree = createSelector([state => state.ui], data => data.isCookieAgree);
export const selectisCookieOpen = createSelector([state => state.ui], data => data.isCookieOpen);
export const selectFirstLoading = createSelector([state => state.ui], data => data.firstLoading);
export const selectisContactFormOpen = createSelector([state => state.ui], data => data.isContactFormOpen);
export const {
setFirstLoading,
setHeaderScroll,
setMobileMenuOpen,
setFirstHeaderBanner,
setHeaderBanner,
setActiveNavigationIndex,
setContactFormOpenOpen,
setAgreeCookieOpen } = uislice.actions;
export default uislice.reducer;