MIF_E31222881/resources/js/Components/features/leads/leadSlice.jsx

49 lines
1.2 KiB
JavaScript

import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'
import axios from 'axios'
export const getLeadsContent = createAsyncThunk('/leads/content', async () => {
const response = await axios.get('/api/users?page=2', {})
return response.data;
})
export const leadsSlice = createSlice({
name: 'leads',
initialState: {
isLoading: false,
leads: []
},
reducers: {
addNewLead: (state, action) => {
let { newLeadObj } = action.payload
state.leads = [...state.leads, newLeadObj]
},
deleteLead: (state, action) => {
let { index } = action.payload
state.leads.splice(index, 1)
}
},
extraReducers: (builder) => {
builder
.addCase(getLeadsContent.pending, (state) => {
state.isLoading = true;
})
.addCase(getLeadsContent.fulfilled, (state, action) => {
state.leads = action.payload.data;
state.isLoading = false;
})
.addCase(getLeadsContent.rejected, (state) => {
state.isLoading = false;
});
}
})
export const { addNewLead, deleteLead } = leadsSlice.actions
export default leadsSlice.reducer