Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 

250 rindas
14 KiB

  1. import React, { useState } from "react";
  2. import Link from '@/utils/ActiveLink';
  3. import * as Icon from 'react-feather';
  4. export default function NavbarYamaha({ company,icon,username, ...props }) {
  5. const [menu, setMenu] = React.useState(true)
  6. const toggleNavbar = () => {
  7. setMenu(!menu)
  8. }
  9. React.useEffect(() => {
  10. let elementId = document.getElementById("header");
  11. document.addEventListener("scroll", () => {
  12. if (window.scrollY > 170) {
  13. elementId.classList.add("is-sticky");
  14. } else {
  15. elementId.classList.remove("is-sticky");
  16. }
  17. });
  18. window.scrollTo(0, 0);
  19. })
  20. const classOne = menu ? 'collapse navbar-collapse' : 'collapse navbar-collapse show';
  21. const classTwo = menu ? 'navbar-toggler navbar-toggler-right collapsed' : 'navbar-toggler navbar-toggler-right';
  22. return (
  23. <header id="header" className="headroom navbar-style-two">
  24. <div className="startp-nav">
  25. <div className="container">
  26. <nav className="navbar navbar-expand-md navbar-light">
  27. <Link href={`/${company}`}>
  28. <a onClick={toggleNavbar} className="navbar-brand">
  29. <img src={`/api/util?img=${encodeURIComponent(icon)}`} style={{"maxWidth": "180px","maxHeight": "80px"}} alt="logo" />
  30. </a>
  31. </Link>
  32. <button
  33. onClick={toggleNavbar}
  34. className={classTwo}
  35. type="button"
  36. data-toggle="collapse"
  37. data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
  38. aria-expanded="false"
  39. aria-label="Toggle navigation"
  40. >
  41. <span className="icon-bar top-bar"></span>
  42. <span className="icon-bar middle-bar"></span>
  43. <span className="icon-bar bottom-bar"></span>
  44. </button>
  45. <div className={classOne} id="navbarSupportedContent">
  46. <ul className="navbar-nav ms-auto">
  47. <li className="nav-item">
  48. <Link href={`/${company}`} activeClassName="active">
  49. <a onClick={toggleNavbar} className="nav-link">
  50. Home
  51. </a>
  52. </Link>
  53. </li>
  54. <li className="nav-item">
  55. <Link href='/#'>
  56. <a onClick={e => e.preventDefault()} className="nav-link">
  57. Product <Icon.ChevronDown />
  58. </a>
  59. </Link>
  60. <ul className="dropdown-menu">
  61. <li className="nav-item">
  62. <Link href={`/${company}/product/motor`} activeClassName="active">
  63. <a onClick={toggleNavbar} className="nav-link">Unit Product</a>
  64. </Link>
  65. </li>
  66. <li className="nav-item">
  67. <Link href={`/${company}/product/sparepart`} activeClassName="active">
  68. <a onClick={toggleNavbar} className="nav-link">Sparepart Product</a>
  69. </Link>
  70. </li>
  71. {(company==="yamaha")?(
  72. <li className="nav-item">
  73. <Link href="https://booking.thamrin.co.id/" activeClassName="active">
  74. <a target="_blank" onClick={toggleNavbar} className="nav-link">Service Product</a>
  75. </Link>
  76. </li>
  77. ):""}
  78. </ul>
  79. </li>
  80. <li className="nav-item">
  81. <Link href={`/${company||'yamaha'}/news`}>
  82. <a onClick={toggleNavbar} className="nav-link">
  83. Latest News
  84. </a>
  85. </Link>
  86. </li>
  87. {/* <li className="nav-item">
  88. <Link href="/yamaha/Carrer" activeClassName="active">
  89. <a onClick={toggleNavbar} className="nav-link">
  90. Carrer
  91. </a>
  92. </Link>
  93. </li> */}
  94. <li className="nav-item">
  95. <Link href={`/${company||'yamaha'}/about`}>
  96. <a onClick={toggleNavbar} className="nav-link">
  97. About Us
  98. </a>
  99. </Link>
  100. </li>
  101. <li className="nav-item">
  102. <Link href={`/${company}/contact`} activeClassName="active">
  103. <a onClick={toggleNavbar} className="nav-link">Contact</a>
  104. </Link>
  105. </li>
  106. </ul>
  107. </div>
  108. <div style={{display : 'none'}} className="others-option">
  109. <Link href="/company/yamaha/login">
  110. {!username || username == "" ? (
  111. <Link href="/company/yamaha/login">
  112. <a className="btn btn-primary">Login</a>
  113. </Link>
  114. ) : (
  115. <ul className="navbar-nav ms-auto">
  116. <li className="nav-item">
  117. <Link href='/#'>
  118. <a onClick={e => e.preventDefault()} className="nav-link" >
  119. {username} <Icon.ChevronDown />
  120. </a>
  121. </Link>
  122. <ul className="dropdown-menu">
  123. <li className="nav-item">
  124. <Link href="/company/yamaha/Profile" activeClassName="active">
  125. <a onClick={toggleNavbar} className="nav-link">Profile</a>
  126. </Link>
  127. </li>
  128. <li className="nav-item">
  129. <Link href="/company/yamaha/Shop/Cart">
  130. <a className="cart-wrapper-btn">
  131. <Icon.ShoppingCart />
  132. </a>
  133. </Link>
  134. </li>
  135. <li className="nav-item">
  136. <Link href="/company/yamaha/Shop/Checkout" activeClassName="active">
  137. <a onClick={toggleNavbar} className="nav-link">Checkout</a>
  138. </Link>
  139. </li>
  140. <li className="nav-item">
  141. <Link href="/company/yamaha/product/sparepart" activeClassName="active">
  142. <a onClick={toggleNavbar} className="nav-link">Pesanan Saya</a>
  143. </Link>
  144. </li>
  145. {(company=="yamaha")
  146. ?(
  147. <li className="nav-item">
  148. <div
  149. onClick={async (e) => {
  150. e.preventDefault();
  151. fetch("/api/auth/logout", {
  152. method: "POST",
  153. headers: {
  154. "Content-Type": "application/json",
  155. },
  156. body: JSON.stringify({ p: "YAMAHA" }),
  157. }).then((res) => {
  158. //if (res.ok) {
  159. window.location.href = "../yamaha";
  160. // }
  161. // else{
  162. // }
  163. });
  164. }}
  165. >
  166. <Link href="https://booking.thamrin.co.id/" activeClassName="active">
  167. <a target="_blank" onClick={toggleNavbar} className="nav-link">Logout</a>
  168. </Link>
  169. </div>
  170. </li>
  171. ):""}
  172. </ul>
  173. </li>
  174. </ul>
  175. // <CustomDropdown
  176. // noLiPadding
  177. // navDropdown
  178. // buttonText={
  179. // username.length > 12 ? username.substring(0, 9) + ".." : username
  180. // }
  181. // buttonProps={{
  182. // className: classes.navLink,
  183. // color: "transparent",
  184. // }}
  185. // buttonIcon={Person}
  186. // dropdownList={[
  187. // <div
  188. // onClick={async (e) => {
  189. // e.preventDefault();
  190. // fetch("/api/auth/logout", {
  191. // method: "POST",
  192. // headers: {
  193. // "Content-Type": "application/json",
  194. // },
  195. // body: JSON.stringify({ p: "YAMAHA" }),
  196. // }).then((res) => {
  197. // //if (res.ok) {
  198. // window.location.href = "../yamaha/home";
  199. // /*}
  200. // else{
  201. // }*/
  202. // });
  203. // }}
  204. // >
  205. // <Link href="/yamaha/login">
  206. // <a className="btn btn-primary">Logout</a>
  207. // </Link>
  208. // </div>,
  209. // <div>
  210. // <Link href="/yamaha/login">
  211. // <a className="btn btn-primary">Profile</a>
  212. // </Link>
  213. // </div>,
  214. // <div>
  215. // <Link href="/yamaha/login">
  216. // <a className="btn btn-primary">Pesanan Saya</a>
  217. // </Link>
  218. // </div>
  219. // // <a href="/yamaha/profile/profile" className={classes.dropdownLink}>Profile</a>,
  220. // ]}
  221. // />
  222. )}
  223. </Link>
  224. </div>
  225. </nav>
  226. </div>
  227. </div>
  228. </header>
  229. );
  230. }