diff options
| author | IT Fixcomart <it@fixcomart.co.id> | 2023-03-01 09:18:52 +0000 |
|---|---|---|
| committer | IT Fixcomart <it@fixcomart.co.id> | 2023-03-01 09:18:52 +0000 |
| commit | a7abbf4ddc70068620e9f44b74dc162ce2e16ee2 (patch) | |
| tree | 74f66253717515d364ce74bd8275015c1f829cbc /src/core/hooks | |
| parent | 90e1edab9b6a8ccc09a49fed3addbec2cbc4e4c3 (diff) | |
| parent | a1b9b647a6c4bda1f5db63879639d44543f9557e (diff) | |
Merged in refactor (pull request #1)
Refactor
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 |
