79318675

Date: 2024-12-30 21:44:31
Score: 0.5
Natty:
Report link

This code automatically adjust position to left/right based on available space

//states 
const [position, setPosition] = useState<string>('[&_div.absolute]:right-auto [&_div.absolute]:left-0');

// logic
useEffect(() => {
    if (menuRef.current) {
        const menuRect = menuRef.current.getBoundingClientRect();
        const spaceOnLeft = menuRect.left;
        const spaceOnRight = window.innerWidth - menuRect.right;

        // Set position based on available space
        if (spaceOnLeft > spaceOnRight) {
            setPosition('[&_div.absolute]:left-auto [&_div.absolute]:right-0');
        } else {
            setPosition('[&_div.absolute]:right-auto [&_div.absolute]:left-0');
        }
    }
}, [menu]);
 

// ui
<NavigationMenu className={position}>...</NavigationMenu />

enter image description here

Reasons:
  • Probably link only (1):
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: lahiru dilshan