import { Button, Dialog, DialogActions, DialogContent, DialogTitle, Tooltip, } from "@mui/material"; import React from "react"; import { ServerApi } from "../../api/ServerApi"; import { UpdateAccommodation } from "../../api/accommodations/AccommodationListApi"; import { checkConstraint } from "../../utils/form_utils"; import { PropCheckbox } from "../../widgets/forms/PropCheckbox"; import { PropEdit } from "../../widgets/forms/PropEdit"; import { PropColorPicker } from "../../widgets/forms/PropColorPicker"; export function UpdateAccommodationDialog(p: { open: boolean; create: boolean; onClose: () => void; onSubmitted: (c: UpdateAccommodation) => void; accommodation: UpdateAccommodation | undefined; }): React.ReactElement { const [accommodation, setAccommodation] = React.useState< UpdateAccommodation | undefined >(); const nameErr = checkConstraint( ServerApi.Config.constraints.accommodation_name_len, accommodation?.name ); const descriptionErr = checkConstraint( ServerApi.Config.constraints.accommodation_description_len, accommodation?.description ); const clearForm = () => { setAccommodation(undefined); }; const cancel = () => { clearForm(); p.onClose(); }; const submit = async () => { clearForm(); p.onSubmitted(accommodation!); }; React.useEffect(() => { if (!accommodation) setAccommodation(p.accommodation); }, [p.open, p.accommodation]); return ( {p.create ? "Création" : "Mise à jour"} d'un logement setAccommodation((a) => { return { ...a!, name: s!, }; }) } size={ServerApi.Config.constraints.accommodation_name_len} helperText={nameErr} /> setAccommodation((a) => { return { ...a!, description: s!, }; }) } size={ServerApi.Config.constraints.accommodation_description_len} helperText={descriptionErr} /> setAccommodation((a) => { return { ...a!, color: s!, }; }) } /> setAccommodation((a) => { return { ...a!, open_to_reservations: c, }; }) } /> setAccommodation((a) => { return { ...a!, need_validation: c, }; }) } /> ); }