import { useNextFetchKnowledgeList } from '@/hooks/knowledge-hooks'; import type { CheckboxProps } from 'antd'; import { Checkbox, Layout, List, Typography } from 'antd'; import { CheckboxValueType } from 'antd/es/checkbox/Group'; import { useCallback, useMemo, useState } from 'react'; import { CheckboxChangeEvent } from 'antd/es/checkbox'; import styles from './index.less'; const { Sider } = Layout; const SearchSidebar = () => { const { list } = useNextFetchKnowledgeList(); const ids = useMemo(() => list.map((x) => x.id), [list]); const [checkedList, setCheckedList] = useState(ids); const checkAll = list.length === checkedList.length; const indeterminate = checkedList.length > 0 && checkedList.length < list.length; const onChange = useCallback((list: CheckboxValueType[]) => { setCheckedList(list as string[]); }, []); const onCheckAllChange: CheckboxProps['onChange'] = useCallback( (e: CheckboxChangeEvent) => { setCheckedList(e.target.checked ? ids : []); }, [ids], ); return ( Check all ( {item.name} )} /> ); }; export default SearchSidebar;