import { FC, useState, useRef, useEffect } from 'react' import { Gallery, LinkSquare, Setting4, Text } from 'iconsax-react' import Logo from '@/assets/images/logo-small.svg' import SettingSideBar from './components/SettingSideBar' import { SideBarTab } from '../enum/SettingEnum' import TextSidebar from './components/TextSidebar' import ButtonSidebar from './components/ButtonSidebar' import ImageSideBar from './components/ImageSideBar' import { clx } from '@/helpers/utils' const PersonalitySidebar: FC = () => { const [active, setActive] = useState(SideBarTab.SETTING) const sidebarRef = useRef(null) useEffect(() => { const handleClickOutside = (event: MouseEvent) => { // فقط در موبایل (عرض کمتر از 1280px) کار کند if (window.innerWidth < 1280 && sidebarRef.current && !sidebarRef.current.contains(event.target as Node)) { setActive(SideBarTab.NONE) } } if (active !== SideBarTab.NONE) { document.addEventListener('mousedown', handleClickOutside) } return () => { document.removeEventListener('mousedown', handleClickOutside) } }, [active]) return (
{active !== SideBarTab.NONE && (
{ active === SideBarTab.SETTING ? : active === SideBarTab.TEXT ? : active === SideBarTab.BUTTON ? : active === SideBarTab.IMAGE ? : null }
)}
{ active !== SideBarTab.NONE && Logo }
setActive(SideBarTab.SETTING)} className='cursor-pointer' /> setActive(SideBarTab.TEXT)} className='cursor-pointer' /> setActive(SideBarTab.BUTTON)} className='cursor-pointer' /> setActive(SideBarTab.IMAGE)} className='cursor-pointer' />
) } export default PersonalitySidebar