index.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. import React, { Component } from "react";
  2. import BasePage from "@/components/Layout/BasePage";
  3. import { Row, Col, Navbar, NavItem, NavLink, NavbarBrand, NavbarToggler, Nav, Collapse, Jumbotron, Button } from "reactstrap";
  4. import ContentWrapper from "@/components/Layout/ContentWrapper";
  5. import Link from "next/link";
  6. import Login from "@/components/Main/Login";
  7. import { connect } from "react-redux";
  8. import { createPengunjung } from "@/actions/pengunjung";
  9. const menu = [
  10. {
  11. title: "Home",
  12. path: "/app",
  13. },
  14. {
  15. title: "Buat Laporan",
  16. path: "/laporan/new",
  17. },
  18. {
  19. title: "Pemantauan",
  20. path: "/pemantauan",
  21. },
  22. ];
  23. class App extends Component {
  24. constructor(props) {
  25. super(props);
  26. this.state = {
  27. isOpen: false,
  28. };
  29. }
  30. static getInitialProps = ({ pathname }) => ({ pathname });
  31. async componentDidMount() {
  32. const { token } = this.props;
  33. if (!token) {
  34. await createPengunjung();
  35. }
  36. }
  37. toggleCollapse = () => {
  38. this.setState({
  39. isOpen: !this.state.isOpen,
  40. });
  41. };
  42. render() {
  43. return (
  44. <div>
  45. <Navbar className="navbar-color" expand="md" dark>
  46. <NavbarBrand href="/">
  47. <img className="width-133" src="/static/img/Logo-Sidali.png" alt="App Logo" />
  48. </NavbarBrand>
  49. <NavbarToggler onClick={this.toggleCollapse} />
  50. <Collapse isOpen={this.state.isOpen} navbar>
  51. <Nav className="ml-auto" navbar>
  52. {menu.map((e) => (
  53. <NavItem active={e.path === this.props.pathname ? true : false}>
  54. <Link href={e.path}>
  55. <NavLink style={{ cursor: "pointer" }}>{e.title}</NavLink>
  56. </Link>
  57. </NavItem>
  58. ))}
  59. </Nav>
  60. </Collapse>
  61. </Navbar>
  62. <ContentWrapper>
  63. <Jumbotron>
  64. <Row className="home-1">
  65. <Col lg={8} className="d-flex flex-column justify-content-center align-items-start">
  66. <h1 className="display-5 home-2 txt-size">Sistem Informasi Pengendalian Kelembagaan Perguruan Tinggi pada Pendidikan Tinggi Akademik</h1>
  67. <p className="lead txt-size">Layanan Pelaporan Pelanggaran Perguruan Tinggi Penyelenggara Pendidikan Tinggi Akademik</p>
  68. <hr className="my-4" />
  69. <p className="txt-size">Disediakan kepada masyarakat untuk melaporkan pelanggaran perguruan tinggi yang menyelenggarakan pendidikan tinggi akademik</p>
  70. <p className="lead">
  71. {/* <Link href="/laporan/new">
  72. <button className="btn btn-info btn-lg"><img className="icon-buatlaporan" src="/static/img/icon-buat-laporan.png" alt="icon"/>Buat Laporan</button>
  73. </Link> */}
  74. <Link href="/laporan/new">
  75. <span className="btn-radius">
  76. <Button color="" className="btn-labeled">
  77. <span className="btn-label">
  78. <img className="icon-buatlaporan" src="/static/img/icon-buat-laporan.png" alt="icon" />
  79. </span>
  80. <text className="text-button-home-1 font-color-white">Buat Laporan</text>
  81. </Button>
  82. </span>
  83. </Link>
  84. <Link href="/pemantauan">
  85. <span className="btn-radius">
  86. <Button color className="btn-labeled-2">
  87. <span className="btn-label">
  88. <img className="icon-pemantauan" src="/static/img/icon-pemantauan.png" alt="icon" />
  89. </span>
  90. <text className="text-button-home-1 font-color-white">Pemantauan</text>
  91. </Button>
  92. </span>
  93. </Link>
  94. </p>
  95. <div>
  96. <img className="ditbaga-logo" src="/static/img/ditbaga-logo.png" alt="applogo" />
  97. </div>
  98. </Col>
  99. <Col>
  100. <Login />
  101. </Col>
  102. </Row>
  103. </Jumbotron>
  104. </ContentWrapper>
  105. </div>
  106. );
  107. }
  108. }
  109. App.Layout = BasePage;
  110. const MapStateToProps = (state) => ({ token: state.token });
  111. export default connect(MapStateToProps)(App);