San3yuan | 03ab064 | 2025-04-29 18:00:25 +0800 | [diff] [blame] | 1 | import { useApi } from '@/hooks/request'; |
| 2 | import React, { useCallback } from 'react'; |
| 3 | import request from '@/utils/request' |
| 4 | import style from './postsPanel.module.css' |
| 5 | |
| 6 | |
| 7 | interface panelProps{ |
| 8 | name:string, |
| 9 | url:string, |
| 10 | limit:number |
| 11 | } |
| 12 | |
| 13 | const PostsPanel:React.FC<panelProps> = (props) => { |
| 14 | const fenchData = useCallback(() => request.get(props.url), [props.url]) |
| 15 | const {data} = useApi(fenchData, true); |
| 16 | |
| 17 | |
| 18 | |
| 19 | return ( |
| 20 | <div className={style.panel}> |
| 21 | <div className={style.header}> |
| 22 | <span className={style.title}>{props.name}</span> |
| 23 | <span className={style.more}>更多</span> |
| 24 | </div> |
| 25 | <div className={style.content}> |
| 26 | {data && data.length > 0 ? |
| 27 | data?.map((item: { title: string; date: string }, index: number) => ( |
| 28 | <div key={index} className={style.item}> |
| 29 | <span className={style.text}>{item.title}</span> |
| 30 | <span>{item.date}</span> |
| 31 | </div> |
| 32 | )) :( |
| 33 | <div>未查询到相关记录</div> |
| 34 | )} |
| 35 | </div> |
| 36 | </div> |
| 37 | ) |
| 38 | } |
| 39 | |
| 40 | export default PostsPanel; |