| import { useNextFetchKnowledgeList } from '@/hooks/knowledge-hooks'; | |
| import { Checkbox, Layout, List, Typography } from 'antd'; | |
| import React, { useCallback } from 'react'; | |
| import { CheckboxValueType } from 'antd/es/checkbox/Group'; | |
| import styles from './index.less'; | |
| const { Header, Content, Footer, Sider } = Layout; | |
| const SearchPage = () => { | |
| const { list } = useNextFetchKnowledgeList(); | |
| const handleChange = useCallback((checkedValue: CheckboxValueType[]) => { | |
| console.log('🚀 ~ handleChange ~ args:', checkedValue); | |
| }, []); | |
| return ( | |
| <Layout hasSider> | |
| <Sider className={styles.searchSide} theme={'light'}> | |
| <Checkbox.Group className={styles.checkGroup} onChange={handleChange}> | |
| <List | |
| bordered | |
| dataSource={list} | |
| className={styles.list} | |
| renderItem={(item) => ( | |
| <List.Item> | |
| <Checkbox value={item.id} className={styles.checkbox}> | |
| <Typography.Text | |
| ellipsis={{ tooltip: item.name }} | |
| className={styles.knowledgeName} | |
| > | |
| {item.name} | |
| </Typography.Text> | |
| </Checkbox> | |
| </List.Item> | |
| )} | |
| /> | |
| </Checkbox.Group> | |
| </Sider> | |
| <Layout style={{ marginInlineStart: 200 }}> | |
| <Header style={{ padding: 0 }} /> | |
| <Content style={{ margin: '24px 16px 0', overflow: 'initial' }}> | |
| <div | |
| style={{ | |
| padding: 24, | |
| textAlign: 'center', | |
| }} | |
| > | |
| <p>long content</p> | |
| { | |
| // indicates very long content | |
| Array.from({ length: 100 }, (_, index) => ( | |
| <React.Fragment key={index}> | |
| {index % 20 === 0 && index ? 'more' : '...'} | |
| <br /> | |
| </React.Fragment> | |
| )) | |
| } | |
| </div> | |
| </Content> | |
| <Footer style={{ textAlign: 'center' }}> | |
| Ant Design ©{new Date().getFullYear()} Created by Ant UED | |
| </Footer> | |
| </Layout> | |
| </Layout> | |
| ); | |
| }; | |
| export default SearchPage; | |