import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { MenuCategoryProps } from '../model/types'; import { useStore } from '@/shared/model/store'; import { IMAGE_ROOT } from '@/shared/constants/common'; import { UserFavorite } from '@/entities/user/model/types'; import { useEffect, useState } from 'react'; export const MenuCategory = ({ menuId, menuIcon, menuName, subMenu, setMenuOn, editMode, setChangeMenuId }: MenuCategoryProps) => { const { navigate } = useNavigate(); const [favoriteItems, setFavoriteItems] = useState>([]); const [menuIds, setMenuIds] = useState>([]); const onClickToNavigate = (path?: string) => { if(!!path && !!setMenuOn && !editMode){ setMenuOn(false); navigate(path); } }; const favoriteSetting = ( checked: boolean, title?: string, path?: string, menuId?: string ) => { console.log(checked, title, path, menuId) let userFavorite = useStore.getState().UserStore.userFavorite; if(checked){ userFavorite = [ ...userFavorite, { title: title, img: IMAGE_ROOT + '/ico_menu_01.svg', path: path, menuId: menuId } ]; } else{ userFavorite = userFavorite.filter((value, index) => { return value.menuId !== menuId }); } useStore.getState().UserStore.setUserFavorite(userFavorite); callFavoiteItems(); if(setChangeMenuId){ setChangeMenuId(menuId); } }; const callFavoiteItems = () => { let userFavorite = useStore.getState().UserStore.userFavorite; console.log(userFavorite) setFavoriteItems(userFavorite); let newArr: Array = userFavorite.map((value, index) => { return value.menuId; }); setMenuIds(newArr); }; useEffect(() => { callFavoiteItems(); }, []); const getMenuItems = () => { let rs = []; if(subMenu){ for(let i=0;i onClickToNavigate(subMenu[i]?.path) } > { subMenu[i]?.menuName }
favoriteSetting( e.target.checked, subMenu[i]?.menuName, subMenu[i]?.path, subMenu[i]?.menuId )} />
); } else{ rs.push(
  • onClickToNavigate(subMenu[i]?.path) } >{ subMenu[i]?.menuName }
  • ); } } } return rs; }; return ( <>
    { menuName }
      { getMenuItems() }
    ); };