guest-nav.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import React from 'react';
  2. import Avatar from 'misago/components/avatar'; // jshint ignore:line
  3. import RegisterButton from 'misago/components/register-button'; // jshint ignore:line
  4. import SignInModal from 'misago/components/sign-in.js';
  5. import dropdown from 'misago/services/mobile-navbar-dropdown';
  6. import modal from 'misago/services/modal';
  7. export class GuestMenu extends React.Component {
  8. showSignInModal() {
  9. modal.show(SignInModal);
  10. }
  11. render() {
  12. /* jshint ignore:start */
  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('Sign in or register to start and participate in discussions.')}
  22. </p>
  23. <div className="row">
  24. <div className="col-xs-6">
  25. <button
  26. className="btn btn-default btn-block"
  27. onClick={this.showSignInModal}
  28. type="button"
  29. >
  30. {gettext("Sign in")}
  31. </button>
  32. </div>
  33. <div className="col-xs-6">
  34. <RegisterButton className="btn-success btn-block">
  35. {gettext("Register")}
  36. </RegisterButton>
  37. </div>
  38. </div>
  39. </li>
  40. </ul>
  41. );
  42. /* jshint ignore:end */
  43. }
  44. }
  45. export class GuestNav extends GuestMenu {
  46. render() {
  47. /* jshint ignore:start */
  48. return (
  49. <div className="nav nav-guest">
  50. <button
  51. className="btn navbar-btn btn-default"
  52. onClick={this.showSignInModal}
  53. type="button"
  54. >
  55. {gettext("Sign in")}
  56. </button>
  57. <RegisterButton className="navbar-btn btn-success btn-outline">
  58. {gettext("Register")}
  59. </RegisterButton>
  60. </div>
  61. );
  62. /* jshint ignore:end */
  63. }
  64. }
  65. export class CompactGuestNav extends React.Component {
  66. showGuestMenu() {
  67. dropdown.show(GuestMenu);
  68. }
  69. render() {
  70. /* jshint ignore:start */
  71. return (
  72. <button type="button" onClick={this.showGuestMenu}>
  73. <Avatar size="64" />
  74. </button>
  75. );
  76. /* jshint ignore:end */
  77. }
  78. }