guest-nav.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import React from "react"
  2. import Avatar from "misago/components/avatar"
  3. import NavbarSearch from "misago/components/navbar-search"
  4. import RegisterButton from "misago/components/register-button"
  5. import SignInModal from "misago/components/sign-in.js"
  6. import dropdown from "misago/services/mobile-navbar-dropdown"
  7. import modal from "misago/services/modal"
  8. export class GuestMenu extends React.Component {
  9. showSignInModal() {
  10. modal.show(SignInModal)
  11. }
  12. render() {
  13. return (
  14. <ul
  15. className="dropdown-menu user-dropdown dropdown-menu-right"
  16. role="menu"
  17. >
  18. <li className="guest-preview">
  19. <h4>{gettext("You are browsing as guest.")}</h4>
  20. <p>
  21. {gettext(
  22. "Sign in or register to start and participate in discussions."
  23. )}
  24. </p>
  25. <div className="row">
  26. <div className="col-xs-6">
  27. <button
  28. className="btn btn-default btn-sign-in btn-block"
  29. onClick={this.showSignInModal}
  30. type="button"
  31. >
  32. {gettext("Sign in")}
  33. </button>
  34. </div>
  35. <div className="col-xs-6">
  36. <RegisterButton className="btn-primary btn-register btn-block">
  37. {gettext("Register")}
  38. </RegisterButton>
  39. </div>
  40. </div>
  41. </li>
  42. </ul>
  43. )
  44. }
  45. }
  46. export class GuestNav extends GuestMenu {
  47. render() {
  48. return (
  49. <div className="nav nav-guest">
  50. <button
  51. className="btn navbar-btn btn-default btn-sign-in"
  52. onClick={this.showSignInModal}
  53. type="button"
  54. >
  55. {gettext("Sign in")}
  56. </button>
  57. <RegisterButton className="navbar-btn btn-primary btn-register">
  58. {gettext("Register")}
  59. </RegisterButton>
  60. <div className="navbar-left">
  61. <NavbarSearch />
  62. </div>
  63. </div>
  64. )
  65. }
  66. }
  67. export class CompactGuestNav extends React.Component {
  68. showGuestMenu() {
  69. dropdown.show(GuestMenu)
  70. }
  71. render() {
  72. return (
  73. <button type="button" onClick={this.showGuestMenu}>
  74. <Avatar size="64" />
  75. </button>
  76. )
  77. }
  78. }