import Image from '@/components/image'; import { useTheme } from '@/components/theme-provider'; import { Card } from '@/components/ui/card'; import { Checkbox } from '@/components/ui/checkbox'; import { Popover, PopoverContent, PopoverTrigger, } from '@/components/ui/popover'; import { Switch } from '@/components/ui/switch'; import { IChunk } from '@/interfaces/database/knowledge'; import { CheckedState } from '@radix-ui/react-checkbox'; import classNames from 'classnames'; import DOMPurify from 'dompurify'; import { useEffect, useState } from 'react'; import { ChunkTextMode } from '../../constant'; import styles from './index.less'; interface IProps { item: IChunk; checked: boolean; switchChunk: (available?: number, chunkIds?: string[]) => void; editChunk: (chunkId: string) => void; handleCheckboxClick: (chunkId: string, checked: boolean) => void; selected: boolean; clickChunkCard: (chunkId: string) => void; textMode: ChunkTextMode; } const ChunkCard = ({ item, checked, handleCheckboxClick, editChunk, switchChunk, selected, clickChunkCard, textMode, }: IProps) => { const available = Number(item.available_int); const [enabled, setEnabled] = useState(false); const { theme } = useTheme(); const onChange = (checked: boolean) => { setEnabled(checked); switchChunk(available === 0 ? 1 : 0, [item.chunk_id]); }; const handleCheck = (e: CheckedState) => { handleCheckboxClick(item.chunk_id, e === 'indeterminate' ? false : e); }; const handleContentDoubleClick = () => { editChunk(item.chunk_id); }; const handleContentClick = () => { clickChunkCard(item.chunk_id); }; useEffect(() => { setEnabled(available === 1); }, [available]); const [open, setOpen] = useState(false); return (
{item.image_id && ( setOpen(true)} onMouseLeave={() => setOpen(false)} >
)}
); }; export default ChunkCard;