root.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import React from "react"
  2. import { connect } from "react-redux"
  3. import ActivePosters from "misago/components/users/active-posters/root"
  4. import Rank from "misago/components/users/rank/root"
  5. import WithDropdown from "misago/components/with-dropdown"
  6. import misago from "misago/index"
  7. import {
  8. PageHeader,
  9. PageHeaderBanner,
  10. PageHeaderContainer,
  11. } from "../PageHeader"
  12. export default class extends WithDropdown {
  13. render() {
  14. return (
  15. <div className="page page-users-lists">
  16. <PageHeaderContainer>
  17. <PageHeader styleName="users-lists">
  18. <PageHeaderBanner styleName="users-lists">
  19. <h1>{gettext("Users")}</h1>
  20. </PageHeaderBanner>
  21. </PageHeader>
  22. </PageHeaderContainer>
  23. {this.props.children}
  24. </div>
  25. )
  26. }
  27. }
  28. export function select(store) {
  29. return {
  30. tick: store.tick.tick,
  31. user: store.auth.user,
  32. users: store.users,
  33. }
  34. }
  35. export function paths() {
  36. let paths = []
  37. misago.get("USERS_LISTS").forEach(function (item) {
  38. if (item.component === "rank") {
  39. paths.push({
  40. path: misago.get("USERS_LIST_URL") + item.slug + "/:page/",
  41. component: connect(select)(Rank),
  42. rank: item,
  43. })
  44. paths.push({
  45. path: misago.get("USERS_LIST_URL") + item.slug + "/",
  46. component: connect(select)(Rank),
  47. rank: item,
  48. })
  49. } else if (item.component === "active-posters") {
  50. paths.push({
  51. path: misago.get("USERS_LIST_URL") + item.component + "/",
  52. component: connect(select)(ActivePosters),
  53. extra: {
  54. name: item.name,
  55. },
  56. })
  57. }
  58. })
  59. return paths
  60. }