|
'use client' |
|
import type { FC } from 'react' |
|
import React, { useCallback, useState } from 'react' |
|
import { useTranslation } from 'react-i18next' |
|
import Input from './input' |
|
import Button from '@/app/components/base/button' |
|
|
|
const I18N_PREFIX = 'datasetCreation.stepOne.website' |
|
|
|
type Props = { |
|
isRunning: boolean |
|
onRun: (url: string) => void |
|
} |
|
|
|
const UrlInput: FC<Props> = ({ |
|
isRunning, |
|
onRun, |
|
}) => { |
|
const { t } = useTranslation() |
|
const [url, setUrl] = useState('') |
|
const handleUrlChange = useCallback((url: string | number) => { |
|
setUrl(url as string) |
|
}, []) |
|
const handleOnRun = useCallback(() => { |
|
if (isRunning) |
|
return |
|
onRun(url) |
|
}, [isRunning, onRun, url]) |
|
|
|
return ( |
|
<div className='flex items-center justify-between'> |
|
<Input |
|
value={url} |
|
onChange={handleUrlChange} |
|
placeholder='https://docs.dify.ai' |
|
/> |
|
<Button |
|
variant='primary' |
|
onClick={handleOnRun} |
|
className='ml-2' |
|
loading={isRunning} |
|
> |
|
{!isRunning ? t(`${I18N_PREFIX}.run`) : ''} |
|
</Button> |
|
</div> |
|
) |
|
} |
|
export default React.memo(UrlInput) |
|
|