mirror of
https://github.com/Paris-est-Ludique/intranet.git
synced 2025-09-11 22:06:29 +02:00
Add gSheet specific entity write
This commit is contained in:
@@ -2,14 +2,14 @@ import { PayloadAction, createSlice, createEntityAdapter } from "@reduxjs/toolki
|
||||
import { toast } from "react-toastify"
|
||||
|
||||
import { StateRequest } from "./utils"
|
||||
import { Envie, EnvieWithoutId, addEnvie } from "../services/envies"
|
||||
import { Envie, EnvieWithoutId, envieAdd } from "../services/envies"
|
||||
import { AppThunk } from "."
|
||||
|
||||
const envieAdapter = createEntityAdapter<Envie>({
|
||||
selectId: (envie) => envie.id,
|
||||
})
|
||||
|
||||
const envieAdd = createSlice({
|
||||
const envieAddSlice = createSlice({
|
||||
name: "addEnvie",
|
||||
initialState: envieAdapter.getInitialState({
|
||||
readyStatus: "idle",
|
||||
@@ -29,15 +29,15 @@ const envieAdd = createSlice({
|
||||
},
|
||||
})
|
||||
|
||||
export default envieAdd.reducer
|
||||
export const { getRequesting, getSuccess, getFailure } = envieAdd.actions
|
||||
export default envieAddSlice.reducer
|
||||
export const { getRequesting, getSuccess, getFailure } = envieAddSlice.actions
|
||||
|
||||
export const postEnvie =
|
||||
export const sendAddEnvie =
|
||||
(envieWithoutId: EnvieWithoutId): AppThunk =>
|
||||
async (dispatch) => {
|
||||
dispatch(getRequesting())
|
||||
|
||||
const { error, data } = await addEnvie(envieWithoutId)
|
||||
const { error, data } = await envieAdd(envieWithoutId)
|
||||
|
||||
if (error) {
|
||||
dispatch(getFailure(error.message))
|
||||
|
@@ -2,7 +2,7 @@ import { PayloadAction, createSlice, createEntityAdapter } from "@reduxjs/toolki
|
||||
import { toast } from "react-toastify"
|
||||
|
||||
import { StateRequest } from "./utils"
|
||||
import { Envie, getEnvieList } from "../services/envies"
|
||||
import { Envie, envieListGet } from "../services/envies"
|
||||
import { AppThunk, AppState } from "."
|
||||
|
||||
const envieAdapter = createEntityAdapter<Envie>({
|
||||
@@ -35,7 +35,7 @@ export const { getRequesting, getSuccess, getFailure } = envieList.actions
|
||||
export const fetchEnvieList = (): AppThunk => async (dispatch) => {
|
||||
dispatch(getRequesting())
|
||||
|
||||
const { error, data } = await getEnvieList()
|
||||
const { error, data } = await envieListGet()
|
||||
|
||||
if (error) {
|
||||
dispatch(getFailure(error.message))
|
||||
|
@@ -2,7 +2,7 @@ import { PayloadAction, createSlice } from "@reduxjs/toolkit"
|
||||
import { toast } from "react-toastify"
|
||||
|
||||
import { StateRequest } from "./utils"
|
||||
import { Membre, getMembre } from "../services/membres"
|
||||
import { Membre, membreGet } from "../services/membres"
|
||||
import { AppThunk, AppState } from "."
|
||||
|
||||
type StateMembre = { entity?: Membre } & StateRequest
|
||||
@@ -37,7 +37,7 @@ export const fetchMembreData =
|
||||
async (dispatch) => {
|
||||
dispatch(getRequesting())
|
||||
|
||||
const { error, data } = await getMembre(id)
|
||||
const { error, data } = await membreGet(id)
|
||||
|
||||
if (error) {
|
||||
dispatch(getFailure(error.message))
|
||||
|
@@ -2,7 +2,7 @@ import { PayloadAction, createSlice, createEntityAdapter } from "@reduxjs/toolki
|
||||
import { toast } from "react-toastify"
|
||||
|
||||
import { StateRequest } from "./utils"
|
||||
import { Membre, getMembreList } from "../services/membres"
|
||||
import { Membre, membreListGet } from "../services/membres"
|
||||
import { AppThunk, AppState } from "."
|
||||
|
||||
const membreAdapter = createEntityAdapter<Membre>()
|
||||
@@ -35,7 +35,7 @@ export const { getRequesting, getSuccess, getFailure } = membreList.actions
|
||||
export const fetchMembreList = (): AppThunk => async (dispatch) => {
|
||||
dispatch(getRequesting())
|
||||
|
||||
const { error, data } = await getMembreList()
|
||||
const { error, data } = await membreListGet()
|
||||
|
||||
if (error) {
|
||||
dispatch(getFailure(error.message))
|
||||
|
65
src/store/membreSet.ts
Normal file
65
src/store/membreSet.ts
Normal file
@@ -0,0 +1,65 @@
|
||||
import { PayloadAction, createSlice, createEntityAdapter } from "@reduxjs/toolkit"
|
||||
import { toast } from "react-toastify"
|
||||
|
||||
import { StateRequest } from "./utils"
|
||||
import { Membre, membreSet } from "../services/membres"
|
||||
import { AppThunk } from "."
|
||||
|
||||
const membreAdapter = createEntityAdapter<Membre>({
|
||||
selectId: (membre) => membre.id,
|
||||
})
|
||||
|
||||
const membreSetSlice = createSlice({
|
||||
name: "membreSet",
|
||||
initialState: membreAdapter.getInitialState({
|
||||
readyStatus: "idle",
|
||||
} as StateRequest),
|
||||
reducers: {
|
||||
getRequesting: (state) => {
|
||||
state.readyStatus = "request"
|
||||
},
|
||||
getSuccess: (state, { payload }: PayloadAction<Membre>) => {
|
||||
state.readyStatus = "success"
|
||||
membreAdapter.addOne(state, payload)
|
||||
},
|
||||
getFailure: (state, { payload }: PayloadAction<string>) => {
|
||||
state.readyStatus = "failure"
|
||||
state.error = payload
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
export default membreSetSlice.reducer
|
||||
export const { getRequesting, getSuccess, getFailure } = membreSetSlice.actions
|
||||
|
||||
export const sendMembreSet =
|
||||
(membre: Membre): AppThunk =>
|
||||
async (dispatch) => {
|
||||
dispatch(getRequesting())
|
||||
|
||||
const { error, data } = await membreSet(membre)
|
||||
|
||||
if (error) {
|
||||
dispatch(getFailure(error.message))
|
||||
toast.error(`Erreur lors de la modification d'un membre: ${error.message}`, {
|
||||
position: "top-center",
|
||||
autoClose: 6000,
|
||||
hideProgressBar: true,
|
||||
closeOnClick: true,
|
||||
pauseOnHover: true,
|
||||
draggable: true,
|
||||
progress: undefined,
|
||||
})
|
||||
} else {
|
||||
dispatch(getSuccess(data as Membre))
|
||||
toast.success("Membre modifié !", {
|
||||
position: "top-center",
|
||||
autoClose: 3000,
|
||||
hideProgressBar: true,
|
||||
closeOnClick: true,
|
||||
pauseOnHover: true,
|
||||
draggable: true,
|
||||
progress: undefined,
|
||||
})
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user