post.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // jshint ignore:start
  2. import React from 'react';
  3. import PostFooter from './footer';
  4. import MisagoMarkup from 'misago/components/misago-markup';
  5. export default function(props) {
  6. let className = 'post post-infeed';
  7. if (!props.post.is_read) {
  8. className += ' post-new';
  9. }
  10. return (
  11. <li id={'post-' + props.post.id} className={className}>
  12. <div className="post-border">
  13. <div className="post-body">
  14. <div className="panel panel-default panel-post">
  15. <PostBody content={props.post.content} />
  16. <PostFooter
  17. category={props.post.category}
  18. post={props.post}
  19. thread={props.post.thread}
  20. />
  21. </div>
  22. </div>
  23. </div>
  24. </li>
  25. );
  26. }
  27. export function PostBody(props) {
  28. if (props.content) {
  29. return (
  30. <div className="panel-body">
  31. <MisagoMarkup markup={props.content} />
  32. </div>
  33. );
  34. }
  35. return (
  36. <div className="panel-body panel-body-invalid">
  37. <p className="lead">{gettext("This post's contents cannot be displayed.")}</p>
  38. <p className="text-muted">{gettext("This error is caused by invalid post content manipulation.")}</p>
  39. </div>
  40. );
  41. }