|
@@ -1,17 +1,17 @@
|
|
import { useEffect } from 'react'
|
|
import { useEffect } from 'react'
|
|
import { useTrainingQuery, useCreateTrainingMutation } from '../../gql'
|
|
import { useTrainingQuery, useCreateTrainingMutation } from '../../gql'
|
|
-import { useForm } from '../../form'
|
|
|
|
-import { emptyTraining } from '../constants'
|
|
|
|
-import TrainingInputs from './TrainingInputs'
|
|
|
|
|
|
+import { useForm, TextInput, DateTimeInput, Checkbox } from '../../form'
|
|
|
|
+import { emptyTraining, emptyBlockInstance } from '../utils'
|
|
|
|
+import TrainingTypeSelector from './TrainingTypeSelector'
|
|
|
|
+import BlockInstanceInputs from './BlockInstanceInputs'
|
|
|
|
|
|
const EditTraining = ({ id = '' }: { id?: string }) => {
|
|
const EditTraining = ({ id = '' }: { id?: string }) => {
|
|
const trainingData = useTrainingQuery({ variables: { id } })
|
|
const trainingData = useTrainingQuery({ variables: { id } })
|
|
|
|
|
|
- const { values, touched, onChange, loadData } = useForm(emptyTraining)
|
|
|
|
|
|
+ const { values, touched, onChange, loadData } = useForm(emptyTraining())
|
|
const [createTraining, createData] = useCreateTrainingMutation()
|
|
const [createTraining, createData] = useCreateTrainingMutation()
|
|
|
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
- console.log('training effect', trainingData)
|
|
|
|
if (trainingData.data?.training) loadData(trainingData.data.training)
|
|
if (trainingData.data?.training) loadData(trainingData.data.training)
|
|
}, [trainingData.data])
|
|
}, [trainingData.data])
|
|
|
|
|
|
@@ -23,7 +23,66 @@ const EditTraining = ({ id = '' }: { id?: string }) => {
|
|
//createTraining({ variables: values })
|
|
//createTraining({ variables: values })
|
|
}}
|
|
}}
|
|
>
|
|
>
|
|
- <TrainingInputs name='test' values={values} onChange={onChange} />
|
|
|
|
|
|
+ <TextInput
|
|
|
|
+ name='title'
|
|
|
|
+ label='Title'
|
|
|
|
+ value={values.title}
|
|
|
|
+ onChange={onChange}
|
|
|
|
+ />
|
|
|
|
+ <TrainingTypeSelector
|
|
|
|
+ name='type'
|
|
|
|
+ value={values.type}
|
|
|
|
+ onChange={onChange}
|
|
|
|
+ />
|
|
|
|
+ <DateTimeInput
|
|
|
|
+ name='trainingDate'
|
|
|
|
+ label='Training date'
|
|
|
|
+ value={values.trainingDate}
|
|
|
|
+ onChange={onChange}
|
|
|
|
+ />
|
|
|
|
+ <TextInput
|
|
|
|
+ name='location'
|
|
|
|
+ label='Location'
|
|
|
|
+ value={values.location}
|
|
|
|
+ onChange={onChange}
|
|
|
|
+ />
|
|
|
|
+ <TextInput
|
|
|
|
+ name='attendance'
|
|
|
|
+ label='Attendance'
|
|
|
|
+ type='number'
|
|
|
|
+ value={values.attendance}
|
|
|
|
+ onChange={onChange}
|
|
|
|
+ />
|
|
|
|
+ <Checkbox
|
|
|
|
+ name='published'
|
|
|
|
+ label='Published'
|
|
|
|
+ value={values.published}
|
|
|
|
+ onChange={onChange}
|
|
|
|
+ />
|
|
|
|
+ <label>Blocks</label>
|
|
|
|
+ {values.blocks && (
|
|
|
|
+ <BlockInstanceInputs
|
|
|
|
+ name='blocks'
|
|
|
|
+ value={values.blocks}
|
|
|
|
+ onChange={onChange}
|
|
|
|
+ />
|
|
|
|
+ )}
|
|
|
|
+ <button
|
|
|
|
+ onClick={event => {
|
|
|
|
+ event.preventDefault()
|
|
|
|
+ const newBlock = emptyBlockInstance()
|
|
|
|
+ onChange({
|
|
|
|
+ target: {
|
|
|
|
+ type: 'custom',
|
|
|
|
+ name: 'blocks',
|
|
|
|
+ value: values.blocks ? [...values.blocks, newBlock] : [newBlock]
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }}
|
|
|
|
+ type='button'
|
|
|
|
+ >
|
|
|
|
+ Add block
|
|
|
|
+ </button>
|
|
<button type='submit' disabled={createData.loading}>
|
|
<button type='submit' disabled={createData.loading}>
|
|
Save
|
|
Save
|
|
</button>
|
|
</button>
|