1- import React from 'react'
1+ import React , { useState } from 'react'
22import { useForm } from 'react-hook-form'
33import { Input , Text , TextProps , DefaultTheme , Spacer , StyledSelect } from '@lara/components'
44
55import strings from '../locales/localization'
66import { PrimaryButton } from './button'
77import { useValidationHelper } from '../helper/validation-helper'
8- import { Trainer } from '../graphql'
8+ import { Trainer , useUserEmailPageMutation } from '../graphql'
99import { CreateBriefingLayout } from '@lara/components/lib/paper-form'
1010
1111interface CreateBriefingFormProps {
@@ -36,14 +36,18 @@ const inputLabelProps: TextProps = {
3636
3737export const PaperCreateForm : React . FC < CreateBriefingFormProps > = ( { trainer, submit, blurSubmit } ) => {
3838 const { validateEmail } = useValidationHelper ( )
39+ const [ getUserByEmail ] = useUserEmailPageMutation ( )
40+ const [ nameInputDisabled , setNameInputDisabled ] = useState ( false )
3941
4042 const {
4143 register,
44+ setValue,
4245 handleSubmit,
4346 formState : { errors } ,
4447 } = useForm < CreateBriefingFormData > ( )
4548
4649 const onSubmit = handleSubmit ( ( formdata ) => {
50+ console . log ( 'HELLO' )
4751 setUpdating ( true )
4852 submit ( formdata ) . then ( ( ) => {
4953 setUpdating ( false )
@@ -77,6 +81,40 @@ export const PaperCreateForm: React.FC<CreateBriefingFormProps> = ({ trainer, su
7781 </ StyledSelect >
7882 </ >
7983 }
84+ emailMentorInput = {
85+ < >
86+ < Text color = { getFontColor ( errors . emailMentor ) } { ...inputLabelProps } >
87+ { strings . paper . createBriefing . emailMentor }
88+ </ Text >
89+ < Input
90+ type = "email"
91+ { ...register ( 'emailMentor' , {
92+ required : true ,
93+ validate : validateEmail ,
94+ } ) }
95+ disabled = { updating }
96+ error = { Boolean ( errors . emailMentor ) }
97+ onBlur = { async ( e ) => {
98+ if ( e . target . value . trim ( ) === '' ) {
99+ setNameInputDisabled ( false )
100+ return
101+ }
102+ await getUserByEmail ( {
103+ variables : {
104+ email : e . target . value ,
105+ } ,
106+ } ) . then ( ( response ) => {
107+ if ( response . data ?. getUserByEmail ) {
108+ setValue ( 'firstNameMentor' , response . data . getUserByEmail . firstName , { shouldValidate : true } )
109+ setValue ( 'lastNameMentor' , response . data . getUserByEmail . lastName , { shouldValidate : true } )
110+ setNameInputDisabled ( true )
111+ } else setNameInputDisabled ( false )
112+ } )
113+ if ( blurSubmit ) onSubmit ( )
114+ } }
115+ />
116+ </ >
117+ }
80118 firstNameMentorInput = {
81119 < >
82120 < Text color = { getFontColor ( errors . firstNameMentor ) } { ...inputLabelProps } >
@@ -86,7 +124,7 @@ export const PaperCreateForm: React.FC<CreateBriefingFormProps> = ({ trainer, su
86124 { ...register ( 'firstNameMentor' , {
87125 required : strings . validation . required ,
88126 } ) }
89- disabled = { updating }
127+ disabled = { nameInputDisabled }
90128 error = { Boolean ( errors . firstNameMentor ) }
91129 onBlur = { blurSubmit ? onSubmit : undefined }
92130 />
@@ -102,29 +140,12 @@ export const PaperCreateForm: React.FC<CreateBriefingFormProps> = ({ trainer, su
102140 { ...register ( 'lastNameMentor' , {
103141 required : strings . validation . required ,
104142 } ) }
105- disabled = { updating }
143+ disabled = { nameInputDisabled }
106144 error = { Boolean ( errors . lastNameMentor ) }
107145 onBlur = { blurSubmit ? onSubmit : undefined }
108146 />
109147 </ >
110148 }
111- emailMentorInput = {
112- < >
113- < Text color = { getFontColor ( errors . emailMentor ) } { ...inputLabelProps } >
114- { strings . paper . createBriefing . emailMentor }
115- </ Text >
116- < Input
117- type = "email"
118- { ...register ( 'emailMentor' , {
119- required : true ,
120- validate : validateEmail ,
121- } ) }
122- disabled = { updating }
123- error = { Boolean ( errors . emailMentor ) }
124- onBlur = { blurSubmit ? onSubmit : undefined }
125- />
126- </ >
127- }
128149 emptyFieldMentor = { < > </ > }
129150 customerInput = {
130151 < >
0 commit comments