blob: 2916753ccecdf9f668f5e9b68fa5e94ee1999dae [file] [log] [blame]
import { useApi } from '@/hooks/request';
import React, { useCallback } from 'react';
import request from '@/utils/request'
import style from './postsPanel.module.css'
import { useNavigate } from 'react-router';
interface panelProps{
name:string,
url:string,
limit:number
}
const PostsPanel:React.FC<panelProps> = (props) => {
const nav = useNavigate();
const fenchData = useCallback(() => request.get(`${props.url}?page=1&size=5`), [props.url])
const {data} = useApi(fenchData, true);
const handlePostCheck =(postId:string) =>{
nav('/postDetail?postId=' + postId);
}
return (
<div className={style.panel}>
<div className={style.header}>
<span className={style.title}>{props.name}</span>
<span className={style.more}>更多</span>
</div>
<div className={style.content} >
{data && data.length > 0 ?
data?.map((item: {postId:string, postTitle: string; createdAt: string }, index: number) => (
<div key={index} className={style.item} onClick={()=> handlePostCheck(item.postId)} >
<span className={style.text}>{item.postTitle}</span>
<span>{item.createdAt}</span>
</div>
)) :(
<div>未查询到相关记录</div>
)}
</div>
</div>
)
}
export default PostsPanel;