### What problem does this PR solve? Fix: Knowledge base page cannot upload folders #6062 ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)tags/v0.18.0
| <Form.Item | <Form.Item | ||||
| name={['parser_config', 'delimiter']} | name={['parser_config', 'delimiter']} | ||||
| label={t('knowledgeDetails.delimiter')} | label={t('knowledgeDetails.delimiter')} | ||||
| initialValue={`\\n!?;。;!?`} | |||||
| initialValue={`\n`} | |||||
| rules={[{ required: true }]} | rules={[{ required: true }]} | ||||
| tooltip={t('knowledgeDetails.delimiterTip')} | tooltip={t('knowledgeDetails.delimiterTip')} | ||||
| > | > |
| ); | ); | ||||
| }; | }; | ||||
| interface IFileUploadModalProps extends IModalProps<boolean | UploadFile[]> { | |||||
| interface IFileUploadModalProps | |||||
| extends IModalProps< | |||||
| { parseOnCreation: boolean; directoryFileList: UploadFile[] } | UploadFile[] | |||||
| > { | |||||
| uploadFileList?: UploadFile[]; | uploadFileList?: UploadFile[]; | ||||
| setUploadFileList?: Dispatch<SetStateAction<UploadFile[]>>; | setUploadFileList?: Dispatch<SetStateAction<UploadFile[]>>; | ||||
| uploadProgress?: number; | uploadProgress?: number; | ||||
| } | } | ||||
| const ret = await onFileUploadOk?.( | const ret = await onFileUploadOk?.( | ||||
| fileList ? parseOnCreation : [...currentFileList, ...directoryFileList], | |||||
| fileList | |||||
| ? { parseOnCreation, directoryFileList } | |||||
| : [...currentFileList, ...directoryFileList], | |||||
| ); | ); | ||||
| return ret; | return ret; | ||||
| }; | }; |
| const { runDocumentByIds, loading: _ } = useRunNextDocument(); | const { runDocumentByIds, loading: _ } = useRunNextDocument(); | ||||
| const onDocumentUploadOk = useCallback( | const onDocumentUploadOk = useCallback( | ||||
| async (parseOnCreation: boolean): Promise<number | undefined> => { | |||||
| async ({ | |||||
| parseOnCreation, | |||||
| directoryFileList, | |||||
| }: { | |||||
| directoryFileList: UploadFile[]; | |||||
| parseOnCreation: boolean; | |||||
| }): Promise<number | undefined> => { | |||||
| const processFileGroup = async (filesPart: UploadFile[]) => { | const processFileGroup = async (filesPart: UploadFile[]) => { | ||||
| // set status to uploading on files | // set status to uploading on files | ||||
| setFileList( | setFileList( | ||||
| totalSuccess: succesfulFilenames.length, | totalSuccess: succesfulFilenames.length, | ||||
| }; | }; | ||||
| }; | }; | ||||
| const totalFiles = fileList.length; | const totalFiles = fileList.length; | ||||
| if (directoryFileList.length > 0) { | |||||
| const ret = await uploadDocument(directoryFileList); | |||||
| if (ret?.code === 0) { | |||||
| hideDocumentUploadModal(); | |||||
| } | |||||
| if (totalFiles === 0) { | |||||
| return 0; | |||||
| } | |||||
| } | |||||
| if (totalFiles === 0) { | if (totalFiles === 0) { | ||||
| console.log('No files to upload'); | console.log('No files to upload'); | ||||
| hideDocumentUploadModal(); | hideDocumentUploadModal(); |