/home/bdqbpbxa/demo-subdomains/ping-proxies.goodface.com.ua/src/store/slices/HomepageSlice.js
import { createSlice, createSelector } from '@reduxjs/toolkit';
import { getHomepage } from 'api/Homepage';
import { createRequest } from 'api/helpers';
export const fetchHomepage = createRequest('fetchHomepage', getHomepage, (_, { getState }) => {
const { attributes } = getState().homepageState.homepage.data;
return !attributes;
});
const homepageSlice = createSlice({
name: 'homepageSlice',
initialState: {
homepage: {
data: {
attributes: null,
},
},
homepageIsLoading: false,
},
reducers: {},
extraReducers: builder => {
builder.addCase(fetchHomepage.pending, state => {
state.homepageIsLoading = true;
});
builder.addCase(fetchHomepage.fulfilled, (state, action) => {
state.homepageIsLoading = false;
state.homepage = action.payload;
});
},
});
export const selectHomepage = createSelector(
[state => state.homepageState.homepage],
homepage => homepage.data.attributes,
);
export const selectHomepageFirstScreen = createSelector([selectHomepage], data => data?.first_screen || {});
export const selectHomepagePartners = createSelector([selectHomepage], data => data?.partners || {});
export const selectHomepageProducts = createSelector([selectHomepage], data => data?.product_plans || {});
export const selectHomepageFeatures = createSelector([selectHomepage], data => data?.features || {});
export const selectHomepageDashboard = createSelector([selectHomepage], data => data?.dashboard || {});
export const selectHomepageApiIntegration = createSelector([selectHomepage], data => data?.api_integrations || []);
export const selectHomepageReviews = createSelector([selectHomepage], data => data?.reviews || {});
export const selectHomepageUsecases = createSelector([selectHomepage], data => data?.use_cases || {});
export const selectHomepageLocations = createSelector([selectHomepage], data => data?.locations || {});
export const selectHomepageAboutUs = createSelector([selectHomepage], data => data?.about_us || {});
export const selectHomepageCta = createSelector([selectHomepage], data => data?.cta || {});
export const selectHomepageIsLoading = createSelector([state => state.homepageState], data => data.homepageIsLoading);
export default homepageSlice.reducer;