import Image from '@/components/image'; import { IChunk } from '@/interfaces/database/knowledge'; import { Card, Checkbox, CheckboxProps, Flex, Popover, Switch } from 'antd'; import classNames from 'classnames'; import DOMPurify from 'dompurify'; import { useEffect, useState } from 'react'; import { useTheme } from '@/components/theme-provider'; 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: CheckboxProps['onChange'] = (e) => { handleCheckboxClick(item.chunk_id, e.target.checked); }; const handleContentDoubleClick = () => { editChunk(item.chunk_id); }; const handleContentClick = () => { clickChunkCard(item.chunk_id); }; useEffect(() => { setEnabled(available === 1); }, [available]); return ( {item.image_id && ( } > )}
); }; export default ChunkCard;