|
1 | 1 | import Link from "next/link"; |
2 | 2 | import { useRouter } from "next/router"; |
3 | | -import { SquaresFour, X } from "phosphor-react"; |
| 3 | +import { CircleDashed, CirclesFour, CirclesThreePlus, Plus, X } from "phosphor-react"; |
4 | 4 | import { useState } from "react"; |
5 | 5 | import Modal from "./modal"; |
6 | 6 | import ToggleThemeBtn from "./toggle-theme"; |
7 | 7 |
|
8 | 8 | export default function NavBar() { |
9 | 9 | const router = useRouter(); |
10 | 10 | const [isOpenedModal, setIsOpenedModal] = useState(false); |
| 11 | + const [effect, setEffect] = useState(false); |
11 | 12 |
|
12 | 13 | function changeCurrentStateModal() { |
13 | 14 | setIsOpenedModal(!isOpenedModal); |
@@ -40,10 +41,16 @@ export default function NavBar() { |
40 | 41 | <hr className="hidden sm:block w-0.5 h-5 bg-separator/80 dark:bg-white/25 mx-5 md:mx-7 shadow-md rounded-full" /> |
41 | 42 |
|
42 | 43 | <button |
43 | | - onClick={() => changeCurrentStateModal()} |
44 | | - className="relative z-50 text-2xl hover:text-violet-900/80 dark:hover:text-violet-300/70 transition duration-75 ease-in-out mr-3" |
| 44 | + className={`relative z-50 text-2xl hover:text-violet-900/80 dark:hover:text-violet-300/70 transition ${effect ? "md:animate-effect" : "md:animate-close"} duration-75 ease-in-out mr-3`} |
| 45 | + onClick={() => { |
| 46 | + setEffect(true); |
| 47 | + changeCurrentStateModal(); |
| 48 | + }} |
| 49 | + onAnimationEnd={() => setEffect(false)} |
45 | 50 | > |
46 | | - {isOpenedModal ? <X size={32} /> : <SquaresFour />} |
| 51 | + { |
| 52 | + effect ? <CirclesFour size={25} /> : (isOpenedModal ? <X size={25} /> : <CirclesThreePlus size={25} />) |
| 53 | + } |
47 | 54 | </button> |
48 | 55 |
|
49 | 56 | <ToggleThemeBtn /> |
|
0 commit comments