import React from "react"; import classNames from "classnames"; import Post from "./Post"; const PostList = ({ className, items, canThumb, canRunActions, onLike, onDislike, onHide, onBanUser, onAnnounceProcedureProposal, onAcceptProcedureProposal, onRejectProcedureProposal, onRejectProcedureProposalByChairman, onSeen, dimArchived, }) => { const buildHandler = (responderFn) => (post) => (evt) => { evt.preventDefault(); responderFn(post); }; const onPostLike = buildHandler(onLike); const onPostDislike = buildHandler(onDislike); const onPostHide = buildHandler(onHide); const onPostBanUser = buildHandler(onBanUser); const onPostAnnounceProcedureProposal = buildHandler( onAnnounceProcedureProposal ); const onPostAcceptProcedureProposal = buildHandler(onAcceptProcedureProposal); const onPostRejectProcedureProposal = buildHandler(onRejectProcedureProposal); const onPostRejectProcedureProposalByChairman = buildHandler( onRejectProcedureProposalByChairman ); const onPostSeen = (post) => () => { onSeen(post); }; return ( <div className={classNames("space-y-px", className)}> {items .filter((item) => !item.hidden) .map((item) => ( <Post key={item.id} datetime={item.datetime} author={item.author} type={item.type} state={item.state} content={item.content} ranking={item.ranking} historyLog={item.historyLog} modified={item.modified} seen={item.seen} archived={item.archived} dimIfArchived={dimArchived} canThumb={canThumb} canRunActions={canRunActions} onLike={onPostLike(item)} onDislike={onPostDislike(item)} onHide={onPostHide(item)} onBanUser={onPostBanUser(item)} onAnnounceProcedureProposal={onPostAnnounceProcedureProposal(item)} onAcceptProcedureProposal={onPostAcceptProcedureProposal(item)} onRejectProcedureProposal={onPostRejectProcedureProposal(item)} onRejectProcedureProposalByChairman={onPostRejectProcedureProposalByChairman( item )} onSeen={onPostSeen(item)} /> ))} {!items.length && ( <p>Nikdo zatím žádný příspěvek do rozpravy nepřidal. Budeš první?</p> )} </div> ); }; export default PostList;