| @@ -1,6 +1,6 @@ | |||
| 'use client' | |||
| import type { FC } from 'react' | |||
| import React, { useCallback, useState } from 'react' | |||
| import React, { useCallback, useEffect, useRef, useState } from 'react' | |||
| import { useTranslation } from 'react-i18next' | |||
| import { useContext } from 'use-context-selector' | |||
| import ModalFoot from '../modal-foot' | |||
| @@ -40,6 +40,12 @@ const ConfigModal: FC<IConfigModalProps> = ({ | |||
| const { t } = useTranslation() | |||
| const [tempPayload, setTempPayload] = useState<InputVar>(payload || getNewVarInWorkflow('') as any) | |||
| const { type, label, variable, options, max_length } = tempPayload | |||
| const modalRef = useRef<HTMLDivElement>(null) | |||
| useEffect(() => { | |||
| // To fix the first input element auto focus, then directly close modal will raise error | |||
| if (isShow) | |||
| modalRef.current?.focus() | |||
| }, [isShow]) | |||
| const isStringInput = type === InputVarType.textInput || type === InputVarType.paragraph | |||
| const checkVariableName = useCallback((value: string) => { | |||
| @@ -135,7 +141,7 @@ const ConfigModal: FC<IConfigModalProps> = ({ | |||
| isShow={isShow} | |||
| onClose={onClose} | |||
| > | |||
| <div className='mb-8'> | |||
| <div className='mb-8' ref={modalRef} tabIndex={-1}> | |||
| <div className='space-y-2'> | |||
| <Field title={t('appDebug.variableConfig.fieldType')}> | |||