threads.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { paths } from "misago/components/threads/root"
  2. import misago from "misago/index"
  3. import mount from "misago/utils/routed-component"
  4. const PRIVATE_THREADS_LIST = "misago:private-threads"
  5. export default function initializer(context) {
  6. if (context.has("THREADS") && context.has("CATEGORIES")) {
  7. mount({
  8. paths: paths(context.get("user"), getListOptions(context))
  9. })
  10. }
  11. }
  12. export function getListOptions(context) {
  13. const currentLink = context.get("CURRENT_LINK")
  14. if (
  15. currentLink.substr(0, PRIVATE_THREADS_LIST.length) === PRIVATE_THREADS_LIST
  16. ) {
  17. return {
  18. api: context.get("PRIVATE_THREADS_API"),
  19. startThread: {
  20. mode: "START_PRIVATE",
  21. submit: misago.get("PRIVATE_THREADS_API")
  22. },
  23. title: gettext("Private threads"),
  24. pageLead: gettext(
  25. "Private threads are threads which only those that started them and those they have invited may see and participate in."
  26. ),
  27. emptyMessage: gettext("You aren't participating in any private threads.")
  28. }
  29. }
  30. return {
  31. api: context.get("THREADS_API")
  32. }
  33. }
  34. misago.addInitializer({
  35. name: "component:threads",
  36. initializer: initializer,
  37. after: "store"
  38. })