footer.js 917 B

1234567891011121314151617181920212223242526272829
  1. // jshint ignore:start
  2. import React from 'react';
  3. import MisagoMarkup from 'misago/components/misago-markup';
  4. import escapeHtml from 'misago/utils/escape-html';
  5. const CATEGORY_SPAN = '<span class="category-name">%(name)s</span>';
  6. const THREAD_SPAN = '<span class="item-title">%(title)s</span>';
  7. export default function(props) {
  8. const template = gettext('%(posted_on)s in "%(thread)s", %(category)s');
  9. const message = interpolate(escapeHtml(template), {
  10. category: interpolate(CATEGORY_SPAN, {
  11. name: escapeHtml(props.category.name)
  12. }, true),
  13. thread: interpolate(THREAD_SPAN, {
  14. title: escapeHtml(props.thread.title)
  15. }, true),
  16. posted_on: escapeHtml(props.post.hidden_on.fromNow()),
  17. }, true);
  18. return (
  19. <div className="panel-footer post-infeed-footer">
  20. <a
  21. dangerouslySetInnerHTML={{__html: message}}
  22. href={props.post.url.index}
  23. />
  24. </div>
  25. );
  26. }