|
@@ -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')}>
|