summaryrefslogtreecommitdiff
path: root/src/core/hooks
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2023-03-01 09:18:52 +0000
committerIT Fixcomart <it@fixcomart.co.id>2023-03-01 09:18:52 +0000
commita7abbf4ddc70068620e9f44b74dc162ce2e16ee2 (patch)
tree74f66253717515d364ce74bd8275015c1f829cbc /src/core/hooks
parent90e1edab9b6a8ccc09a49fed3addbec2cbc4e4c3 (diff)
parenta1b9b647a6c4bda1f5db63879639d44543f9557e (diff)
Merged in refactor (pull request #1)
Refactor
Diffstat (limited to 'src/core/hooks')
-rw-r--r--src/core/hooks/useActive.js21
-rw-r--r--src/core/hooks/useAuth.js15
-rw-r--r--src/core/hooks/useSidebar.js27
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