index.js 1.3 KB

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