'use client' import type { NewKnowledgeOnlineDocumentsProvider, NewKnowledgeOnlineDocumentsSourceDraft, NewKnowledgeOnlineDriveProvider, NewKnowledgeOnlineDriveSourceDraft, NewKnowledgeSourceDraft, NewKnowledgeWebsiteSourceDraft, } from './routes' import { Button } from '@langgenius/dify-ui/button' import { cn } from '@langgenius/dify-ui/cn' import { useState } from 'react' import { useTranslation } from 'react-i18next' import { isValidWebsiteSourceDraft, NEW_KNOWLEDGE_SOURCE_NAME_MAX_LENGTH, NEW_KNOWLEDGE_SOURCE_URL_MAX_LENGTH, } from './routes' const connectedProviders = { onlineDocuments: [ { icon: 'i-custom-public-common-notion', label: 'Notion' }, { icon: 'i-ri-file-text-line', label: 'Google Docs' }, { icon: 'i-ri-links-line', label: 'Confluence' }, ], onlineDrive: [ { icon: 'i-custom-public-common-google-drive', label: 'Google Drive' }, { icon: 'i-ri-cloud-line', label: 'OneDrive' }, { icon: 'i-ri-box-3-line', label: 'Amazon S3' }, ], } as const export function PendingWebsiteSetup({ draft, onDraftChange, }: { draft: NewKnowledgeWebsiteSourceDraft onDraftChange: (draft: NewKnowledgeWebsiteSourceDraft) => void }) { const { t } = useTranslation('dataset') const [optionsExpanded, setOptionsExpanded] = useState(false) const [backendBoundaryVisible, setBackendBoundaryVisible] = useState(false) const updateDraft = (nextDraft: NewKnowledgeWebsiteSourceDraft) => { onDraftChange(nextDraft) setBackendBoundaryVisible(false) } return (
$['newKnowledge.crawlAndPreview'])}>
{optionsExpanded && (
)}

{t(($) => $['newKnowledge.pagesAppearTitle'])}

{t(($) => $['newKnowledge.pagesAppearDescription'])}

{backendBoundaryVisible && (

{t(($) => $['newKnowledge.sourceSetupBackendDependency'])}

)}
) } export function UnavailableConnectedSourceSetup({ draft, onDraftChange, }: { draft: NewKnowledgeOnlineDocumentsSourceDraft | NewKnowledgeOnlineDriveSourceDraft onDraftChange: (draft: NewKnowledgeSourceDraft) => void }) { const { t } = useTranslation('dataset') const { t: tCreation } = useTranslation('datasetCreation') const sourceType = draft.sourceType const providers = connectedProviders[sourceType] const activeProvider = draft.provider const selectProvider = (provider: string) => { if (draft.sourceType === 'onlineDocuments') onDraftChange({ ...draft, provider: provider as NewKnowledgeOnlineDocumentsProvider }) else onDraftChange({ ...draft, provider: provider as NewKnowledgeOnlineDriveProvider }) } return (
{tCreation(($) => $['stepOne.website.chooseProvider'])}
{providers.map((option) => ( ))}
{sourceType === 'onlineDrive' && (
$['newKnowledge.selectFilesAndFolders'])} className="flex min-h-40 flex-col items-center justify-center rounded-lg border border-dashed border-divider-regular px-6 text-center" >

{t(($) => $['newKnowledge.selectFilesAndFolders'])}

)}

{t(($) => $['newKnowledge.providerUnavailable'])}

) }