summaryrefslogtreecommitdiff
path: root/src/core/components
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-03-11 13:37:29 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-03-11 13:37:29 +0700
commitd26133d39e7d9cd510fdc72d239303f4ba918bdd (patch)
treeac3266dbd2d949c6cfc230183e18014d7df0552b /src/core/components
parent1218d8109380488ab7d15538fe3f828883dbc822 (diff)
create useDevice hooks, optimize DesktopView and MobileView, and show category API data
Diffstat (limited to 'src/core/components')
-rw-r--r--src/core/components/views/DesktopView.jsx21
-rw-r--r--src/core/components/views/MobileView.jsx21
2 files changed, 14 insertions, 28 deletions
diff --git a/src/core/components/views/DesktopView.jsx b/src/core/components/views/DesktopView.jsx
index 08c4b310..9042a766 100644
--- a/src/core/components/views/DesktopView.jsx
+++ b/src/core/components/views/DesktopView.jsx
@@ -1,24 +1,17 @@
+import useDevice from '@/core/hooks/useDevice'
import { useEffect, useState } from 'react'
const DesktopView = ({ children }) => {
+ const { isDesktop } = useDevice()
const [view, setView] = useState(<></>)
useEffect(() => {
- const handleResize = () => {
- if (window.innerWidth >= 768) {
- setView(children)
- } else {
- setView(<></>)
- }
+ if (isDesktop) {
+ setView(children)
+ } else {
+ setView(<></>)
}
-
- handleResize()
- window.addEventListener('resize', handleResize)
-
- return () => {
- window.removeEventListener('resize', handleResize)
- }
- }, [children])
+ }, [isDesktop, children])
return view
}
diff --git a/src/core/components/views/MobileView.jsx b/src/core/components/views/MobileView.jsx
index 348572c6..0c8a806c 100644
--- a/src/core/components/views/MobileView.jsx
+++ b/src/core/components/views/MobileView.jsx
@@ -1,24 +1,17 @@
+import useDevice from '@/core/hooks/useDevice'
import { useEffect, useState } from 'react'
const MobileView = ({ children }) => {
+ const { isMobile } = useDevice()
const [view, setView] = useState(<></>)
useEffect(() => {
- const handleResize = () => {
- if (window.innerWidth < 768) {
- setView(children)
- } else {
- setView(<></>)
- }
+ if (isMobile) {
+ setView(children)
+ } else {
+ setView(<></>)
}
-
- handleResize()
- window.addEventListener('resize', handleResize)
-
- return () => {
- window.removeEventListener('resize', handleResize)
- }
- }, [children])
+ }, [isMobile, children])
return view
}