| const language = getLanguage(locale) | const language = getLanguage(locale) | ||||
| const [credentialsModalShow, setCredentialsModalShow] = useState(false) | const [credentialsModalShow, setCredentialsModalShow] = useState(false) | ||||
| const [tempCredential, setTempCredential] = React.useState<Credential>(customCollection.credentials) | const [tempCredential, setTempCredential] = React.useState<Credential>(customCollection.credentials) | ||||
| const [testing, setTesting] = useState(false) | |||||
| const [result, setResult] = useState<string>('') | const [result, setResult] = useState<string>('') | ||||
| const { operation_id: toolName, parameters } = tool | const { operation_id: toolName, parameters } = tool | ||||
| const [parametersValue, setParametersValue] = useState<Record<string, string>>({}) | const [parametersValue, setParametersValue] = useState<Record<string, string>>({}) | ||||
| const handleTest = async () => { | const handleTest = async () => { | ||||
| if (testing) return | |||||
| setTesting(true) | |||||
| // clone test schema | // clone test schema | ||||
| const credentials = JSON.parse(JSON.stringify(tempCredential)) as Credential | const credentials = JSON.parse(JSON.stringify(tempCredential)) as Credential | ||||
| if (credentials.auth_type === AuthType.none) { | if (credentials.auth_type === AuthType.none) { | ||||
| } | } | ||||
| const res = await testAPIAvailable(data) as any | const res = await testAPIAvailable(data) as any | ||||
| setResult(res.error || res.result) | setResult(res.error || res.result) | ||||
| setTesting(false) | |||||
| } | } | ||||
| return ( | return ( | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <Button variant='primary' className=' mt-4 h-10 w-full' onClick={handleTest}>{t('tools.test.title')}</Button> | |||||
| <Button variant='primary' className=' mt-4 h-10 w-full' loading={testing} disabled={testing} onClick={handleTest}>{t('tools.test.title')}</Button> | |||||
| <div className='mt-6'> | <div className='mt-6'> | ||||
| <div className='flex items-center space-x-3'> | <div className='flex items-center space-x-3'> | ||||
| <div className='system-xs-semibold text-text-tertiary'>{t('tools.test.testResult')}</div> | <div className='system-xs-semibold text-text-tertiary'>{t('tools.test.testResult')}</div> |