diff --git a/package.json b/package.json index 29dd3ef1..4f0ecea0 100644 --- a/package.json +++ b/package.json @@ -26,14 +26,15 @@ "clsx": "^2.1.1", "date-fns": "^3.6.0", "formik": "^2.4.6", + "hamburger-react": "^2.5.1", "lucide-react": "^0.378.0", "qs": "^6.12.1", + "react": "^18.2.0", "react-dom": "^18.2.0", "react-hook-form": "^7.51.4", "react-input-mask": "^2.0.4", "react-router-dom": "^6.23.0", "react-select": "^5.8.0", - "react": "^18.2.0", "tailwind-merge": "^2.3.0", "tailwindcss-animate": "^1.0.7", "yup": "^1.4.0" @@ -41,16 +42,16 @@ "devDependencies": { "@types/node": "^20.12.8", "@types/qs": "^6.9.15", + "@types/react": "^18.2.66", "@types/react-dom": "^18.2.22", "@types/react-input-mask": "^3.0.5", - "@types/react": "^18.2.66", "@typescript-eslint/eslint-plugin": "^7.2.0", "@typescript-eslint/parser": "^7.2.0", "@vitejs/plugin-react": "^4.2.1", "autoprefixer": "^10.4.19", + "eslint": "^8.57.0", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.6", - "eslint": "^8.57.0", "postcss": "^8.4.38", "tailwindcss": "^3.4.3", "typescript": "^5.2.2", diff --git a/src/components/BurgerMenu/BurgerMenu.tsx b/src/components/BurgerMenu/BurgerMenu.tsx index 2f823e5b..58edcd1d 100644 --- a/src/components/BurgerMenu/BurgerMenu.tsx +++ b/src/components/BurgerMenu/BurgerMenu.tsx @@ -1,4 +1,4 @@ -import { Fragment, useCallback, useContext } from 'react'; +import { Fragment, useCallback, useContext, useEffect, useState } from 'react'; import { CircleHelp, CirclePlus, @@ -6,12 +6,12 @@ import { HeartHandshake, Info, LinkIcon, - Menu, ShieldAlert, } from 'lucide-react'; +import { Squash as Hamburger } from 'hamburger-react' import { SessionServices } from '@/service'; -import { Sheet, SheetContent, SheetTrigger } from '@/components/ui/sheet'; +import { Sheet, SheetContent, SheetTrigger, SheetOverlay, SheetPortal } from '@/components/ui/sheet'; import { BurguerMenuItem } from './components'; import { Separator } from '../ui/separator'; import { SessionContext } from '@/contexts'; @@ -20,6 +20,9 @@ import { usePartners } from '@/hooks'; const BurgerMenu = () => { const { session } = useContext(SessionContext); const { data: partners } = usePartners(); + const [isOpen, setOpen] = useState(false) + const [pageElement, setPageElement] = useState(document.body) + const [headerElement, setHeaderElement] = useState(document.body) const logout = useCallback(() => { SessionServices.logout() @@ -32,21 +35,38 @@ const BurgerMenu = () => { }); }, []); + useEffect(() => { + setPageElement(document.getElementById('page') || document.body) + setHeaderElement(document.getElementById('header') || document.body) + }, []) + + const toggleMenu = () => { + setOpen(!isOpen) + document.body.style.pointerEvents = "none" + setTimeout(() => { + document.body.style.pointerEvents = "auto" + }, 500) + } + return ( - + - + - -
- {session && ( - -
- Olá, {session.name} -
- -
- )} + + + + + +
+ {session && ( + +
+ Olá, {session.name} +
+ +
+ )} {
)} -
+ +
); }; diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx index 9dde1265..fc517744 100644 --- a/src/components/Header/Header.tsx +++ b/src/components/Header/Header.tsx @@ -15,9 +15,10 @@ const Header = React.forwardRef((props, ref) => { return (