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

export const fetchContact = createRequest('fetchContact', getContact, (_, { getState }) => {
    const { attributes } = getState().contactState.contact.data;
    return !attributes;
});

const ContactSlice = createSlice({
    name: 'ContactsSlice',
    initialState: {
        contact: {
            data: {
                attributes: null,
            },
        },
        contactIsLoading: false,
    },
    reducers: {},
    extraReducers: builder => {
        builder.addCase(fetchContact.pending, state => {
            state.contactIsLoading = true;
        });
        builder.addCase(fetchContact.fulfilled, (state, action) => {
            state.contactIsLoading = false;
            state.contact = action.payload;
        });
    },
});

export const selectContact = createSelector(
    [state => state.contactState.contact],
    contact => contact.data.attributes,
);



export const contactIsLoading = createSelector([state => state.contactState], data => data.contactIsLoading);

export default ContactSlice.reducer;