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

export const fetchAboutUs = createRequest('fetchAboutUs', getAboutUs, (_, { getState }) => {
    const { attributes } = getState().aboutUsState.aboutUs.data;
    return !attributes;
});

const AboutUsSlice = createSlice({
    name: 'AboutUsSlice',
    initialState: {
        aboutUs: {
            data: {
                attributes: null,
            },
        },
        aboutUsIsLoading: false,
    },
    reducers: {},
    extraReducers: builder => {
        builder.addCase(fetchAboutUs.pending, state => {
            state.aboutUsIsLoading = true;
        });
        builder.addCase(fetchAboutUs.fulfilled, (state, action) => {
            state.aboutUsIsLoading = false;
            state.aboutUs = action.payload;
        });
    },
});

export const selectAboutUs = createSelector(
    [state => state.aboutUsState.aboutUs],
    aboutUs => aboutUs.data.attributes,
);

export const selectAboutUsHero = createSelector([selectAboutUs], data => data?.hero || {});
export const selectAboutUsPartners = createSelector([selectAboutUs], data => data?.partners || {});
export const selectAboutUsAbout = createSelector([selectAboutUs], data => data?.about || {});
export const selectAboutUsVision = createSelector([selectAboutUs], data => data?.vision_mission || {});
export const selectAboutUsTeam = createSelector([selectAboutUs], data => data?.team || {});
export const selectAboutUsCareer = createSelector([selectAboutUs], data => data?.career || {});



export const selectAboutUsIsLoading = createSelector([state => state.aboutUsState], data => data.aboutUsIsLoading);

export default AboutUsSlice.reducer;