dify/web/app/components/datasets/create/website/base/url-input.tsx
Stephen Zhou a84c2d36a3
style: format with vp fmt (#38803)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-12 15:57:46 +00:00

39 lines
1.1 KiB
TypeScript

'use client'
import type { FC } from 'react'
import { Button } from '@langgenius/dify-ui/button'
import * as React from 'react'
import { useCallback, useState } from 'react'
import { useTranslation } from 'react-i18next'
import { useDocLink } from '@/context/i18n'
import Input from './text-input'
const I18N_PREFIX = 'stepOne.website'
type Props = Readonly<{
isRunning: boolean
onRun: (url: string) => void
}>
const UrlInput: FC<Props> = ({ isRunning, onRun }) => {
const { t } = useTranslation()
const docLink = useDocLink()
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 gap-x-2">
<Input value={url} onChange={handleUrlChange} placeholder={docLink()} />
<Button variant="primary" onClick={handleOnRun} loading={isRunning}>
{!isRunning ? t(($) => $[`${I18N_PREFIX}.run`], { ns: 'datasetCreation' }) : ''}
</Button>
</div>
)
}
export default React.memo(UrlInput)