/home/bdqbpbxa/demo-subdomains/ping-proxies.goodface.com.ua/src/store/slices/LandingSlice.js
import { createSlice, createSelector } from '@reduxjs/toolkit';
import { getLandingPageBySlag } from 'api/LandingPage';
import { createRequest } from 'api/helpers';

// export const fetchLandingPage = createRequest('fetchLandingPage', getLandingPage, (_, { getState }) => {
//     const { attributes } = getState().landingPageState.landingPage.data;
//     return !attributes;
// });

export const fetchCurrentLandingPage = createRequest('landingPageSlice', getLandingPageBySlag);

const landingPageSlice = createSlice({
    name: 'landingPageSlice',
    initialState: {
        landingPage: {
            data: {
                attributes: null,
            },
        },
        landingPageIsLoading: false,
    },
    reducers: {},
    extraReducers: builder => {
        builder.addCase(fetchCurrentLandingPage.pending, state => {
            state.landingPageIsLoading = true;
        });
        builder.addCase(fetchCurrentLandingPage.fulfilled, (state, action) => {
            state.landingPageIsLoading = false;
            state.landingPage = action.payload;
        });
    },
});

export const selectLandingPage = createSelector(
    [state => state.landingPageState.landingPage],
    landingPage => landingPage.data[0]?.attributes,
);


export const selectLandingPageHero = createSelector([selectLandingPage], data => data?.hero || {});
export const selectLandingPagePartners = createSelector([selectLandingPage], data => data?.partners || {});
export const selectLandingPageProducts = createSelector([selectLandingPage], data => data?.product_plans || {});
export const selectLandingPageInformations = createSelector([selectLandingPage], data => data?.information_section || {});
export const selectLandingPageReviews = createSelector([selectLandingPage], data => data?.reviews || {});
export const selectLandingPageCta = createSelector([selectLandingPage], data => data?.cta || {});



export const selectLandingPageIsLoading = createSelector([state => state.landingPageState], data => data.landingPageIsLoading);

export default landingPageSlice.reducer;