wwf
3 天以前 a430284aa21e3ae1f0d5654e55b2ad2852519cc2
app/components/header/account-setting/data-source-page/data-source-website/index.tsx
@@ -5,15 +5,19 @@
import Panel from '../panel'
import { DataSourceType } from '../panel/types'
import ConfigFirecrawlModal from './config-firecrawl-modal'
import ConfigWatercrawlModal from './config-watercrawl-modal'
import ConfigJinaReaderModal from './config-jina-reader-modal'
import cn from '@/utils/classnames'
import s from '@/app/components/datasets/create/website/index.module.css'
import { fetchDataSources, removeDataSourceApiKeyBinding } from '@/service/datasets'
import type { DataSourceItem } from '@/models/common'
import { DataSourceProvider } from '@/models/common'
import type {
  DataSourceItem,
} from '@/models/common'
import { useAppContext } from '@/context/app-context'
import {
  DataSourceProvider,
} from '@/models/common'
import Toast from '@/app/components/base/toast'
type Props = {
@@ -54,16 +58,6 @@
    return source?.id
  }
  const getProviderName = (provider: DataSourceProvider): string => {
    if (provider === DataSourceProvider.fireCrawl)
      return 'Firecrawl'
    if (provider === DataSourceProvider.waterCrawl)
      return 'WaterCrawl'
    return 'Jina Reader'
  }
  const handleRemove = useCallback((provider: DataSourceProvider) => {
    return async () => {
      const dataSourceId = getIdByProvider(provider)
@@ -88,42 +82,27 @@
        readOnly={!isCurrentWorkspaceManager}
        configuredList={sources.filter(item => item.provider === provider).map(item => ({
          id: item.id,
          logo: ({ className }: { className: string }) => {
            if (item.provider === DataSourceProvider.fireCrawl) {
              return (
                <div
                  className={cn(className, 'ml-3 flex h-5 w-5 items-center justify-center rounded border border-divider-subtle !bg-background-default text-xs font-medium text-text-tertiary')}>🔥</div>
          logo: ({ className }: { className: string }) => (
            item.provider === DataSourceProvider.fireCrawl
              ? (
                <div className={cn(className, 'flex items-center justify-center w-5 h-5 bg-white border border-gray-100 text-xs font-medium text-gray-500 rounded ml-3')}>🔥</div>
              )
            }
            if (item.provider === DataSourceProvider.waterCrawl) {
              return (
                <div
                  className={cn(className, 'ml-3 flex h-5 w-5 items-center justify-center rounded border border-divider-subtle !bg-background-default text-xs font-medium text-text-tertiary')}>
                  <span className={s.watercrawlLogo}/>
              : (
                <div className={cn(className, 'flex items-center justify-center w-5 h-5 bg-white border border-gray-100 text-xs font-medium text-gray-500 rounded ml-3')}>
                  <span className={s.jinaLogo} />
                </div>
              )
            }
            return (
              <div
                className={cn(className, 'ml-3 flex h-5 w-5 items-center justify-center rounded border border-divider-subtle !bg-background-default text-xs font-medium text-text-tertiary')}>
                <span className={s.jinaLogo}/>
              </div>
            )
          },
          name: getProviderName(item.provider),
          ),
          name: item.provider === DataSourceProvider.fireCrawl ? 'Firecrawl' : 'Jina Reader',
          isActive: true,
        }))}
        onRemove={handleRemove(provider)}
      />
      {configTarget === DataSourceProvider.fireCrawl && (
        <ConfigFirecrawlModal onSaved={handleAdded} onCancel={hideConfig}/>
      )}
      {configTarget === DataSourceProvider.waterCrawl && (
        <ConfigWatercrawlModal onSaved={handleAdded} onCancel={hideConfig}/>
        <ConfigFirecrawlModal onSaved={handleAdded} onCancel={hideConfig} />
      )}
      {configTarget === DataSourceProvider.jinaReader && (
        <ConfigJinaReaderModal onSaved={handleAdded} onCancel={hideConfig}/>
        <ConfigJinaReaderModal onSaved={handleAdded} onCancel={hideConfig} />
      )}
    </>