diff options
Diffstat (limited to 'src/core/hooks')
| -rw-r--r-- | src/core/hooks/useActive.js | 21 | ||||
| -rw-r--r-- | src/core/hooks/useAuth.js | 15 | ||||
| -rw-r--r-- | src/core/hooks/useSidebar.js | 27 |
3 files changed, 63 insertions, 0 deletions
diff --git a/src/core/hooks/useActive.js b/src/core/hooks/useActive.js new file mode 100644 index 00000000..c39cbdca --- /dev/null +++ b/src/core/hooks/useActive.js @@ -0,0 +1,21 @@ +import { useState } from 'react' + +const useActive = () => { + const [active, setActive] = useState(false) + + const activate = () => { + setActive(true) + } + + const deactivate = () => { + setActive(false) + } + + return { + activate, + deactivate, + active + } +} + +export default useActive diff --git a/src/core/hooks/useAuth.js b/src/core/hooks/useAuth.js new file mode 100644 index 00000000..af62e45c --- /dev/null +++ b/src/core/hooks/useAuth.js @@ -0,0 +1,15 @@ +import { useEffect, useState } from 'react' +import { getAuth } from '../utils/auth' + +const useAuth = () => { + const [auth, setAuth] = useState(null) + + useEffect(() => { + const handleIsAuthenticated = () => setAuth(getAuth()) + handleIsAuthenticated() + }, []) + + return auth +} + +export default useAuth diff --git a/src/core/hooks/useSidebar.js b/src/core/hooks/useSidebar.js new file mode 100644 index 00000000..4da61ac2 --- /dev/null +++ b/src/core/hooks/useSidebar.js @@ -0,0 +1,27 @@ +import useActive from './useActive' +import SidebarComponent from '../components/elements/Sidebar/Sidebar' +import { useEffect } from 'react' + +const useSidebar = () => { + const { active, activate, deactivate } = useActive() + + useEffect(() => { + if (active) { + document.querySelector('html, body').classList.add('overflow-hidden') + } else { + document.querySelector('html, body').classList.remove('overflow-hidden') + } + }, [active]) + + return { + open: activate, + Sidebar: ( + <SidebarComponent + active={active} + close={deactivate} + /> + ) + } +} + +export default useSidebar |
