| 
                        123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | 
                        - 'use client'
 - import type { FC } from 'react'
 - import React, { useCallback, useEffect, useState } from 'react'
 - import NoData from './no-data'
 - import Firecrawl from './firecrawl'
 - import { useModalContext } from '@/context/modal-context'
 - import type { CrawlOptions, CrawlResultItem } from '@/models/datasets'
 - import { fetchDataSources } from '@/service/datasets'
 - import { type DataSourceItem, DataSourceProvider } from '@/models/common'
 - 
 - type Props = {
 -   onPreview: (payload: CrawlResultItem) => void
 -   checkedCrawlResult: CrawlResultItem[]
 -   onCheckedCrawlResultChange: (payload: CrawlResultItem[]) => void
 -   onJobIdChange: (jobId: string) => void
 -   crawlOptions: CrawlOptions
 -   onCrawlOptionsChange: (payload: CrawlOptions) => void
 - }
 - 
 - const Website: FC<Props> = ({
 -   onPreview,
 -   checkedCrawlResult,
 -   onCheckedCrawlResultChange,
 -   onJobIdChange,
 -   crawlOptions,
 -   onCrawlOptionsChange,
 - }) => {
 -   const { setShowAccountSettingModal } = useModalContext()
 -   const [isLoaded, setIsLoaded] = useState(false)
 -   const [isSetFirecrawlApiKey, setIsSetFirecrawlApiKey] = useState(false)
 -   const checkSetApiKey = useCallback(async () => {
 -     const res = await fetchDataSources() as any
 -     const isFirecrawlSet = res.sources.some((item: DataSourceItem) => item.provider === DataSourceProvider.fireCrawl)
 -     setIsSetFirecrawlApiKey(isFirecrawlSet)
 -   }, [])
 - 
 -   useEffect(() => {
 -     checkSetApiKey().then(() => {
 -       setIsLoaded(true)
 -     })
 -     // eslint-disable-next-line react-hooks/exhaustive-deps
 -   }, [])
 -   const handleOnConfig = useCallback(() => {
 -     setShowAccountSettingModal({
 -       payload: 'data-source',
 -       onCancelCallback: checkSetApiKey,
 -     })
 -   }, [checkSetApiKey, setShowAccountSettingModal])
 - 
 -   if (!isLoaded)
 -     return null
 - 
 -   return (
 -     <div>
 -       {isSetFirecrawlApiKey
 -         ? (
 -           <Firecrawl
 -             onPreview={onPreview}
 -             checkedCrawlResult={checkedCrawlResult}
 -             onCheckedCrawlResultChange={onCheckedCrawlResultChange}
 -             onJobIdChange={onJobIdChange}
 -             crawlOptions={crawlOptions}
 -             onCrawlOptionsChange={onCrawlOptionsChange}
 -           />
 -         )
 -         : (
 -           <NoData onConfig={handleOnConfig} />
 -         )}
 -     </div>
 -   )
 - }
 - export default React.memo(Website)
 
 
  |