mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-08 20:42:30 +08:00
### What problem does this PR solve? Fix (style): Optimized Datasets color scheme and layout #3221 - Updated background and text colors for multiple components - Adjusted some layout structures, such as the paging position of dataset tables - Unified status icons and color mapping - Optimized responsive layout to improve compatibility across different screen sizes ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
@ -12,13 +12,13 @@ const Progress = React.forwardRef<
|
|||||||
<ProgressPrimitive.Root
|
<ProgressPrimitive.Root
|
||||||
ref={ref}
|
ref={ref}
|
||||||
className={cn(
|
className={cn(
|
||||||
'relative h-4 w-full overflow-hidden rounded-full bg-secondary',
|
'relative h-4 w-full overflow-hidden rounded-full bg-bg-accent',
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
{...props}
|
{...props}
|
||||||
>
|
>
|
||||||
<ProgressPrimitive.Indicator
|
<ProgressPrimitive.Indicator
|
||||||
className="h-full w-full flex-1 bg-primary transition-all"
|
className="h-full w-full flex-1 bg-accent-primary transition-all"
|
||||||
style={{ transform: `translateX(-${100 - (value || 0)}%)` }}
|
style={{ transform: `translateX(-${100 - (value || 0)}%)` }}
|
||||||
/>
|
/>
|
||||||
</ProgressPrimitive.Root>
|
</ProgressPrimitive.Root>
|
||||||
|
|||||||
@ -3,15 +3,15 @@ import { RunningStatus } from '@/constants/knowledge';
|
|||||||
export const RunningStatusMap = {
|
export const RunningStatusMap = {
|
||||||
[RunningStatus.UNSTART]: {
|
[RunningStatus.UNSTART]: {
|
||||||
label: 'UNSTART',
|
label: 'UNSTART',
|
||||||
color: 'cyan',
|
color: 'var(--accent-primary)',
|
||||||
},
|
},
|
||||||
[RunningStatus.RUNNING]: {
|
[RunningStatus.RUNNING]: {
|
||||||
label: 'Parsing',
|
label: 'Parsing',
|
||||||
color: 'blue',
|
color: 'var(--team-member)',
|
||||||
},
|
},
|
||||||
[RunningStatus.CANCEL]: { label: 'CANCEL', color: 'orange' },
|
[RunningStatus.CANCEL]: { label: 'CANCEL', color: 'var(--state-warning)' },
|
||||||
[RunningStatus.DONE]: { label: 'SUCCESS', color: 'blue' },
|
[RunningStatus.DONE]: { label: 'SUCCESS', color: 'var(--state-success)' },
|
||||||
[RunningStatus.FAIL]: { label: 'FAIL', color: 'red' },
|
[RunningStatus.FAIL]: { label: 'FAIL', color: 'var(--state-error' },
|
||||||
};
|
};
|
||||||
|
|
||||||
export * from '@/constants/knowledge';
|
export * from '@/constants/knowledge';
|
||||||
|
|||||||
@ -164,7 +164,7 @@ export function DatasetTable({
|
|||||||
)}
|
)}
|
||||||
</TableBody>
|
</TableBody>
|
||||||
</Table>
|
</Table>
|
||||||
<div className="flex items-center justify-end py-4">
|
<div className="flex items-center justify-end py-4 absolute bottom-3 right-3">
|
||||||
<div className="space-x-2">
|
<div className="space-x-2">
|
||||||
<RAGFlowPagination
|
<RAGFlowPagination
|
||||||
{...pick(pagination, 'current', 'pageSize')}
|
{...pick(pagination, 'current', 'pageSize')}
|
||||||
|
|||||||
@ -17,7 +17,7 @@ function Dot({ run }: { run: RunningStatus }) {
|
|||||||
const runningStatus = RunningStatusMap[run];
|
const runningStatus = RunningStatusMap[run];
|
||||||
return (
|
return (
|
||||||
<span
|
<span
|
||||||
className={'size-2 inline-block rounded'}
|
className={'size-1 inline-block rounded'}
|
||||||
style={{ backgroundColor: runningStatus.color }}
|
style={{ backgroundColor: runningStatus.color }}
|
||||||
></span>
|
></span>
|
||||||
);
|
);
|
||||||
@ -89,7 +89,7 @@ export function ParsingCard({ record }: IProps) {
|
|||||||
return (
|
return (
|
||||||
<HoverCard>
|
<HoverCard>
|
||||||
<HoverCardTrigger asChild>
|
<HoverCardTrigger asChild>
|
||||||
<Button variant={'ghost'} size={'sm'}>
|
<Button variant={'transparent'} className="border-none" size={'sm'}>
|
||||||
<Dot run={record.run}></Dot>
|
<Dot run={record.run}></Dot>
|
||||||
</Button>
|
</Button>
|
||||||
</HoverCardTrigger>
|
</HoverCardTrigger>
|
||||||
|
|||||||
@ -14,7 +14,7 @@ import {
|
|||||||
import { Progress } from '@/components/ui/progress';
|
import { Progress } from '@/components/ui/progress';
|
||||||
import { Separator } from '@/components/ui/separator';
|
import { Separator } from '@/components/ui/separator';
|
||||||
import { IDocumentInfo } from '@/interfaces/database/document';
|
import { IDocumentInfo } from '@/interfaces/database/document';
|
||||||
import { CircleX, Play, RefreshCw } from 'lucide-react';
|
import { CircleX, RefreshCw } from 'lucide-react';
|
||||||
import { useCallback } from 'react';
|
import { useCallback } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { RunningStatus } from './constant';
|
import { RunningStatus } from './constant';
|
||||||
@ -24,11 +24,13 @@ import { useHandleRunDocumentByIds } from './use-run-document';
|
|||||||
import { UseSaveMetaShowType } from './use-save-meta';
|
import { UseSaveMetaShowType } from './use-save-meta';
|
||||||
import { isParserRunning } from './utils';
|
import { isParserRunning } from './utils';
|
||||||
const IconMap = {
|
const IconMap = {
|
||||||
[RunningStatus.UNSTART]: <Play />,
|
[RunningStatus.UNSTART]: (
|
||||||
[RunningStatus.RUNNING]: <CircleX />,
|
<div className="w-0 h-0 border-l-[10px] border-l-accent-primary border-t-8 border-r-4 border-b-8 border-transparent"></div>
|
||||||
[RunningStatus.CANCEL]: <RefreshCw />,
|
),
|
||||||
[RunningStatus.DONE]: <RefreshCw />,
|
[RunningStatus.RUNNING]: <CircleX size={14} />,
|
||||||
[RunningStatus.FAIL]: <RefreshCw />,
|
[RunningStatus.CANCEL]: <RefreshCw size={14} color="var(--accent-primary)" />,
|
||||||
|
[RunningStatus.DONE]: <RefreshCw size={14} color="var(--accent-primary)" />,
|
||||||
|
[RunningStatus.FAIL]: <RefreshCw size={14} color="var(--accent-primary)" />,
|
||||||
};
|
};
|
||||||
|
|
||||||
export function ParsingStatusCell({
|
export function ParsingStatusCell({
|
||||||
@ -60,11 +62,11 @@ export function ParsingStatusCell({
|
|||||||
}, [record, showSetMetaModal]);
|
}, [record, showSetMetaModal]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section className="flex gap-2 items-center">
|
<section className="flex gap-8 items-center">
|
||||||
<div className="w-28 flex items-center justify-between">
|
<div className="w-fit flex items-center justify-between">
|
||||||
<DropdownMenu>
|
<DropdownMenu>
|
||||||
<DropdownMenuTrigger asChild>
|
<DropdownMenuTrigger asChild>
|
||||||
<Button variant={'ghost'} size={'sm'}>
|
<Button variant={'transparent'} className="border-none" size={'sm'}>
|
||||||
{parser_id === 'naive' ? 'general' : parser_id}
|
{parser_id === 'naive' ? 'general' : parser_id}
|
||||||
</Button>
|
</Button>
|
||||||
</DropdownMenuTrigger>
|
</DropdownMenuTrigger>
|
||||||
@ -77,7 +79,6 @@ export function ParsingStatusCell({
|
|||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
</DropdownMenuContent>
|
</DropdownMenuContent>
|
||||||
</DropdownMenu>
|
</DropdownMenu>
|
||||||
<Separator orientation="vertical" className="h-2.5" />
|
|
||||||
</div>
|
</div>
|
||||||
<ConfirmDeleteDialog
|
<ConfirmDeleteDialog
|
||||||
title={t(`knowledgeDetails.redo`, { chunkNum: chunk_num })}
|
title={t(`knowledgeDetails.redo`, { chunkNum: chunk_num })}
|
||||||
@ -85,17 +86,17 @@ export function ParsingStatusCell({
|
|||||||
onOk={handleOperationIconClick(true)}
|
onOk={handleOperationIconClick(true)}
|
||||||
onCancel={handleOperationIconClick(false)}
|
onCancel={handleOperationIconClick(false)}
|
||||||
>
|
>
|
||||||
<Button
|
<div
|
||||||
variant={'ghost'}
|
className="cursor-pointer flex items-center gap-3"
|
||||||
size={'sm'}
|
|
||||||
onClick={
|
onClick={
|
||||||
isZeroChunk || isRunning
|
isZeroChunk || isRunning
|
||||||
? handleOperationIconClick(false)
|
? handleOperationIconClick(false)
|
||||||
: () => {}
|
: () => {}
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
|
<Separator orientation="vertical" className="h-2.5" />
|
||||||
{operationIcon}
|
{operationIcon}
|
||||||
</Button>
|
</div>
|
||||||
</ConfirmDeleteDialog>
|
</ConfirmDeleteDialog>
|
||||||
{isParserRunning(run) ? (
|
{isParserRunning(run) ? (
|
||||||
<HoverCard>
|
<HoverCard>
|
||||||
|
|||||||
@ -41,7 +41,7 @@ export function SeeAllCard() {
|
|||||||
const { navigateToDatasetList } = useNavigatePage();
|
const { navigateToDatasetList } = useNavigatePage();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Card className="w-40" onClick={navigateToDatasetList}>
|
<Card className="w-40 flex-none" onClick={navigateToDatasetList}>
|
||||||
<CardContent className="p-2.5 pt-1 w-full h-full flex items-center justify-center gap-1.5 text-text-secondary">
|
<CardContent className="p-2.5 pt-1 w-full h-full flex items-center justify-center gap-1.5 text-text-secondary">
|
||||||
See All <ChevronRight className="size-4" />
|
See All <ChevronRight className="size-4" />
|
||||||
</CardContent>
|
</CardContent>
|
||||||
|
|||||||
@ -30,7 +30,7 @@ export function Datasets() {
|
|||||||
<CardSkeleton />
|
<CardSkeleton />
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<div className="flex gap-4 flex-1">
|
<div className="grid gap-6 sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-4 xl:grid-cols-6 2xl:grid-cols-8 max-h-[78vh] overflow-auto">
|
||||||
{kbs.slice(0, 6).map((dataset) => (
|
{kbs.slice(0, 6).map((dataset) => (
|
||||||
<DatasetCard
|
<DatasetCard
|
||||||
key={dataset.id}
|
key={dataset.id}
|
||||||
|
|||||||
@ -128,7 +128,7 @@ export default function SearchPage() {
|
|||||||
</div>
|
</div>
|
||||||
<div className="absolute right-5 top-4 ">
|
<div className="absolute right-5 top-4 ">
|
||||||
<Button
|
<Button
|
||||||
className="bg-text-primary text-bg-base border-b-[#00BEB4] border-b-2"
|
className="bg-text-primary text-bg-base border-b-accent-primary border-b-2"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
handleOperate().then((res) => {
|
handleOperate().then((res) => {
|
||||||
console.log(res, 'res');
|
console.log(res, 'res');
|
||||||
|
|||||||
Reference in New Issue
Block a user