index.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import React from "react"
  2. import Attachments from "./attachments"
  3. import Body from "./body"
  4. import {
  5. FlagBestAnswer,
  6. FlagHidden,
  7. FlagUnapproved,
  8. FlagProtected
  9. } from "./flags"
  10. import Footer from "./footer"
  11. import Header from "./header"
  12. import PostSide from "./post-side"
  13. export default function(props) {
  14. let className = "post"
  15. if (props.post.isDeleted) {
  16. className = "hide"
  17. } else if (props.post.is_hidden && !props.post.acl.can_see_hidden) {
  18. className = "post post-hidden"
  19. }
  20. if (props.post.poster && props.post.poster.rank.css_class) {
  21. className += " post-" + props.post.poster.rank.css_class
  22. }
  23. if (!props.post.is_read) {
  24. className += " post-new"
  25. }
  26. return (
  27. <li id={"post-" + props.post.id} className={className}>
  28. <div className="panel panel-default panel-post">
  29. <div className="panel-body">
  30. <div className="row">
  31. <PostSide {...props} />
  32. <div className="col-xs-12 col-md-9">
  33. <Header {...props} />
  34. <FlagBestAnswer {...props} />
  35. <FlagUnapproved {...props} />
  36. <FlagProtected {...props} />
  37. <FlagHidden {...props} />
  38. <Body {...props} />
  39. <Attachments {...props} />
  40. <Footer {...props} />
  41. </div>
  42. </div>
  43. </div>
  44. </div>
  45. </li>
  46. )
  47. }