mirror of
https://github.com/Paris-est-Ludique/intranet.git
synced 2025-09-11 13:56:29 +02:00
Add gSheet specific entity write
This commit is contained in:
@@ -3,7 +3,7 @@ import { toast } from "react-toastify"
|
||||
|
||||
import { AppDispatch } from "../../store"
|
||||
|
||||
import { postEnvie } from "../../store/envieAdd"
|
||||
import { sendAddEnvie } from "../../store/envieAdd"
|
||||
import styles from "./styles.module.scss"
|
||||
|
||||
interface Props {
|
||||
@@ -29,7 +29,7 @@ const AddEnvie = ({ dispatch }: Props) => {
|
||||
const onSavePostClicked = () => {
|
||||
if (domaine && envies) {
|
||||
dispatch(
|
||||
postEnvie({
|
||||
sendAddEnvie({
|
||||
domaine,
|
||||
envies,
|
||||
precisions,
|
||||
|
37
src/components/MembreSet/__tests__/MembreSet.tsx
Normal file
37
src/components/MembreSet/__tests__/MembreSet.tsx
Normal file
@@ -0,0 +1,37 @@
|
||||
/**
|
||||
* @jest-environment jsdom
|
||||
*/
|
||||
import { render } from "@testing-library/react"
|
||||
import { MemoryRouter } from "react-router-dom"
|
||||
|
||||
import MembreSet from "../index"
|
||||
|
||||
describe("<SetMembre />", () => {
|
||||
it("renders", () => {
|
||||
const dispatch = jest.fn()
|
||||
const tree = render(
|
||||
<MemoryRouter>
|
||||
<MembreSet
|
||||
dispatch={dispatch}
|
||||
membre={{
|
||||
id: 1,
|
||||
nom: "Aupeix",
|
||||
prenom: "Amélie",
|
||||
mail: "pakouille.lakouille@yahoo.fr",
|
||||
telephone: "0675650392",
|
||||
photo: "images/membres/$taille/amélie_aupeix.jpg",
|
||||
alimentation: "Végétarien",
|
||||
majeur: 1,
|
||||
privilege: 0,
|
||||
actif: 0,
|
||||
commentaire: "",
|
||||
horodatage: "0000-00-00",
|
||||
passe: "$2y$10$fSxY9AIuxSiEjwF.J3eXGubIxUPlobkyRrNIal8ASimSjNj4SR.9O",
|
||||
}}
|
||||
/>
|
||||
</MemoryRouter>
|
||||
).container.firstChild
|
||||
|
||||
expect(tree).toMatchSnapshot()
|
||||
})
|
||||
})
|
@@ -0,0 +1,51 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`<SetMembre /> renders 1`] = `
|
||||
<section
|
||||
class="MembreList"
|
||||
>
|
||||
<h2>
|
||||
Modifier un membre
|
||||
</h2>
|
||||
<form>
|
||||
<label
|
||||
for="postPrenom"
|
||||
>
|
||||
Prenom:
|
||||
<input
|
||||
id="postPrenom"
|
||||
name="postPrenom"
|
||||
type="text"
|
||||
value="Amélie"
|
||||
/>
|
||||
</label>
|
||||
<label
|
||||
for="postNom"
|
||||
>
|
||||
Nom:
|
||||
<input
|
||||
id="postNom"
|
||||
name="postNom"
|
||||
type="text"
|
||||
value="Aupeix"
|
||||
/>
|
||||
</label>
|
||||
<label
|
||||
for="postMajeur"
|
||||
>
|
||||
Majeur:
|
||||
<input
|
||||
id="postMajeur"
|
||||
name="postMajeur"
|
||||
type="text"
|
||||
value="1"
|
||||
/>
|
||||
</label>
|
||||
<button
|
||||
type="button"
|
||||
>
|
||||
Save changes
|
||||
</button>
|
||||
</form>
|
||||
</section>
|
||||
`;
|
87
src/components/MembreSet/index.tsx
Normal file
87
src/components/MembreSet/index.tsx
Normal file
@@ -0,0 +1,87 @@
|
||||
import React, { useState, memo } from "react"
|
||||
import { toast } from "react-toastify"
|
||||
|
||||
import { AppDispatch } from "../../store"
|
||||
|
||||
import { sendMembreSet } from "../../store/membreSet"
|
||||
import { Membre } from "../../services/membres"
|
||||
import styles from "./styles.module.scss"
|
||||
|
||||
interface Props {
|
||||
dispatch: AppDispatch
|
||||
membre: Membre
|
||||
}
|
||||
|
||||
const MembreSet = ({ dispatch, membre }: Props) => {
|
||||
const [prenom, setPrenom] = useState(membre.prenom)
|
||||
const [nom, setNom] = useState(membre.nom)
|
||||
const [majeur, setMajeur] = useState(membre.majeur)
|
||||
|
||||
const onPrenomChanged = (e: React.ChangeEvent<HTMLInputElement>) => setPrenom(e.target.value)
|
||||
const onNomChanged = (e: React.ChangeEvent<HTMLInputElement>) => setNom(e.target.value)
|
||||
const onMajeurChanged = (e: React.ChangeEvent<HTMLInputElement>) => setMajeur(+e.target.value)
|
||||
|
||||
const onSavePostClicked = () => {
|
||||
if (prenom && nom) {
|
||||
dispatch(
|
||||
sendMembreSet({
|
||||
...membre,
|
||||
prenom,
|
||||
nom,
|
||||
majeur,
|
||||
})
|
||||
)
|
||||
} else {
|
||||
toast.warning("Il faut au moins préciser un prenom et un nom", {
|
||||
position: "top-center",
|
||||
autoClose: 6000,
|
||||
hideProgressBar: true,
|
||||
closeOnClick: true,
|
||||
pauseOnHover: true,
|
||||
draggable: true,
|
||||
progress: undefined,
|
||||
})
|
||||
}
|
||||
}
|
||||
return (
|
||||
<section className={styles.MembreList}>
|
||||
<h2>Modifier un membre</h2>
|
||||
<form>
|
||||
<label htmlFor="postPrenom">
|
||||
Prenom:
|
||||
<input
|
||||
type="text"
|
||||
id="postPrenom"
|
||||
name="postPrenom"
|
||||
value={prenom}
|
||||
onChange={onPrenomChanged}
|
||||
/>
|
||||
</label>
|
||||
<label htmlFor="postNom">
|
||||
Nom:
|
||||
<input
|
||||
type="text"
|
||||
id="postNom"
|
||||
name="postNom"
|
||||
value={nom}
|
||||
onChange={onNomChanged}
|
||||
/>
|
||||
</label>
|
||||
<label htmlFor="postMajeur">
|
||||
Majeur:
|
||||
<input
|
||||
type="text"
|
||||
id="postMajeur"
|
||||
name="postMajeur"
|
||||
value={majeur}
|
||||
onChange={onMajeurChanged}
|
||||
/>
|
||||
</label>
|
||||
<button type="button" onClick={onSavePostClicked}>
|
||||
Save changes
|
||||
</button>
|
||||
</form>
|
||||
</section>
|
||||
)
|
||||
}
|
||||
export default memo(MembreSet)
|
17
src/components/MembreSet/styles.module.scss
Normal file
17
src/components/MembreSet/styles.module.scss
Normal file
@@ -0,0 +1,17 @@
|
||||
@import "../../theme/variables";
|
||||
|
||||
.jav-game-list {
|
||||
color: $color-white;
|
||||
|
||||
ul {
|
||||
padding-left: 17px;
|
||||
|
||||
li {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
color: $color-white;
|
||||
}
|
||||
}
|
@@ -1,8 +1,9 @@
|
||||
import MembreList from "./MembreList"
|
||||
import JeuJavList from "./JeuJavList"
|
||||
import MembreInfo from "./MembreInfo"
|
||||
import MembreSet from "./MembreSet"
|
||||
import ErrorBoundary from "./ErrorBoundary"
|
||||
import Loading from "./Loading"
|
||||
import AddEnvie from "./AddEnvie"
|
||||
|
||||
export { MembreList, JeuJavList, MembreInfo, ErrorBoundary, Loading, AddEnvie }
|
||||
export { MembreList, JeuJavList, MembreInfo, MembreSet, ErrorBoundary, Loading, AddEnvie }
|
||||
|
Reference in New Issue
Block a user