feat: add chunkText to messageText to distinguish table rows and when parsing, the delete and other buttons are set to disabled. (#130)
* feat: when parsing, the delete and other buttons are set to disabled. * feat: add chunkText to messageText to distinguish table rows
This commit is contained in:
parent
c1734be59d
commit
d56c9e7630
@ -0,0 +1,3 @@
|
||||
.iconButton {
|
||||
padding: 4px 8px;
|
||||
}
|
||||
@ -3,6 +3,9 @@ import { IKnowledgeFile } from '@/interfaces/database/knowledge';
|
||||
import { DeleteOutlined, EditOutlined, ToolOutlined } from '@ant-design/icons';
|
||||
import { Button, Dropdown, MenuProps, Space, Tooltip } from 'antd';
|
||||
import { useDispatch } from 'umi';
|
||||
import { isParserRunning } from '../utils';
|
||||
|
||||
import styles from './index.less';
|
||||
|
||||
interface IProps {
|
||||
knowledgeBaseId: string;
|
||||
@ -17,6 +20,7 @@ const ParsingActionCell = ({
|
||||
}: IProps) => {
|
||||
const dispatch = useDispatch();
|
||||
const documentId = record.id;
|
||||
const isRunning = isParserRunning(record.run);
|
||||
|
||||
const removeDocument = () => {
|
||||
dispatch({
|
||||
@ -29,7 +33,9 @@ const ParsingActionCell = ({
|
||||
};
|
||||
|
||||
const onRmDocument = () => {
|
||||
showDeleteConfirm({ onOk: removeDocument });
|
||||
if (!isRunning) {
|
||||
showDeleteConfirm({ onOk: removeDocument });
|
||||
}
|
||||
};
|
||||
|
||||
const setCurrentRecord = () => {
|
||||
@ -49,11 +55,13 @@ const ParsingActionCell = ({
|
||||
};
|
||||
|
||||
const showRenameModal = () => {
|
||||
setCurrentRecord();
|
||||
dispatch({
|
||||
type: 'kFModel/setIsShowRenameModal',
|
||||
payload: true,
|
||||
});
|
||||
if (!isRunning) {
|
||||
setCurrentRecord();
|
||||
dispatch({
|
||||
type: 'kFModel/setIsShowRenameModal',
|
||||
payload: true,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
const chunkItems: MenuProps['items'] = [
|
||||
@ -70,14 +78,38 @@ const ParsingActionCell = ({
|
||||
];
|
||||
|
||||
return (
|
||||
<Space size={'middle'}>
|
||||
<Dropdown menu={{ items: chunkItems }} trigger={['click']}>
|
||||
<ToolOutlined size={20} onClick={setDocumentAndParserId} />
|
||||
<Space size={0}>
|
||||
<Dropdown
|
||||
menu={{ items: chunkItems }}
|
||||
trigger={['click']}
|
||||
disabled={isRunning}
|
||||
>
|
||||
<Button
|
||||
type="text"
|
||||
onClick={setDocumentAndParserId}
|
||||
className={styles.iconButton}
|
||||
>
|
||||
<ToolOutlined size={20} />
|
||||
</Button>
|
||||
</Dropdown>
|
||||
<Tooltip title="Rename">
|
||||
<EditOutlined size={20} onClick={showRenameModal} />
|
||||
<Button
|
||||
type="text"
|
||||
disabled={isRunning}
|
||||
onClick={showRenameModal}
|
||||
className={styles.iconButton}
|
||||
>
|
||||
<EditOutlined size={20} />
|
||||
</Button>
|
||||
</Tooltip>
|
||||
<DeleteOutlined size={20} onClick={onRmDocument} />
|
||||
<Button
|
||||
type="text"
|
||||
disabled={isRunning}
|
||||
onClick={onRmDocument}
|
||||
className={styles.iconButton}
|
||||
>
|
||||
<DeleteOutlined size={20} />
|
||||
</Button>
|
||||
</Space>
|
||||
);
|
||||
};
|
||||
|
||||
@ -6,6 +6,7 @@ import { Badge, DescriptionsProps, Flex, Popover, Space, Tag } from 'antd';
|
||||
import reactStringReplace from 'react-string-replace';
|
||||
import { useDispatch } from 'umi';
|
||||
import { RunningStatus, RunningStatusMap } from '../constant';
|
||||
import { isParserRunning } from '../utils';
|
||||
import styles from './index.less';
|
||||
|
||||
const iconMap = {
|
||||
@ -77,7 +78,7 @@ export const ParsingStatusCell = ({ record }: IProps) => {
|
||||
const text = record.run;
|
||||
const runningStatus = RunningStatusMap[text];
|
||||
|
||||
const isRunning = text === RunningStatus.RUNNING;
|
||||
const isRunning = isParserRunning(text);
|
||||
|
||||
const OperationIcon = iconMap[text];
|
||||
|
||||
|
||||
@ -0,0 +1,6 @@
|
||||
import { RunningStatus } from './constant';
|
||||
|
||||
export const isParserRunning = (text: RunningStatus) => {
|
||||
const isRunning = text === RunningStatus.RUNNING;
|
||||
return isRunning;
|
||||
};
|
||||
@ -25,6 +25,7 @@
|
||||
flex-direction: row-reverse;
|
||||
}
|
||||
.messageText {
|
||||
.chunkText();
|
||||
padding: 0 14px;
|
||||
background-color: rgba(249, 250, 251, 1);
|
||||
word-break: break-all;
|
||||
|
||||
@ -262,12 +262,12 @@ const ChatContainer = () => {
|
||||
if (!loading) {
|
||||
setValue('');
|
||||
addNewestConversation(value);
|
||||
sendMessage(value);
|
||||
sendMessage(value.trim());
|
||||
}
|
||||
};
|
||||
|
||||
const handleInputChange: ChangeEventHandler<HTMLInputElement> = (e) => {
|
||||
const value = e.target.value.trim();
|
||||
const value = e.target.value;
|
||||
const nextValue = value.replaceAll('\\n', '\n').replaceAll('\\t', '\t');
|
||||
setValue(nextValue);
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user