mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-08 20:42:30 +08:00
### What problem does this PR solve? Fix: Optimized the timeline component and parser editing features #9869 - Introduced the TimelineNodeType type, restructured the timeline node structure, and supported dynamic node generation - Enhanced the FormatPreserveEditor component to support editing and line wrapping of JSON-formatted content - Added a rerun function and loading state to the parser and splitter components - Adjusted the timeline style and interaction logic to enhance the user experience - Improved the modal component and added a destroy method to support more flexible control - Optimized the chunk result display and operation logic, supporting batch deletion and selection ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)
58 lines
1.7 KiB
TypeScript
58 lines
1.7 KiB
TypeScript
import { TimelineNode } from '@/components/originui/timeline';
|
|
import SvgIcon from '@/components/svg-icon';
|
|
import { Button } from '@/components/ui/button';
|
|
import { Modal } from '@/components/ui/modal/modal';
|
|
import { CircleAlert } from 'lucide-react';
|
|
import { useTranslation } from 'react-i18next';
|
|
interface RerunButtonProps {
|
|
className?: string;
|
|
step?: TimelineNode;
|
|
onRerun?: () => void;
|
|
loading?: boolean;
|
|
}
|
|
const RerunButton = (props: RerunButtonProps) => {
|
|
const { className, step, onRerun, loading } = props;
|
|
const { t } = useTranslation();
|
|
const clickFunc = () => {
|
|
console.log('click rerun button');
|
|
Modal.show({
|
|
visible: true,
|
|
className: '!w-[560px]',
|
|
title: t('dataflowParser.confirmRerun'),
|
|
children: (
|
|
<div
|
|
dangerouslySetInnerHTML={{
|
|
__html: t('dataflowParser.confirmRerunModalContent', {
|
|
step: step?.title,
|
|
}),
|
|
}}
|
|
></div>
|
|
),
|
|
okText: t('modal.okText'),
|
|
cancelText: t('modal.cancelText'),
|
|
onVisibleChange: (visible: boolean) => {
|
|
if (!visible) {
|
|
Modal.destroy();
|
|
} else {
|
|
onRerun?.();
|
|
Modal.destroy();
|
|
}
|
|
},
|
|
});
|
|
};
|
|
return (
|
|
<div className="flex flex-col gap-2">
|
|
<div className="text-xs text-text-primary flex items-center gap-1">
|
|
<CircleAlert color="#d29e2d" strokeWidth={1} size={12} />
|
|
{t('dataflowParser.rerunFromCurrentStepTip')}
|
|
</div>
|
|
<Button onClick={clickFunc} disabled={loading}>
|
|
<SvgIcon name="rerun" width={16} />
|
|
{t('dataflowParser.rerunFromCurrentStep')}
|
|
</Button>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default RerunButton;
|