UNPKG

react-garden

Version:

React + TypeScript + ThreeJS app using Material UI on NextJS, Apollo Client, GraphQL + WordPress REST APIs, for ThreeD web development.. a part of the threed.ai code family.

55 lines (45 loc) 1.33 kB
import { createSlice, createAsyncThunk } from '@reduxjs/toolkit' // ** Axios Imports import axios from 'axios' // ** Fetch Users export const fetchData = createAsyncThunk('appUsers/fetchData', async params => { const response = await axios.get('/apps/users/list', { params }) return response.data }) // ** Add User export const addUser = createAsyncThunk('appUsers/addUser', async (data, { getState, dispatch }) => { const response = await axios.post('/apps/users/add-user', { data }) dispatch(fetchData(getState().user.params)) return response.data }) // ** Delete User export const deleteUser = createAsyncThunk('appUsers/deleteUser', async (id, { getState, dispatch }) => { const response = await axios.delete('/apps/users/delete', { data: id }) dispatch(fetchData(getState().user.params)) return response.data }) export const appUsersSlice = createSlice({ name: 'appUsers', initialState: { data: [], total: 1, params: {}, allData: [] }, reducers: {}, extraReducers: builder => { builder.addCase(fetchData.fulfilled, (state, action) => { state.data = action.payload.users state.total = action.payload.total state.params = action.payload.params state.allData = action.payload.allData }) } }) export default appUsersSlice.reducer