diff --git a/src/components/VolunteerBoard/Board.tsx b/src/components/VolunteerBoard/Board.tsx index f92787b..cb77bcf 100644 --- a/src/components/VolunteerBoard/Board.tsx +++ b/src/components/VolunteerBoard/Board.tsx @@ -1,14 +1,16 @@ import { FC, memo } from "react" import DayWishes from "./DayWishes/DayWishes" import DayWishesFormModal from "./DayWishesForm/DayWishesFormModal" -import ParticipationDetailsForm from "./ParticipationDetailsForm/ParticipationDetailsForm" +import ParticipationDetails from "./ParticipationDetails/ParticipationDetails" +import ParticipationDetailsFormModal from "./ParticipationDetailsForm/ParticipationDetailsFormModal" import withUserConnected from "../../utils/withUserConnected" const Board: FC = (): JSX.Element => (
- + +
) diff --git a/src/components/VolunteerBoard/ParticipationDetails/ParticipationDetails.tsx b/src/components/VolunteerBoard/ParticipationDetails/ParticipationDetails.tsx new file mode 100644 index 0000000..5620e0f --- /dev/null +++ b/src/components/VolunteerBoard/ParticipationDetails/ParticipationDetails.tsx @@ -0,0 +1,47 @@ +import { FC, memo, useCallback } from "react" +import get from "lodash/get" +import styles from "./styles.module.scss" +import { useUserParticipationDetails } from "../participationDetails.utils" +import { displayModal, MODAL_IDS } from "../../../store/ui" +import useAction from "../../../utils/useAction" + +type Props = { + afterSubmit?: () => void | undefined +} + +const ParticipationDetailsForm: FC = (): JSX.Element | null => { + const [participationDetails] = useUserParticipationDetails() + const age = get(participationDetails, "age", "") + const tShirtSize = get(participationDetails, "teeshirtSize", "") + const food = get(participationDetails, "food", "") + const execDisplayModal = useAction(displayModal) + const onEdit = useCallback( + () => execDisplayModal(MODAL_IDS.PARTICIPATIONDETAILS), + [execDisplayModal] + ) + + return ( +
+
Mes informations pour le festival
+ {!tShirtSize &&
J'ai déjà 2 t-shirts.
} + {tShirtSize && ( +
+ J'ai besoin d'un t-shirt ! (Taille {tShirtSize}) +
+ )} +
+ Age : {age} ans. +
+
+ Préférence alimentaire : {food} +
+
+ +
+
+ ) +} + +export default memo(ParticipationDetailsForm) diff --git a/src/components/VolunteerBoard/ParticipationDetails/styles.module.scss b/src/components/VolunteerBoard/ParticipationDetails/styles.module.scss new file mode 100755 index 0000000..2b922ae --- /dev/null +++ b/src/components/VolunteerBoard/ParticipationDetails/styles.module.scss @@ -0,0 +1,24 @@ +@import "../../../theme/variables"; +@import "../../../theme/mixins"; + +.root { + @include inner-content-wrapper(); + + position: relative; +} + +.title { + padding-bottom: 5px; + font-weight: bold; +} + +.line { + margin: 2px 0; +} + +.editButton { + @include vertical-center(); + + position: absolute; + right: 20px; +} diff --git a/src/components/VolunteerBoard/ParticipationDetailsForm/ParticipationDetailsForm.tsx b/src/components/VolunteerBoard/ParticipationDetailsForm/ParticipationDetailsForm.tsx index d3d3736..64a753b 100644 --- a/src/components/VolunteerBoard/ParticipationDetailsForm/ParticipationDetailsForm.tsx +++ b/src/components/VolunteerBoard/ParticipationDetailsForm/ParticipationDetailsForm.tsx @@ -8,7 +8,11 @@ import { useUserParticipationDetails, } from "../participationDetails.utils" -const ParticipationDetailsForm: FC = (): JSX.Element | null => { +type Props = { + afterSubmit?: () => void | undefined +} + +const ParticipationDetailsForm: FC = ({ afterSubmit }): JSX.Element | null => { const sizeRef = useRef(null) const dietRef = useRef(null) const ageRef = useRef(null) @@ -19,9 +23,10 @@ const ParticipationDetailsForm: FC = (): JSX.Element | null => { const onSubmit = useCallback(() => { const age = get(ageRef, "current.value", "") const teeshirtSize = has2Shirts ? "" : get(sizeRef, "current.value", "") - const food = get(dietRef, "current.value", foodDefaultValue) + const food = get(dietRef, "current.value", "") || foodDefaultValue saveParticipationDetails({ age, teeshirtSize, food }) - }, [has2Shirts, saveParticipationDetails]) + if (afterSubmit) afterSubmit() + }, [has2Shirts, saveParticipationDetails, afterSubmit]) const onHas2ShirtsClick = useCallback( (value) => { @@ -43,7 +48,7 @@ const ParticipationDetailsForm: FC = (): JSX.Element | null => { return (
-
Informations pour le festival
+
Mes informations pour le festival
J'ai déjà 2 t-shirts