홈 즐겨찾기 변경

This commit is contained in:
focp212@naver.com
2025-11-13 13:09:17 +09:00
parent e0c4fa0141
commit d897fca03b
13 changed files with 392 additions and 340 deletions

View File

@@ -4,29 +4,26 @@ import { Swiper, SwiperSlide } from 'swiper/react';
import 'swiper/css';
import { IMAGE_ROOT } from '@/shared/constants/common';
import { UserFavorite } from '@/entities/user/model/types';
import { useStore } from '@/shared/model/store';
import { useFavoriteEditOnStore, useMenuOnStore, useStore } from '@/shared/model/store';
import { useTranslation } from 'react-i18next';
import { showAlert } from '@/widgets/show-alert';
import { checkGrant } from '@/shared/lib/check-grant';
export interface FavoriteWrapperProps {
usingType: 'home' | 'menu',
editMode?: boolean,
setEditMode?: (editMode: boolean) => void;
changeMenuId?: string;
setMenuOn?: (menuOn: boolean) => void;
};
export const FavoriteWrapper = ({
usingType,
editMode,
setEditMode,
changeMenuId,
setMenuOn
}: FavoriteWrapperProps) => {
const { navigate } = useNavigate();
const { i18n, t } = useTranslation();
const { menuOn, setMenuOn } = useMenuOnStore();
const { favoriteEditOn, setFavoriteEditOn } = useFavoriteEditOnStore();
const [favoriteItems, setFavoriteItems] = useState<Array<UserFavorite>>([]);
const itemAdd: UserFavorite = {
@@ -38,18 +35,15 @@ export const FavoriteWrapper = ({
};
const onClickToFavoriteEdit = () => {
if(setEditMode){
setEditMode(true);
}
setMenuOn(true);
setFavoriteEditOn(true);
};
const onClickToNavigate = (menuId?: number, path?: string) => {
if(menuId && checkGrant(menuId, 'R')){
if(!!path){
navigate(path);
if(setMenuOn){
setMenuOn(false);
}
setMenuOn(false);
}
}
else{
@@ -73,7 +67,7 @@ export const FavoriteWrapper = ({
<SwiperSlide key={ `favorite-slide-key-${i}` }>
<div
className="swiper-item"
onClick={ () => !editMode && onClickToNavigate(favoriteItems[i]?.menuId, favoriteItems[i]?.programPath) }
onClick={ () => !favoriteEditOn && onClickToNavigate(favoriteItems[i]?.menuId, favoriteItems[i]?.programPath) }
>
<div className="swiper-icon coin-icon">
<img
@@ -90,7 +84,7 @@ export const FavoriteWrapper = ({
};
const makeAddFavoriteItem = () => {
let rs = [];
if(!editMode && usingType === 'menu'){
if(!favoriteEditOn){
rs.push(
<SwiperSlide key={ `favorite-item-add-slide-key` }>
<div
@@ -114,7 +108,7 @@ export const FavoriteWrapper = ({
useEffect(() => {
getFavoriteList();
}, [changeMenuId]);
}, [changeMenuId, favoriteEditOn]);
return (
<>