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

Attach controller to save array into form.

Data is flushed when input value is changed. See issue #12.
parent 78078439
No related branches found
No related tags found
1 merge request!69Possibility to insert a reservation and new docs.
...@@ -8,41 +8,59 @@ import TimelineContent from '@material-ui/lab/TimelineContent'; ...@@ -8,41 +8,59 @@ import TimelineContent from '@material-ui/lab/TimelineContent';
import TimelineDot from '@material-ui/lab/TimelineDot'; import TimelineDot from '@material-ui/lab/TimelineDot';
import { InputField } from 'components/Auth/InputField/InputField'; import { InputField } from 'components/Auth/InputField/InputField';
import React, { FC, useState } from 'react'; import React, { FC, useState } from 'react';
import { useFormContext } from 'react-hook-form'; import { Control, Controller, useFormContext } from 'react-hook-form';
import { InsertReservationProps } from './InsertReservationProps';
export const TripStage: FC = () => { type TripStageProps = {
control: Control<InsertReservationProps>;
};
// FIX: Data is flushed onChange. Similar problem in seniorSearch.
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>('');
const addStage = (): void => { const addStage = (onChange: any): void => {
setStage([...stage, value]); setStage([...stage, value]);
onChange(stage);
}; };
return ( return (
<> <Controller
<Timeline> name="tripStages"
{stage.map((el, key) => ( control={control}
<TimelineItem> defaultValue={[]}
<TimelineSeparator> as={({ onChange }) => (
<TimelineDot /> <>
<TimelineConnector /> <Timeline>
</TimelineSeparator> {stage.map((el, key) => (
<TimelineContent>{el}</TimelineContent> <TimelineItem>
</TimelineItem> <TimelineSeparator>
))} <TimelineDot />
</Timeline> <TimelineConnector />
<div> </TimelineSeparator>
<TextField <TimelineContent>{el}</TimelineContent>
id="address" </TimelineItem>
label="address" ))}
type="text" </Timeline>
variant="outlined" <div>
onChange={(e) => setValue(e.target.value)} <TextField
/> id="address"
<Button variant="outlined" type="button" onClick={addStage}> label="address"
Add type="text"
</Button> variant="outlined"
</div> onChange={(e) => setValue(e.target.value)}
</> />
<Button
variant="outlined"
type="button"
onClick={() => addStage(onChange)}
>
Add
</Button>
</div>
</>
)}
/>
); );
}; };
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