Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

NavigationNew.jsx 7.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. import { Fragment } from 'react';
  2. import { Popover, Transition } from '@headlessui/react';
  3. import PropTypes from 'prop-types';
  4. import logo from '../../assets/logos/LogoFull.svg';
  5. import { NavLink, useLocation, useNavigate } from 'react-router-dom';
  6. import '../../App.css';
  7. import Wrapper from '../../layout/Wrapper';
  8. import menuIcon from './../../assets/icons/menu.svg';
  9. import { useState } from 'react';
  10. export default function NavigationNew({
  11. links,
  12. scrollToView,
  13. activeLinks,
  14. forwardedRef,
  15. }) {
  16. const [drop, setDrop] = useState(false);
  17. const location = useLocation();
  18. const home = useNavigate();
  19. function handleLogo() {
  20. home('/');
  21. }
  22. function showDrop() {
  23. setDrop(!drop);
  24. }
  25. // Check if you are on HomePage to scroll to Contact us, or open a sepperate Contact us Page
  26. function checkUrl(event) {
  27. if (location.pathname === '/') scrollToView(event);
  28. else home('/contact');
  29. }
  30. return (
  31. <>
  32. <nav className="bg-white dark:bg-dg-primary-1700 fixed w-full top-0 z-50">
  33. <div className="container flex flex-wrap items-center justify-between mx-auto">
  34. <a href="/" className="flex items-center">
  35. <img src={logo} className="h-6 mr-3 sm:h-10" alt="Diligent Logo" />
  36. </a>
  37. <button
  38. data-collapse-toggle="navbar-dropdown"
  39. type="button"
  40. className="inline-flex items-center p-2 ml-3 text-sm text-gray-500 rounded-lg md:hidden hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:text-gray-400 dark:hover:bg-gray-700 dark:focus:ring-gray-600"
  41. aria-controls="navbar-dropdown"
  42. aria-expanded="false"
  43. >
  44. <span className="sr-only">Open main menu</span>
  45. <svg
  46. className="w-6 h-6"
  47. aria-hidden="true"
  48. fill="currentColor"
  49. viewBox="0 0 20 20"
  50. xmlns="http://www.w3.org/2000/svg"
  51. >
  52. <path
  53. fillRule="evenodd"
  54. d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z"
  55. clipRule="evenodd"
  56. ></path>
  57. </svg>
  58. </button>
  59. <div className="hidden w-full md:block md:w-auto" id="navbar-dropdown">
  60. <ul className="flex flex-col p-4 mt-4 border border-gray-100 rounded-lg bg-gray-50 md:flex-row md:space-x-8 md:mt-0 md:text-sm md:font-medium md:border-0 md:bg-white dark:bg-gray-800 md:dark:bg-gray-900 dark:border-gray-700">
  61. <li>
  62. <a
  63. href="#"
  64. className="block py-2 pl-3 pr-4 text-white bg-blue-700 rounded md:bg-transparent md:text-blue-700 md:p-0 md:dark:text-white dark:bg-blue-600 md:dark:bg-transparent"
  65. aria-current="page"
  66. >
  67. Home
  68. </a>
  69. </li>
  70. <li>
  71. <button
  72. onClick={() => showDrop()}
  73. id="dropdownNavbarLink"
  74. className="flex items-center justify-between w-full py-2 pl-3 pr-4 font-medium text-gray-700 rounded hover:bg-gray-100 md:hover:bg-transparent md:border-0 md:hover:text-blue-700 md:p-0 md:w-auto dark:text-gray-400 dark:hover:text-white dark:focus:text-white dark:border-gray-700 dark:hover:bg-gray-700 md:dark:hover:bg-transparent"
  75. >
  76. Dropdown{' '}
  77. <svg
  78. className="w-5 h-5 ml-1"
  79. aria-hidden="true"
  80. fill="currentColor"
  81. viewBox="0 0 20 20"
  82. xmlns="http://www.w3.org/2000/svg"
  83. >
  84. <path
  85. fillRule="evenodd"
  86. d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z"
  87. clipRule="evenodd"
  88. ></path>
  89. </svg>
  90. </button>
  91. {/* <!-- Dropdown menu --> */}
  92. <div
  93. id="dropdownNavbar"
  94. className={
  95. (drop ? 'block ' : 'hidden ') +
  96. 'z-10 font-normal bg-white divide-y divide-gray-100 rounded-lg shadow w-44 dark:bg-gray-700 dark:divide-gray-600'
  97. }
  98. >
  99. <ul
  100. className="py-2 text-sm text-gray-700 dark:text-gray-400"
  101. aria-labelledby="dropdownLargeButton"
  102. >
  103. <li>
  104. <a
  105. href="#"
  106. className="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white"
  107. >
  108. Dashboard
  109. </a>
  110. </li>
  111. <li>
  112. <a
  113. href="#"
  114. className="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white"
  115. >
  116. Settings
  117. </a>
  118. </li>
  119. <li>
  120. <a
  121. href="#"
  122. className="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-600 dark:hover:text-white"
  123. >
  124. Earnings
  125. </a>
  126. </li>
  127. </ul>
  128. <div className="py-1">
  129. <a
  130. href="#"
  131. className="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 dark:hover:bg-gray-600 dark:text-gray-400 dark:hover:text-white"
  132. >
  133. Sign out
  134. </a>
  135. </div>
  136. </div>
  137. </li>
  138. <li>
  139. <a
  140. href="#"
  141. className="block py-2 pl-3 pr-4 text-gray-700 rounded hover:bg-gray-100 md:hover:bg-transparent md:border-0 md:hover:text-blue-700 md:p-0 dark:text-gray-400 md:dark:hover:text-white dark:hover:bg-gray-700 dark:hover:text-white md:dark:hover:bg-transparent"
  142. >
  143. Services
  144. </a>
  145. </li>
  146. <li>
  147. <a
  148. href="#"
  149. className="block py-2 pl-3 pr-4 text-gray-700 rounded hover:bg-gray-100 md:hover:bg-transparent md:border-0 md:hover:text-blue-700 md:p-0 dark:text-gray-400 md:dark:hover:text-white dark:hover:bg-gray-700 dark:hover:text-white md:dark:hover:bg-transparent"
  150. >
  151. Pricing
  152. </a>
  153. </li>
  154. <li>
  155. <a
  156. href="#"
  157. className="block py-2 pl-3 pr-4 text-gray-700 rounded hover:bg-gray-100 md:hover:bg-transparent md:border-0 md:hover:text-blue-700 md:p-0 dark:text-gray-400 md:dark:hover:text-white dark:hover:bg-gray-700 dark:hover:text-white md:dark:hover:bg-transparent"
  158. >
  159. Contact
  160. </a>
  161. </li>
  162. </ul>
  163. </div>
  164. </div>
  165. </nav>
  166. </>
  167. );
  168. }
  169. NavigationNew.propTypes = {
  170. links: PropTypes.arrayOf(PropTypes.object),
  171. scrollToView: PropTypes.func,
  172. activeLinks: PropTypes.func,
  173. };