2025-05-06 06:45:49 +00:00
|
|
|
import { useEffect } from 'react'
|
|
|
|
|
import { useStoreActions, useStoreState } from '@/store'
|
2025-11-09 10:30:15 +00:00
|
|
|
import type { Direction } from '@/proxy/theme/models'
|
2025-05-06 06:45:49 +00:00
|
|
|
|
|
|
|
|
function useDirection(): [direction: Direction, updateDirection: (dir: Direction) => void] {
|
|
|
|
|
const direction = useStoreState((state) => state.theme.direction)
|
|
|
|
|
|
|
|
|
|
const { setDirection } = useStoreActions((actions) => actions.theme)
|
|
|
|
|
const updateDirection = (dir: Direction) => setDirection(dir)
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
if (window === undefined) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
const root = window.document.documentElement
|
|
|
|
|
root.setAttribute('dir', direction)
|
|
|
|
|
}, [direction])
|
|
|
|
|
|
|
|
|
|
return [direction, updateDirection]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default useDirection
|