initial commit

This commit is contained in:
ferdiansyah783
2025-08-05 12:35:40 +07:00
commit fffa2ead5c
1069 changed files with 118056 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
// React Imports
import { useContext } from 'react'
// Type Imports
import type { HorizontalMenuContextProps } from '../components/horizontal-menu/Menu'
// Context Imports
import { HorizontalMenuContext } from '../components/horizontal-menu/Menu'
const useHorizontalMenu = (): HorizontalMenuContextProps => {
// Hooks
const context = useContext(HorizontalMenuContext)
if (context === undefined) {
//TODO: set better error message
throw new Error('Menu Component is required!')
}
return context
}
export default useHorizontalMenu
+19
View File
@@ -0,0 +1,19 @@
// React Imports
import { useContext } from 'react'
// Context Imports
import HorizontalNavContext from '../contexts/horizontalNavContext'
const useHorizontalNav = () => {
// Hooks
const context = useContext(HorizontalNavContext)
if (context === undefined) {
//TODO: set better error message
throw new Error('HorizontalNav Component is required!')
}
return context
}
export default useHorizontalNav
+29
View File
@@ -0,0 +1,29 @@
'use client'
// React Imports
import { useEffect, useState } from 'react'
const useMediaQuery = (breakpoint?: string): boolean => {
// States
const [matches, setMatches] = useState(breakpoint === 'always')
useEffect(() => {
if (breakpoint && breakpoint !== 'always') {
const media = window.matchMedia(`(max-width: ${breakpoint})`)
if (media.matches !== matches) {
setMatches(media.matches)
}
const listener = () => setMatches(media.matches)
window.addEventListener('resize', listener)
return () => window.removeEventListener('resize', listener)
}
}, [matches, breakpoint])
return matches
}
export default useMediaQuery
+22
View File
@@ -0,0 +1,22 @@
// React Imports
import { useContext } from 'react'
// Type Imports
import type { VerticalMenuContextProps } from '../components/vertical-menu/Menu'
// Context Imports
import { VerticalMenuContext } from '../components/vertical-menu/Menu'
const useVerticalMenu = (): VerticalMenuContextProps => {
// Hooks
const context = useContext(VerticalMenuContext)
if (context === undefined) {
//TODO: set better error message
throw new Error('Menu Component is required!')
}
return context
}
export default useVerticalMenu
+19
View File
@@ -0,0 +1,19 @@
// React Imports
import { useContext } from 'react'
// Context Imports
import VerticalNavContext from '../contexts/verticalNavContext'
const useVerticalNav = () => {
// Hooks
const context = useContext(VerticalNavContext)
if (context === undefined) {
//TODO: set better error message
throw new Error('VerticalNav Component is required!')
}
return context
}
export default useVerticalNav