/home/bdqbpbxa/demo-subdomains/ping-proxies.goodface.com.ua/src/store/slices/FAQSlice.js
import { createSlice, createSelector } from '@reduxjs/toolkit';
import { getFAQ } from 'api/FAQ';
import { createRequest } from 'api/helpers';
export const fetchFAQ = createRequest('fetchFAQ', getFAQ, (_, { getState }) => {
const { attributes } = getState().faqState.faq.data;
return !attributes;
});
const FAQSlice = createSlice({
name: 'FAQSlice',
initialState: {
faq: {
data: {
attributes: null,
},
},
faqIsLoading: false,
},
reducers: {},
extraReducers: builder => {
builder.addCase(fetchFAQ.pending, state => {
state.faqIsLoading = true;
});
builder.addCase(fetchFAQ.fulfilled, (state, action) => {
state.faqIsLoading = false;
state.faq = action.payload;
});
},
});
export const selectFAQ = createSelector(
[state => state.faqState.faq],
faq => faq.data.attributes,
);
export const selectFAQSections = createSelector([selectFAQ], data => data?.faq.question_section || []);
export const faqIsLoading = createSelector([state => state.faqState], data => data.faqIsLoading);
export default FAQSlice.reducer;