Skip to content
Snippets Groups Projects
Verified Commit 844e9630 authored by Defendi Alberto's avatar Defendi Alberto
Browse files

Complete insertion of a reservation.

parent 45fe44bc
No related branches found
No related tags found
2 merge requests!69Possibility to insert a reservation and new docs.,!67Insert a reservation and search by senior.
/* eslint-disable react/jsx-props-no-spreading */ /* eslint-disable react/jsx-props-no-spreading */
import React, { FC, useState } from 'react'; import React, { FC, useState } from 'react';
import { Button, TextField, Typography } from '@material-ui/core'; import {
Button,
Card,
CardActions,
CardContent,
TextField,
Typography,
} from '@material-ui/core';
import { Control, Controller } from 'react-hook-form'; import { Control, Controller } from 'react-hook-form';
import { InputField } from 'components/Auth/InputField/InputField'; import { InputField } from 'components/Auth/InputField/InputField';
import { InsertReservationType } from 'types/InsertReservationType'; import { InsertReservationType } from 'types/InsertReservationType';
import DateFnsUtils from '@date-io/date-fns';
import {
MuiPickersUtilsProvider,
KeyboardDateTimePicker,
} from '@material-ui/pickers';
type TripStageProps = { type TripStageProps = {
control: Control<InsertReservationType>; control: Control<InsertReservationType>;
...@@ -12,36 +24,56 @@ type TripStageProps = { ...@@ -12,36 +24,56 @@ type TripStageProps = {
export const TripStage: FC<TripStageProps> = ({ control }: TripStageProps) => { export const TripStage: FC<TripStageProps> = ({ control }: TripStageProps) => {
const [stage, setStage] = useState<string[]>(['']); const [stage, setStage] = useState<string[]>(['']);
const [value, setValue] = useState<string>(''); const [value, setValue] = useState<string>('');
console.log(control);
const addStage = (): void => { const addStage = (): void => {
setStage([...stage, value]); setStage([...stage, value]);
}; };
return ( return (
<> <MuiPickersUtilsProvider utils={DateFnsUtils}>
{stage.map((field, index) => ( <Card>
<> {stage.map((field, index) => (
<Typography variant="h3" component="h3"> <CardContent>
Stage {index} <Typography variant="h3" component="h3">
</Typography> Stage {index}
<Controller </Typography>
as={<TextField variant="outlined" fullWidth label="Location" />} <Controller
name={`tripStages[${index}].address`} as={<input hidden />}
control={control} name={`tripStages[${index}].number`}
defaultValue={field} control={control}
/> defaultValue={index}
<InputField />
name={`tripStages[${index}].estimatedBeAt`} <Controller
label="Predicted time" as={<TextField variant="outlined" fullWidth label="Location" />}
type="date" name={`tripStages[${index}].location.address`}
control={control} control={control}
/> defaultValue={field}
</> />
))} <Controller
<Button variant="outlined" onClick={addStage} type="button"> control={control}
Add stage name={`tripStages[${index}].estimatedBeAt`}
</Button> as={({ ref, ...rest }) => (
</> <KeyboardDateTimePicker
margin="normal"
id="date-picker-dialog"
label="Date picker dialog"
defaultValue={field}
format="dd/MM/yyyy"
KeyboardButtonProps={{
'aria-label': 'Insert trip stage',
}}
{...rest}
/>
)}
/>
</CardContent>
))}
<CardActions>
<Button variant="outlined" onClick={addStage} type="button">
Add stage
</Button>
</CardActions>
</Card>
</MuiPickersUtilsProvider>
); );
}; };
...@@ -37,10 +37,9 @@ export const ReservationDialog: FC<ReservationDialogProps> = ({ ...@@ -37,10 +37,9 @@ export const ReservationDialog: FC<ReservationDialogProps> = ({
const filledReservation = reservation; const filledReservation = reservation;
getRoleObject().then((role) => { getRoleObject().then((role) => {
filledReservation.insertedBy = role.id; filledReservation.insertedBy = role.id;
filledReservation.senior = senior?.id;
setReservation(filledReservation);
}); });
filledReservation.senior = senior?.id;
console.log(filledReservation);
setReservation(filledReservation);
handleClose(); handleClose();
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment