|
@@ -1,32 +1,36 @@
|
|
|
-import { ChangeEvent } from 'react'
|
|
|
-import { useTrainingTypesQuery } from '../../gql'
|
|
|
+import { ChangeEvent } from "react";
|
|
|
+import { useTrainingTypesQuery } from "../../gql";
|
|
|
|
|
|
interface ITrainingTypeSelector {
|
|
|
- value: { connect: { id: string } } | undefined
|
|
|
- label?: string
|
|
|
- name?: string
|
|
|
- onChange: (event: ChangeEvent<HTMLSelectElement> | NestedEvent) => void
|
|
|
+ value: { connect: { id: string } } | undefined;
|
|
|
+ label?: string;
|
|
|
+ name?: string;
|
|
|
+ onChange: (event: ChangeEvent<HTMLSelectElement> | NestedEvent) => void;
|
|
|
}
|
|
|
|
|
|
const TrainingTypeSelector = ({
|
|
|
onChange,
|
|
|
value,
|
|
|
- name = 'type',
|
|
|
- label = 'Training type',
|
|
|
+ name = "type",
|
|
|
+ label = "Training type",
|
|
|
...props
|
|
|
}: ITrainingTypeSelector) => {
|
|
|
- const trainingTypes = useTrainingTypesQuery()
|
|
|
- const id = value && value.connect.id
|
|
|
+ const trainingTypes = useTrainingTypesQuery();
|
|
|
+ const id = value && value.connect.id;
|
|
|
|
|
|
- if (trainingTypes.data && !value) {
|
|
|
- const id = trainingTypes.data.trainingTypes[0].id
|
|
|
+ if (
|
|
|
+ trainingTypes.data &&
|
|
|
+ trainingTypes.data.trainingTypes.length > 0 &&
|
|
|
+ !value
|
|
|
+ ) {
|
|
|
+ const id = trainingTypes.data.trainingTypes[0].id;
|
|
|
onChange({
|
|
|
target: {
|
|
|
- type: 'custom',
|
|
|
+ type: "custom",
|
|
|
value: { connect: { id } },
|
|
|
name
|
|
|
}
|
|
|
- })
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
return (
|
|
@@ -39,17 +43,17 @@ const TrainingTypeSelector = ({
|
|
|
onChange={event => {
|
|
|
const copy: NestedEvent = {
|
|
|
target: {
|
|
|
- type: 'custom',
|
|
|
+ type: "custom",
|
|
|
value: { connect: { id: event.target.value } },
|
|
|
name
|
|
|
}
|
|
|
- }
|
|
|
- onChange(copy)
|
|
|
+ };
|
|
|
+ onChange(copy);
|
|
|
}}
|
|
|
{...props}
|
|
|
>
|
|
|
- {trainingTypes.loading && 'loading training types...'}
|
|
|
- {trainingTypes.error && 'error loading training types'}
|
|
|
+ {trainingTypes.loading && "loading training types..."}
|
|
|
+ {trainingTypes.error && "error loading training types"}
|
|
|
{trainingTypes.data &&
|
|
|
trainingTypes.data.trainingTypes.map(trainingType => (
|
|
|
<option
|
|
@@ -62,14 +66,14 @@ const TrainingTypeSelector = ({
|
|
|
))}
|
|
|
</select>
|
|
|
<button
|
|
|
- type='button'
|
|
|
+ type="button"
|
|
|
onClick={event => {
|
|
|
- event.preventDefault()
|
|
|
+ event.preventDefault();
|
|
|
}}
|
|
|
>
|
|
|
Add type
|
|
|
</button>
|
|
|
</>
|
|
|
- )
|
|
|
-}
|
|
|
-export default TrainingTypeSelector
|
|
|
+ );
|
|
|
+};
|
|
|
+export default TrainingTypeSelector;
|