| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | '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)
 |