diff --git a/web/src/components/chunk-method-modal/index.tsx b/web/src/components/chunk-method-modal/index.tsx index 759541196..f4ecbd958 100644 --- a/web/src/components/chunk-method-modal/index.tsx +++ b/web/src/components/chunk-method-modal/index.tsx @@ -68,13 +68,26 @@ const ChunkMethodModal: React.FC = ({ onOk(selectedTag, parser_config); }; + const isPdf = documentExtension === 'pdf'; + const showPages = useMemo(() => { - return hidePagesChunkMethods.every((x) => x !== selectedTag); - }, [selectedTag]); + return isPdf && hidePagesChunkMethods.every((x) => x !== selectedTag); + }, [selectedTag, isPdf]); const showOne = useMemo(() => { - return showPages || selectedTag === 'one'; - }, [showPages, selectedTag]); + return ( + isPdf && + hidePagesChunkMethods + .filter((x) => x !== 'one') + .every((x) => x !== selectedTag) + ); + }, [selectedTag, isPdf]); + + const showMaxTokenNumber = selectedTag === 'naive'; + + const hideDivider = [showPages, showOne, showMaxTokenNumber].every( + (x) => x === false, + ); const afterClose = () => { form.resetFields(); @@ -116,166 +129,161 @@ const ChunkMethodModal: React.FC = ({ })} - - - {documentExtension === 'pdf' && ( -
- {showPages && ( - <> - -

Page Ranges:

- - - -
- - {(fields, { add, remove }) => ( - <> - {fields.map(({ key, name, ...restField }) => ( - - 0 ? [name - 1, 'to'] : []} - rules={[ - { - required: true, - message: 'Missing start page number', + {hideDivider || } + + {showPages && ( + <> + +

Page Ranges:

+ + + +
+ + {(fields, { add, remove }) => ( + <> + {fields.map(({ key, name, ...restField }) => ( + + 0 ? [name - 1, 'to'] : []} + rules={[ + { + required: true, + message: 'Missing start page number', + }, + ({ getFieldValue }) => ({ + validator(_, value) { + if ( + name === 0 || + !value || + getFieldValue(['pages', name - 1, 'to']) < value + ) { + return Promise.resolve(); + } + return Promise.reject( + new Error( + 'The current value must be greater than the previous to!', + ), + ); }, - ({ getFieldValue }) => ({ - validator(_, value) { - if ( - name === 0 || - !value || - getFieldValue(['pages', name - 1, 'to']) < - value - ) { - return Promise.resolve(); - } - return Promise.reject( - new Error( - 'The current value must be greater than the previous to!', - ), - ); - }, - }), - ]} - > - - - ({ - validator(_, value) { - if ( - !value || - getFieldValue(['pages', name, 'from']) < value - ) { - return Promise.resolve(); - } - return Promise.reject( - new Error( - 'The current value must be greater than to!', - ), - ); - }, - }), - ]} - > - - - {name > 0 && ( - remove(name)} /> - )} - - ))} - - - - - )} - - - )} - {showOne && ( - - - - )} - {showPages && ( - - {({ getFieldValue }) => - getFieldValue(['parser_config', 'layout_recognize']) && ( - - + + + ({ + validator(_, value) { + if ( + !value || + getFieldValue(['pages', name, 'from']) < value + ) { + return Promise.resolve(); + } + return Promise.reject( + new Error( + 'The current value must be greater than to!', + ), + ); + }, + }), + ]} + > + + + {name > 0 && ( + remove(name)} /> + )} +
+ ))} + + - ) - } - - )} - - {selectedTag === 'naive' && } - - )} + + )} +
+ + )} + {showOne && ( + + + + )} + {showPages && ( + + {({ getFieldValue }) => + getFieldValue(['parser_config', 'layout_recognize']) && ( + + + + ) + } + + )} + {showMaxTokenNumber && } + ); };