import { type CodeConfigData } from '@/pages/CodeConfig/List'; import { getGitUrl } from '@/utils'; import { Checkbox, Flex, Typography } from 'antd'; import { type CheckboxChangeEvent } from 'antd/es/checkbox'; import classNames from 'classnames'; import { useState } from 'react'; import styles from './index.less'; type CodeConfigItemProps = { item: CodeConfigData; checked: boolean; onChange?: (item: CodeConfigData, checked: boolean) => void; }; function CodeConfigItem({ item, checked, onChange }: CodeConfigItemProps) { const [isEllipsis, setIsEllipsis] = useState(false); const openProject = (e: React.MouseEvent) => { e.stopPropagation(); const { git_url, git_branch } = item; const url = getGitUrl(git_url, git_branch); window.open(url, '_blank'); }; const handleChange = (e: CheckboxChangeEvent) => { onChange?.(item, e.target.checked); }; return (
{item.code_repo_name}
{item.is_public ? '公开' : '私有'}
setIsEllipsis(ellipsis), // 必须这样,不然不能省略 }} onClick={openProject} > {item.git_url} {item.git_branch}
); } export default CodeConfigItem;